Ich habe Daten aus mehreren (22?) Stichproben, deren Stichprobengröße erheblich variiert. Mir ist klar, dass Parameter bei größeren Stichproben besser geschätzt werden können, aber das ist nicht das Problem, das ich hier ansprechen möchte. Ich möchte sowohl Verteilungen grafisch darstellen als auch Parameter schätzen, als ob sich die Stichprobengrößen zwischen den Gruppen/Stichproben nicht unterscheiden würden. Das bedeutet, dass große Stichproben entgewichtet und kleine Stichproben hochgewichtet werden müssen.
Ich habe versucht, dies in „Y an X anpassen“ wie folgt zu tun: Ich habe eine neue Variable, GEWICHT, als Stichprobengröße der Gruppe geteilt durch die Gesamtstichprobengröße berechnet. Nehmen wir also an, ich habe vier Gruppen:
Gruppe 1: N1=100
Gruppe 2: N1=500
Gruppe 3: N1=200
Gruppe 4: N1=400
Auch die Gruppen 1 und 2 sind Typ 1 und die Gruppen 3 und 4 sind Typ 2
Das Gewicht beträgt:
Gruppe 1: 100/1200
Gruppe 2: 500/1200
Gruppe 3: 200/1200
Gruppe 4: 400/1200
Wenn ich „Y durch X anpassen“ ausführe, wobei Y der AV-Wert und X „Typ“ und Gewicht durch GEWICHT ist, und dann „Dichten vergleichen“ verwende, um ein Diagramm überlappender Dichten zu erhalten, sieht es richtig aus. Wenn ich jedoch fortfahre und die Standardabweichungen für den AV-Wert erhalte, sind diese viel größer als die Standardabweichungen für jede der Gruppen. Das lässt mich denken, dass ich nicht verstehe, was ich tue.
Helfen?
Ich denke, dieser Beitrag könnte Ihnen helfen:
Gelöst: Gewichtete Standardabweichung – JMP-Benutzergemeinschaft
Und wahrscheinlich hilft das folgende Skript zu verstehen, was passieren kann.
Bei Ihrem Ansatz funktioniert die Berechnung des Mittelwerts also unabhängig von der Methode, die Sie verwenden (Rollengewicht oder Häufigkeit).
Ich habe im Vergleich zu Ihrer eine andere Gewichtsdefinition vorgenommen. Ich wollte, dass die Gesamtsumme der Gewichte 1200 beträgt (Sie haben 4*1200).
Dies sollte keine Rolle spielen, und für das Gewicht in der Rolle der Frequenz ist das nicht der Fall, für das Gewicht in der Rolle Gewicht jedoch schon. Siehe Skript.
Leider kann ich nicht genau erklären, warum der kleine Datensatz im Vergleich zum Gesamtdurchschnitt einen sehr großen Standardwert erhält. Es liegt vielleicht an Quadrat und Wurzel ...
Ich persönlich würde Ihren Ansatz nicht nutzen, weil nicht klar ist, was passiert. Ich würde die Gruppenzusammenfassung erstellen und dann den Durchschnitt aller Gruppen mit einer Gewichtung von jeweils 1 ermitteln. Und kombinieren Sie dieses Ergebnis dann in Ihrem Diagramm.
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" ) );Ich habe in meinem ursprünglichen Beitrag einen Fehler gemacht, den ich löschen würde, wenn ich wüsste, wie. Die richtige Version ist unten:
Ich habe Daten aus mehreren (22?) Stichproben, deren Stichprobengröße erheblich variiert. Ich verstehe, dass Parameter bei größeren Stichproben besser geschätzt werden können, aber das ist nicht das Problem, auf das ich hier eingehen möchte. Ich möchte sowohl Verteilungen grafisch darstellen als auch Parameter schätzen, als ob sich die Stichprobengrößen zwischen den Gruppen/Stichproben nicht unterscheiden würden. Das bedeutet, dass große Stichproben entgewichtet und kleine Stichproben höher gewichtet werden müssen.
Ich habe versucht, dies in „Fit Y by X“ wie folgt zu tun: Ich habe eine neue Variable, WEIGHT, als Stichprobengröße der Gruppe dividiert durch die Gesamtstichprobengröße berechnet. Nehmen wir also an, ich habe vier Gruppen:
Gruppe 1: N1=100
Gruppe 2: N1=500
Gruppe 3: N1=200
Gruppe 4: N1=400
Außerdem sind die Gruppen 1 und 2 Typ 1 und die Gruppen 3 und 4 Typ 2
Das Gewicht beträgt:
Gruppe 1: 1200/100
Gruppe 2: 1200/500
Gruppe 3: 1200/200
Gruppe 4: 1200/400
Wenn ich „Y nach X anpassen“ ausführe, wobei Y der DV und Wenn ich jedoch fortfahre und die Standardabweichungen für den DV erhalte, sind diese viel größer als die Standardabweichungen für jede der Gruppen. Das lässt mich denken, dass ich nicht verstehe, was ich tue.
Hilfe?