Ich habe Daten von mehreren (22?) Stichproben, die sich in der Stichprobengröße erheblich unterscheiden. Ich verstehe, dass Parameter bei größeren Stichproben besser geschätzt werden, aber das ist nicht das Thema, 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 dies in „Y by X anpassen“ wie folgt versucht: Ich habe eine neue Variable GEWICHT als die 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
Auch die Gruppen 1 und 2 sind Typ 1 und die Gruppen 3 und 4 sind Typ 2
GEWICHT wird sein:
Gruppe 1: 100/1200
Gruppe 2: 500/1200
Gruppe 3: 200/1200
Gruppe 4: 400/1200
Wenn ich "Y nach X anpassen" mache, wobei Y der DV und X "Typ" und Gewicht nach GEWICHT ist, dann "Vergleiche Dichten" verwende, um ein Diagramm überlappender Dichten zu erhalten, sieht es richtig aus. Wenn ich jedoch fortfahre und die Standardabweichungen für den DV bekomme, 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?
Ich habe in meinem ursprünglichen Post einen Fehler gemacht, den ich löschen würde, wenn ich wüsste wie. Die richtige Version ist unten:
Ich habe Daten von mehreren (22?) Stichproben, die sich in der Stichprobengröße erheblich unterscheiden. Ich verstehe, dass Parameter bei größeren Stichproben besser geschätzt werden, aber das ist nicht das Thema, 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 dies in „Y by X anpassen“ wie folgt versucht: Ich habe eine neue Variable GEWICHT als die 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
Auch die Gruppen 1 und 2 sind Typ 1 und die Gruppen 3 und 4 sind Typ 2
GEWICHT wird sein:
Gruppe 1: 1200/100
Gruppe 2: 1200/500
Gruppe 3: 1200/200
Gruppe 4: 1200/400
Wenn ich "Y nach X anpassen" mache, wobei Y der DV und X "Typ" und Gewicht nach GEWICHT ist, dann "Vergleiche Dichten" verwende, um ein Diagramm überlappender Dichten zu erhalten, sieht es richtig aus. Wenn ich jedoch fortfahre und die Standardabweichungen für den DV bekomme, 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?
Ich denke dieser Beitrag kann dir helfen:
Gelöst: Gewichtete Standardabweichung – JMP User Community
Und wahrscheinlich hilft das folgende Skript zu verstehen, was passieren kann.
In Ihrer Ansatzberechnung des Mittelwerts funktioniert also jede Methode, die Sie verwenden (Rollengewicht oder Häufigkeit).
Ich habe das Gewicht im Vergleich zu Ihrer anders definiert, 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 spielt es keine Rolle, aber für das Gewicht in der Rolle des Gewichts schon. Siehe Skript.
Warum das so ist, kann ich leider nicht genau erklären, der kleine Datensatz bekommt einen sehr großen stddev im Vergleich zum Gesamtdurchschnitt. Es liegt vielleicht an Quadrat und Wurzel ...
Ich persönlich würde Ihren Ansatz nicht verwenden, weil es nicht klar ist, was passiert. Ich würde die Gruppenzusammenfassung machen und dann den Durchschnitt über die Gruppen, die jeweils mit 1 gewichtet werden. Und kombinieren Sie dann dieses Ergebnis 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" ) );