你好!
附件是一個腳本,該腳本在 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 個層級相反。
我非常感謝您對 eval 函數的幫助!