你好!
附件是一个脚本,该脚本在示例自动原始数据集上自动执行 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] 没有得到正确的评估,它被忽略了,并且使用了默认的池化方差。我假设我需要某种类型的评估函数组合,但我无法让它工作。请参阅附件数据和脚本。感谢您的帮助!
下面是一个可以正确处理 tostv 列表的脚本版本。但是,您的“i”变量存在逻辑问题。在您的脚本中,您循环执行 For 循环 4 次,每次将 i 加一,但是您的 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 )} )
)
)
)
);
)
);非常感谢 Jim!也感谢您发现了我的逻辑问题 - 我的原始数据集有一个 4 级 tostv 列表,而本例中只有 2 级。
我非常感谢您对评估功能的帮助!