J'ai des données provenant de plusieurs (22 ?) échantillons, dont la taille varie considérablement. Je comprends que les paramètres sont mieux estimés avec des échantillons plus grands, mais ce n'est pas le problème que je souhaite aborder ici. C'est que j'aimerais à la fois représenter graphiquement les distributions et estimer les paramètres, comme si les tailles d'échantillon ne différaient pas entre les groupes/échantillons. Cela signifie que les grands échantillons devront être dépondérés et les petits échantillons devront être majorés.
J'ai essayé de le faire dans « Ajuster Y par X », comme suit : j'ai calculé une nouvelle variable, POIDS, comme la taille de l'échantillon du groupe divisée par la taille totale de l'échantillon. Disons donc que j'ai quatre groupes :
Groupe 1 : N1=100
Groupe 2 : N1=500
Groupe 3 : N1=200
Groupe 4 : N1=400
Les groupes 1 et 2 sont également de type 1 et les groupes 3 et 4 sont de type 2.
LE POIDS sera :
Groupe 1 : 100/1200
Groupe 2 : 500/1200
Groupe 3 : 200/1200
Groupe 4 : 400/1200
Si je fais "Ajuster Y par X" où Y est le DV et X est "Type" et poids par POIDS, puis utilisez "Comparer les densités" pour obtenir un tracé des densités qui se chevauchent, cela semble correct. Cependant, si je continue et que j'obtiens les écarts types pour le DV, ceux-ci sont beaucoup plus grands que les écarts types pour n'importe lequel des groupes. Cela me fait penser que je ne comprends pas ce que je fais.
Aide?
Je pense que ce post peut t'aider :
Résolu : Écart-type pondéré - Communauté d'utilisateurs JMP
Et probablement le script suivant aide à comprendre ce qui peut arriver.
Ainsi, dans votre approche, le calcul de la moyenne fonctionne, quelle que soit la méthode que vous adoptez (poids du rôle ou fréquence).
J'ai fait une définition différente du poids par rapport à la vôtre, je voulais que la somme totale des poids soit de 1200 (vous avez 4*1200).
Cela ne devrait pas avoir d'importance, et pour le poids dans le rôle de la fréquence, ce n'est pas le cas, mais pour le poids dans le rôle du poids, c'est le cas. Voir scénario.
Malheureusement, je ne peux pas expliquer exactement pourquoi, le petit ensemble de données obtient un très grand stddev par rapport à la moyenne totale. C'est peut-être dû au carré et à la racine ...
Personnellement, je n'utiliserais pas votre approche, car ce n'est pas clair, ce qui se passe. Je ferais le résumé du groupe, puis la moyenne des groupes pondérés chacun 1. Et puis combinez ce résultat dans votre graphique.
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" ) );J'ai fait une erreur dans mon message d'origine, que je supprimerais si je savais comment. La bonne version est ci-dessous :
J'ai des données provenant de plusieurs échantillons (22 ?), dont la taille d'échantillon varie considérablement. Je comprends que les paramètres sont mieux estimés avec des échantillons plus grands, mais ce n'est pas le problème que je veux aborder ici. C'est que je voudrais à la fois représenter graphiquement les distributions et estimer les paramètres, comme si les tailles d'échantillon ne différaient pas entre les groupes/échantillons. Cela signifie que les grands échantillons devront être dépondérés et les petits échantillons surpondérés.
J'ai essayé de le faire dans "Fit Y by X", comme suit : j'ai calculé une nouvelle variable, WEIGHT, comme la taille de l'échantillon du groupe divisée par la taille totale de l'échantillon. Disons donc que j'ai quatre groupes :
Groupe 1 : N1=100
Groupe 2 : N1=500
Groupe 3 : N1=200
Groupe 4 : N1=400
Les groupes 1 et 2 sont également de type 1 et les groupes 3 et 4 sont de type 2
Le POIDS sera :
Groupe 1 : 1200/100
Groupe 2 : 1200/500
Groupe 3 : 1200/200
Groupe 4 : 1200/400
Si je fais "Ajuster Y par X" où Y est le DV et X est "Type" et poids par POIDS, puis utilisez "Comparer les densités" pour obtenir un tracé des densités qui se chevauchent, ça a l'air correct. Cependant, si je continue et que j'obtiens les écarts-types pour le DV, ceux-ci sont beaucoup plus grands que les écarts-types pour l'un des groupes. Cela me fait penser que je ne comprends pas ce que je fais.
Aider?