Tengo datos de varias (22?) muestras, que varían considerablemente en el tamaño de la muestra. Entiendo que los parámetros se estiman mejor con muestras más grandes, pero ese no es el problema que quiero abordar aquí. Es que me gustaría graficar distribuciones y estimar parámetros, como si los tamaños de muestra no difirieran entre los grupos/muestras. Esto significa que será necesario reducir la ponderación de las muestras grandes y aumentar la ponderación de las muestras pequeñas.
Traté de hacer esto en "Ajustar Y por X", de la siguiente manera: calculé una nueva variable, PESO, como el tamaño de la muestra del Grupo dividido por el tamaño total de la muestra. Así que digamos que tengo cuatro grupos:
Grupo 1: N1=100
Grupo 2: N1=500
Grupo 3: N1=200
Grupo 4: N1=400
También los grupos 1 y 2 son de tipo 1 y los grupos 3 y 4 son de tipo 2
El PESO será:
Grupo 1: 100/1200
Grupo 2: 500/1200
Grupo 3: 200/1200
Grupo 4: 400/1200
Si hago "Ajustar Y por X", donde Y es el DV y X es "Tipo" y peso por PESO, luego uso "Comparar densidades" para obtener un gráfico de densidades superpuestas, se ve bien. Sin embargo, si continúo y obtengo las desviaciones estándar para el DV, estas son mucho más grandes que las desviaciones estándar para cualquiera de los grupos. Esto me hace pensar que no estoy entendiendo lo que estoy haciendo.
¿Ayuda?
Cometí un error en mi publicación original, que eliminaría si supiera cómo hacerlo. La versión correcta está a continuación:
Tengo datos de varias (22?) muestras, que varían considerablemente en el tamaño de la muestra. Entiendo que los parámetros se estiman mejor con muestras más grandes, pero ese no es el problema que quiero abordar aquí. Es que me gustaría graficar distribuciones y estimar parámetros, como si los tamaños de muestra no difirieran entre los grupos/muestras. Esto significa que será necesario reducir la ponderación de las muestras grandes y aumentar la ponderación de las muestras pequeñas.
Traté de hacer esto en "Ajustar Y por X", de la siguiente manera: calculé una nueva variable, PESO, como el tamaño de la muestra del Grupo dividido por el tamaño total de la muestra. Así que digamos que tengo cuatro grupos:
Grupo 1: N1=100
Grupo 2: N1=500
Grupo 3: N1=200
Grupo 4: N1=400
También los grupos 1 y 2 son de tipo 1 y los grupos 3 y 4 son de tipo 2
El PESO será:
Grupo 1: 1200/100
Grupo 2: 1200/500
Grupo 3: 1200/200
Grupo 4: 1200/400
Si hago "Ajustar Y por X", donde Y es el DV y X es "Tipo" y peso por PESO, luego uso "Comparar densidades" para obtener un gráfico de densidades superpuestas, se ve bien. Sin embargo, si continúo y obtengo las desviaciones estándar para el DV, estas son mucho más grandes que las desviaciones estándar para cualquiera de los grupos. Esto me hace pensar que no estoy entendiendo lo que estoy haciendo.
¿Ayuda?
Creo que este post te puede ayudar:
Resuelto: Desviación estándar ponderada - Comunidad de usuarios de JMP
Y probablemente el siguiente script ayude a entender lo que puede pasar.
Entonces, en su cálculo de enfoque de obras medias, cualquiera que sea el método que tome (peso de rol o frecuencia).
Hice una definición diferente de peso en comparación con la tuya, quería que la suma total de pesos fuera 1200 (tienes 4*1200).
Esto no debería importar, y para el peso en el rol de frecuencia no importa, pero para el peso en el rol de peso sí. Ver guión.
Desafortunadamente, no puedo explicar exactamente por qué, el pequeño conjunto de datos obtiene un stddev muy grande en comparación con el promedio total. Tal vez se deba al cuadrado y la raíz ...
Personalmente, no usaría su enfoque, porque no está claro lo que está sucediendo. Haría el resumen del grupo, y luego el promedio de los grupos, cada uno con un peso de 1. Y luego combine ese resultado en su gráfico.
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" ) );