Ho dati da diversi (22?) campioni, che variano considerevolmente nella dimensione del campione. Comprendo che i parametri sono stimati meglio con campioni più grandi, ma non è questo il problema che voglio affrontare qui. È che vorrei sia rappresentare graficamente le distribuzioni, sia stimare i parametri, come se le dimensioni del campione non differissero tra i gruppi/campioni. Ciò significa che i campioni di grandi dimensioni dovranno essere deponderati e quelli piccoli aumentati.
Ho provato a farlo in "Adatta Y per X", come segue: ho calcolato una nuova variabile, WEIGHT, come dimensione del campione del gruppo divisa per la dimensione del campione totale. Quindi diciamo che ho quattro gruppi:
Gruppo 1: N1=100
Gruppo 2: N1=500
Gruppo 3: N1=200
Gruppo 4: N1=400
Anche i Gruppi 1 e 2 sono di Tipo 1 e i Gruppi 3 e 4 sono di Tipo 2
IL PESO sarà:
Gruppo 1: 100/1200
Gruppo 2: 500/1200
Gruppo 3: 200/1200
Gruppo 4: 400/1200
Se eseguo "Adatta Y per X" dove Y è il DV e X è "Tipo" e peso per PESO, quindi uso "Confronta densità" per ottenere un grafico delle densità sovrapposte, sembra corretto. Tuttavia, se continuo e ottengo le deviazioni standard per il DV, queste sono molto maggiori delle deviazioni standard per qualsiasi gruppo. Questo mi fa pensare che non sto capendo quello che sto facendo.
Aiuto?
Ho commesso un errore nel mio post originale, che cancellerei se sapessi come. La versione corretta è la seguente:
Ho dati da diversi (22?) campioni, che variano considerevolmente nella dimensione del campione. Comprendo che i parametri sono stimati meglio con campioni più grandi, ma non è questo il problema che voglio affrontare qui. È che vorrei sia rappresentare graficamente le distribuzioni, sia stimare i parametri, come se le dimensioni del campione non differissero tra i gruppi/campioni. Ciò significa che i campioni di grandi dimensioni dovranno essere deponderati e quelli piccoli aumentati.
Ho provato a farlo in "Adatta Y per X", come segue: ho calcolato una nuova variabile, WEIGHT, come dimensione del campione del gruppo divisa per la dimensione del campione totale. Quindi diciamo che ho quattro gruppi:
Gruppo 1: N1=100
Gruppo 2: N1=500
Gruppo 3: N1=200
Gruppo 4: N1=400
Anche i Gruppi 1 e 2 sono di Tipo 1 e i Gruppi 3 e 4 sono di Tipo 2
IL PESO sarà:
Gruppo 1: 1200/100
Gruppo 2: 1200/500
Gruppo 3: 1200/200
Gruppo 4: 1200/400
Se eseguo "Adatta Y per X" dove Y è il DV e X è "Tipo" e peso per PESO, quindi uso "Confronta densità" per ottenere un grafico delle densità sovrapposte, sembra corretto. Tuttavia, se continuo e ottengo le deviazioni standard per il DV, queste sono molto maggiori delle deviazioni standard per qualsiasi gruppo. Questo mi fa pensare che non sto capendo quello che sto facendo.
Aiuto?
Penso che questo post possa aiutarti:
Risolto: Deviazione standard ponderata - Comunità di utenti JMP
E probabilmente il seguente script aiuta a capire cosa può succedere.
Quindi, nel tuo approccio al calcolo delle opere medie, qualunque metodo tu scelga (peso del ruolo o frequenza).
Ho fatto una definizione di peso diversa rispetto alla tua, volevo che la somma totale dei pesi fosse 1200 (hai 4*1200).
Questo non dovrebbe importare, e per il peso nel ruolo della frequenza non lo fa, ma per il peso nel ruolo del peso lo fa. Vedi copione.
Sfortunatamente non posso spiegare esattamente perché, il piccolo set di dati ottiene uno stddev molto grande rispetto alla media totale. Forse è dovuto al quadrato e alla radice...
Personalmente non userei il tuo approccio, perché non è chiaro cosa stia succedendo. Farei il riepilogo del gruppo, quindi la media dei gruppi pesata ciascuno 1. E poi combina quel risultato nel tuo grafico.
Names Default To Here( 1 );
// about the role of weight and frequency for calculation of mean and stddev
//
// web("https://www.jmp.com/support/help/en/16.1/?os=win&source=application&utm_source=helpmenu&utm_medium=application#page/jmp/summary-statistics.shtml");
//
nelem_lst = {100, 500, 200, 400};
table_lst = {};
For Each( {value, index}, nelem_lst,
Eval(
Eval Expr(
table_lst[index] = New Table( "Table " || Char( index ),
add rows( nelem_lst[index] ),
New Column( "Group", "Character", set each value( "Group " || Char( index ) ) ),
New Column( "Type", "Character", set each value( If( index <= 2, "Type 1", "Type 2" ) ) ),
New Column( "DV", "Continuous", formula( Random Normal( Expr( Mod( index, 2 ) ), Expr( Mod( index, 2 ) + 1 ) ) ) )
)
)
);
Wait( 0.1 );
table_lst[index]:DV << delete formula;
);
Wait( 0 );
dt = table_lst[1] << concatenate( Table Name( "All" ), table_lst[2 :: 4] );
For Each( {value}, table_lst, Close( value, "NoSave" ) );
Summarize( dt, group_lst = by( :group ) );
ngroups = N Items( group_lst );
dt << New Column( "ColMean[Group]", formula( Col Mean( :DV, :group ) ) );
dt << New Column( "ColStd[Group]", formula( Col Std Dev( :DV, :group ) ) );
Eval( Eval Expr( dt << New Column( "weight[Group]", formula( Col Number( :DV ) / Expr( ngroups ) / Col Number( :DV, :group ) ) ) ) );
nw = New Window( "oneway comparison",
H List Box(
Panel Box( "w/o weight",
dt << Oneway( Y( :DV ), X( :Group ), Means and Std Dev( 1 ), Mean Error Bars( 1 ), Std Dev Lines( 1 ) );
),
Panel Box( "weight in role frequency",
dt << dt << Oneway(
Y( :DV ),
X( :Group ),
Freq( :"weight[Group]"n ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
),
Panel Box( "weight in role weight",
dt << dt << Oneway(
Y( :DV ),
X( :Group ),
Weight( :"weight[Group]"n ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
)
)
);
nw = New Window( "Tabulate comparison",
H List Box(
Panel Box( "w/o weight",
dt << Tabulate(
Change Item Label( Grouping Columns( :Type( "All" ), "All" ) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Analysis Columns( :"weight[Group]"n ), Statistics( Sum ) ),
Column Table( Analysis Columns( :DV ), Statistics( Mean ) ),
Column Table( Statistics( Std Dev ), Analysis Columns( :DV ) ),
Row Table( Grouping Columns( :Type, :Group ), Add Aggregate Statistics( :Type, :Group ) )
)
)
),
Panel Box( "weight in role frequency",
dt << Tabulate(
Change Item Label( Grouping Columns( :Type( "All" ), "All" ) ),
Freq( :"weight[Group]"n ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Analysis Columns( :"weight[Group]"n ), Statistics( Sum ) ),
Column Table( Analysis Columns( :DV ), Statistics( Mean ) ),
Column Table( Statistics( Std Dev ), Analysis Columns( :DV ) ),
Row Table( Grouping Columns( :Type, :Group ), Add Aggregate Statistics( :Type, :Group ) )
)
)
),
Panel Box( "weight in role weight",
dt << Tabulate(
Change Item Label( Grouping Columns( :Type( "All" ), "All" ) ),
weight( :"weight[Group]"n ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Analysis Columns( :"weight[Group]"n ), Statistics( Sum ) ),
Column Table( Analysis Columns( :DV ), Statistics( Mean ) ),
Column Table( Statistics( Std Dev ), Analysis Columns( :DV ) ),
Row Table( Grouping Columns( :Type, :Group ), Add Aggregate Statistics( :Type, :Group ) )
)
)
)
)
);
dt << Summary( Group( :Group, :Type, :"ColMean[Group]"n, :"ColStd[Group]"n, :"weight[Group]"n ), Freq( "None" ), Weight( "None" ) );