Ciao!
In allegato uno script che automatizza i test di equivalenza in JMP sul set di dati grezzi automatici di esempio (sia script che dati allegati). Il mio problema è la riga 27 del mio script in cui sto specificando il tipo di varianza nella funzione di test di equivalenza. La funzione di test di equivalenza è:
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" )
)Tuttavia tostv[i] non viene valutato correttamente, viene ignorato e viene utilizzata la varianza pool predefinita. Immagino di aver bisogno di un qualche tipo di combinazione di funzioni eval ma non riesco a farla funzionare. Vedere i dati allegati e lo script. Grazie per qualsiasi aiuto!
Di seguito è riportata una versione dello script che gestirà correttamente la lista tostv. Tuttavia, c'è un problema logico con la variabile "i". Nel tuo script, stai eseguendo un ciclo For 4 volte, incrementando i di uno ogni volta, tuttavia hai solo 2 livelli della tua lista tostv.
Ecco il codice
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 )} )
)
)
)
);
)
);Grazie mille Jim! E grazie per aver colto il problema della logica i: il mio set di dati originale aveva un elenco tostv di 4 livelli contrapposto ai 2 in questo esempio.
Apprezzo molto il tuo aiuto con le funzioni eval!