Hallo!
Anbei ein Skript, das den Äquivalenztest in JMP anhand des Beispiel-Auto-Raw-Datensatzes automatisiert (sowohl Skript als auch Daten anbei). Mein Problem ist Zeile 27 meines Skripts, in der ich den Varianztyp in der Äquivalenztestfunktion angebe. Die Äquivalenztestfunktion lautet:
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" )
)Allerdings wird tostv[i] nicht richtig ausgewertet, es wird ignoriert und die standardmäßige gepoolte Varianz wird verwendet. Ich nehme an, ich brauche eine Art Kombination von Eval-Funktionen, aber ich bekomme es nicht zum Laufen. Siehe angehängte Daten und Skript. Danke für jede Hilfe!
Unten finden Sie eine Version des Skripts, die die Tostv-Liste korrekt verarbeitet. Es gibt jedoch ein logisches Problem mit Ihrer Variable „i“. In Ihrem Skript durchlaufen Sie Ihre For-Schleife viermal und erhöhen i jedes Mal um eins, Sie haben jedoch nur zwei Ebenen Ihrer Tostv-Liste.
Hier ist der Code
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 )} )
)
)
)
);
)
);Vielen Dank, Jim! Und danke, dass Sie das Problem mit der I-Logik erkannt haben – mein ursprünglicher Datensatz hatte eine Tostv-Liste mit 4 Ebenen im Gegensatz zu den 2 in diesem Beispiel.
Ich bin Ihnen für Ihre Hilfe mit den Evaluierungsfunktionen sehr dankbar!