안녕하세요!
첨부된 스크립트는 JMP에서 예제 자동 원시 데이터 세트(스크립트와 데이터 모두 첨부됨)에 대한 동등성 테스트를 자동화하는 스크립트입니다. 제 문제는 스크립트의 27번째 줄에서 동등성 테스트 함수에서 분산 유형을 지정하는 부분입니다. 동등성 테스트 함수는 다음과 같습니다.
tostv = {"Pooled Variance", "Unequal Variances"};<BR />ksd = {12,275};<BR /><BR />Equivalence Tests(
ksd[i],
0.05,
tostv[i], // ***need to fix
"Equivalence",
With Control( "Young" )
)그러나 tostv[i]가 제대로 평가되지 않고 무시되고 기본 풀링 분산이 사용되고 있습니다. eval 함수의 어떤 유형의 조합이 필요할 것으로 생각하지만 작동하도록 할 수 없습니다. 첨부된 데이터와 스크립트를 참조하세요. 도움을 주셔서 감사합니다!
아래는 tostv 목록을 올바르게 처리하는 스크립트 버전입니다. 그러나 "i" 변수에 논리적 문제가 있습니다. 스크립트에서 For 루프를 4번 반복하면서 i를 매번 1씩 증가시키지만 tostv 목록은 2단계만 있습니다.
코드는 다음과 같습니다.
Names Default To Here( 1 );
tostv = {"Pooled Variance", "Unequal Variances"};
ksd = {12, 275};
dt = Current Data Table();
cnames = dt << Get Column Names( string );
n = N Items( cnames );
i = 0;
anova = Fit Group(
For( colnum = 4, colnum <= n, colnum++,
i = i + 1;
Eval(
Eval Expr(
Oneway(
Y( Column( colnum ) ),
X( :AgeClass ),
All Pairs( 1 ),
Means( 1 ),
t Test( 1 ),
Unequal Variances( 1 ),
Std Dev Lines( 0 ),
Mean Diamonds( 1 ),
Connect Means( 1 ),
Equivalence Tests(
ksd[i],
0.05,
Expr( tostv[i] ), //***need to fix to eval tostv
"Equivalence",
With Control( "Young" )
),
SendToReport(
Dispatch( {}, "1", ScaleBox, {Minor Ticks( 0 )} ),
Dispatch( {}, "Oneway Plot", FrameBox, ),
Dispatch( {}, "Oneway Means Compare", FrameBox, ),
Dispatch( {"Oneway Anova"}, "Summary of Fit", OutlineBox, {Close( 1 )} ),
Dispatch( {"Oneway Anova"}, "Analysis of Variance", OutlineBox, {Close( 1 )} ),
Dispatch( {"Oneway Anova"}, "Means for Oneway Anova", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "t Test", OutlineBox, {Close( 1 )} ),
Dispatch( {}, "Means Comparisons", OutlineBox, {Close( 1 )} )
)
)
)
);
)
);정말 고맙습니다 짐! 그리고 i 논리 문제를 잡아줘서 고맙습니다. 원래 데이터 세트에는 4단계의 tostv 목록이 있었고 이 예에서는 2단계였습니다.
평가 함수에 대한 귀하의 도움에 진심으로 감사드립니다!