1. 그렇습니다. 분석>분포를 사용하여 여러 변수를 선택합니다. CTRL 키를 누른 상태로 유지하십시오. 변수 이름 빨간색 삼각형 메뉴 중 하나에서 연속 분포를 맞추고, CTRL은 이를 모든 변수에 브로드캐스팅하고, CTRL을 누른 상태에서 피팅된 분포 모델 빨간색 삼각형 메뉴에서 적합성 테스트를 클릭합니다.
2. 이전과 이후에는 배포 플랫폼을 시작할 때 단계 열을 기준 역할에 넣습니다.

(JMP 개발자 중 누군가가 귀하의 예시 사진을 봤으면 좋겠습니다. JMP보다 훨씬 깔끔하고 MS Word에 붙여넣는 것도 가능하며 인쇄도 가능할 것입니다.)
3. 부적합 보고서의 열을 마우스 오른쪽 버튼으로 클릭하면 메뉴가 팝업되어 열을 클릭하고 필요한 추가 통계를 켭니다.

좋은 점은 JMP에서 많은 변수를 빠르게 확인하는 것이 더 쉽고, 데이터가 테이블에 다시 쉽고 동적으로 연결된다는 점입니다.
또한 Fit Continuous의 마지막 옵션을 사용해 보세요. 이는 많은 분포 모델에 적합하고 순차적으로 순위를 매긴 다음 RTM의 모든 적합 분포에서 프로세스 기능을 선택합니다. 데이터를 변환하지 않고도 Cpk Ppk를 얻을 수 있습니다.
안녕,
한 열에는 측정값이 있고 두 번째 열에는 상태가 있음에도 불구하고 Minitab에서 볼 수 있는 내용을 재현할 수 없습니다. 결과 사진을 공유해 주실 수 있나요?
홀- 13,9445 이전
홀 - 13,9612 이후
홀- 14,031 이전
홀 - 14,0403 이후
홀- 14,2363 이전
홀 - 14,0423 이후
홀- 14,0605 이전
홀 - 13,9773 이후
홀- 14,2448 이전
홀 - 14,0903 이후
홀- 14,3006 이전
홀 - 13,9198 이후
홀- 14,0294 이전
홀 - 13,9568 이후
홀- 13,9381 이전
홀 - 13,9731 이후
홀- 14,1617 이전
홀 - 14,0621 이후
홀- 13,8853 이전
홀 - 14,0253 이후
홀- 14,0038 이전
홀 - 14,0468 이후
홀- 13,6758 이전
홀 - 14,0333 이후
홀- 13,6735 이전
홀 - 14,1074 이후
홀- 14,1156 이전
홀 - 14,0396 이후
홀- 14,2386 이전
홀 - 13,9335 이후
홀- 14,1268 이전
홀 - 13,9734 이후
홀- 13,8388 이전
홀 - 14,0022 이후
홀- 14,0422 이전
홀 - 13,9869 이후
홀- 13,9771 이전
홀 - 13,9939 이후
홀- 13,9529 이전
홀 - 14,0271 이후
홀- 14,0051 이전
홀 - 14,0045 이후
홀- 13,9315 이전
홀 - 13,972 이후
홀- 13,9159 이전
홀 - 13,9924 이후
홀- 14,0973 이전
홀 - 13,9723 이후
홀- 14,1115 이전
홀 - 13,9787 이후
홀- 14,0744 이전
홀 - 13,9936 이후
홀- 14,332 이전
홀 - 13,9986 이후
홀- 13,7861 이전
홀 - 14,041 이후
홀- 14,1448 이전
홀 - 13,902 이후
홀- 14,0634 이전
홀 - 13,9935 이후
Minitab 보고서 양식을 복제하려는 경우 매우 거칠고 하드코드된 버전이 있습니다. 일반 형식으로 쉽게 변환하여 JMP 추가 기능으로 추가할 수 있습니다. 하지만 그건 당신의 노력에 맡기겠습니다

이는 JSL만을 사용하여 이전에 제공한 출력에서 개체를 가져온 다음 Minitab 형식으로 다시 포맷하는 것입니다. 많은 정리와 일반화가 필요합니다.
다음은 코드의 첫 번째 패스입니다.
Names Default To Here( 1 );
dt = Current Data Table();
dis = dt << Distribution( invisible,
SendToByGroup( {:Before After == "Hole - Before"} ),
Continuous Distribution( Column( :Measurement ), Process Capability( Use Column Property Specs ) ),
By( :Before After ),
Group Options( Layout( "Horizontal List" ) ),
SendToByGroup(
{:Before After == "Hole - Before"},
SendToReport(
Dispatch( {"Measurement", "Process Capability", "Measurement Capability", "Nonconformance"},
"Observed PPM", NumberColBox,
{Visibility( "Visible" )}
)
)
),
SendToByGroup(
{:Before After == "Hole - After"},
SendToReport(
Dispatch( {"Measurement", "Process Capability", "Measurement Capability", "Histogram"},
"Process Capability Analysis Histogram", FrameBox,
{DispatchSeg( CustomStreamSeg( 1 ), {Font} )}
),
Dispatch( {"Measurement", "Process Capability", "Measurement Capability", "Nonconformance"},
"Observed PPM", NumberColBox,
{Visibility( "Visible" )}
)
)
)
);
// Build the report
// Set the Histograms to the same axis
theMin = Min(
Report( Dis[1] )["Histogram", AxisBox( 1 )] << get min,
Report( Dis[2] )["Histogram", AxisBox( 1 )] << get min
);
theMax = Max(
Report( Dis[1] )["Histogram", AxisBox( 1 )] << get max,
Report( Dis[2] )["Histogram", AxisBox( 1 )] << get max
);
Report( Dis[1] )["Histogram", AxisBox( 1 )] << Min( theMin );
Report( Dis[1] )["Histogram", AxisBox( 1 )] << Max( theMax );
Report( Dis[2] )["Histogram", AxisBox( 1 )] << Min( theMin );
Report( Dis[2] )["Histogram", AxisBox( 1 )] << Max( theMax );
Summarize( dt, baGroups = by( :Before After ) );
nw = New Window( "Report",
Outline Box( "Before/After Capability Comparison for " || baGroups[1] || " vs. " || baGroups[2],
V List Box(
H List Box(
Text Box( "Before: " || baGroups[1] ),
Spacer Box( size( 200, 0 ) ),
Text Box( "Process Performance Report" )
),
Text Box( "After: " || baGroups[2] )
),
Spacer Box( size( 0, 5 ) ),
Lineup Box( N Col( 2 ),
Outline Box( "Capability Histogram",
lub1 = Lineup Box( N Col( 1 ),
H List Box( Spacer Box( size( 60, 0 ) ), Text Box( "Are the data inside the limits?" ) )
)
),
V List Box(
obPC = Outline Box( "Process Characterization" ),
Spacer Box( size( 0, 15 ) ),
obCS = Outline Box( "Capability Statistics" )
)
)
)
);
lub1 << Append( Report( Dis[1] )["Histogram", framebox( 1 )] );
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Text Box( " Before" )
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Report( Dis[1] )["Histogram", framebox( 2 )]
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Text Box( " After" )
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Report( Dis[2] )["Histogram", framebox( 2 )]
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Report( Dis[1] )["Histogram", axisbox( 1 )]
)
);
// Build Process Characterization table
beforePCList = Report( Dis[1] )["Process Summary", Number Col Box( 1 )] << get;
Remove From( beforePCList, 1, 2 );
Remove From( beforePCList, 5, 1 );
Insert Into( beforePCList, 1, 2 );
afterPCList = Report( Dis[2] )["Process Summary", Number Col Box( 1 )] << get;
Remove From( afterPCList, 1, 2 );
Remove From( afterPCList, 5, 1 );
Insert Into( afterPCList, 1, 2 );
changeList = {., .};
Insert Into( changeList, beforePCList[3] - afterPCList[3] );
Insert Into( changeList, beforePCList[4] - afterPCList[4] );
Insert Into( changeList, beforePCList[5] - afterPCList[5] );
obPC << append(
Table Box(
String Col Box( "", {"Total N", "Subgroup size", "Mean", "STDev(within)", "StDev(overall)"} ),
Number Col Box( "Before", beforePCList ),
Number Col Box( "After", afterPCList ),
Number Col Box( "Change", changeList )
)
);
beforeCSList = {.};
Insert Into( beforeCSList, (Report( Dis[1] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( beforeCSList, (Report( Dis[1] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( beforeCSList, . );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 1 )] << get)[3] );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 3 )] << get)[3] );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 4 )] << get)[3] );
Insert Into( beforeCSList, beforeCSList[6] * 1000000 );
Insert Into( beforeCSList, . );
Insert Into( beforeCSList, (Report( Dis[1] )["Within Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( beforeCSList, (Report( Dis[1] )["Within Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( beforeCSList, . );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 2 )] << get)[3] );
Insert Into( beforeCSList, Round( beforeCSList[13] * 1000000, 0 ) );
afterCSList = {.};
Insert Into( afterCSList, (Report( Dis[2] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( afterCSLIST, . );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 1 )] << get)[3] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 3 )] << get)[3] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 4 )] << get)[3] );
Insert Into( afterCSLIST, afterCSLIST[6] * 1000000 );
Insert Into( afterCSLIST, . );
Insert Into( afterCSLIST, (Report( Dis[2] )["Within Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Within Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( afterCSLIST, . );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 2 )] << get)[3] );
Insert Into( afterCSLIST, Round( afterCSLIST[13] * 1000000, 0 ) );
change = Matrix( beforeCSList ) - Matrix( afterCSList );
obcs << append(
Table Box(
String Col Box( "",
{"Actual (overall)", " Pp", " Ppk", " Z Bench", " % Out of spec (obs)",
" % Out of spec (exp)", " PPM (DPMO) (obs)", " PPM (DPMO) (exp)", "Potential (within)",
" Cp", " Cpk", " Z Bench", " % Out of spec (exp)", " PM (DPMO) (exp)"}
),
Number Col Box( "Before", beforeCSList ),
Number Col Box( "After", afterCSList ),
Number Col Box( "Change", change )
)
);
dis << close window;