Estoy haciendo un análisis de varianza y necesito mirar las estimaciones de varianza imparciales para varios subgrupos que estoy viendo.Puedo calcularlos manualmente usando una tabla d2 que tengo, pero esperaba que hubiera una manera de poner eso en una fórmula.Sé que se puede derivar de la distribución Chi-cuadrado, pero no tengo las matemáticas para eso.
Cualquier ayuda sobre una forma directa de extraer d2 o las matemáticas detrás de la construcción manual sería útil.
Gracias
evan morris
Noté en la versión JMP15 que la constante del gráfico de control/constante de eliminación de sesgo/constante de ajuste de sesgo se calculará ahora para tamaños de muestra de hasta 50. Tenía curiosidad por ver si JMP tenía algún script en Sample Data, Teaching Scripts u otro. ¿Alguien sabe si JMP tal como está puede crear esta tabla? Me basé en la función de Ian e hice el siguiente script para crear la tabla para enseñar clases de SPC. La tabla tiene 5 decimales, cualquiera puede usar Col > Estandarizar atributos para cambiar el formato a 3 o 4. También en la documentación del software SAS hay funciones para d2, d3 y c4. ¿Quizás agregar la capacidad de secuencias de comandos o agregar la tabla en JMP16?
// from post by ian_jmp to question on
// "Accessing Control Chart constants/unbiasing constants"
// add the complete table up to 25
Names Default To Here( 1 );
calculateD2 = Function( {n},
{Default Local},
d2 = Round( Integrate( 1 - Power( 1 - Normal Distribution( x ), n ) - Power( Normal Distribution( x ), n ), x, ., . ), 5 )
);
calculateD3 = Function( {n, d2},
{Default Local},
d3 = Round(
sqrt(
2 * (Integrate(
Integrate(
1 - Power(Normal Distribution(y),n) - Power( 1 - Normal Distribution(x),n) + Power( (Normal Distribution(y) - Normal Distribution(x)), n )
, x, ., y)
, y, ., . )) - d2^2
)
, 5 )
);
calculateC4 = Function( {n},
{Default Local},
c4 = Round( gamma(n/2) * sqrt(2/(n-1)) / gamma((n-1)/2), 5 )
);
// create table following example tables showing x-bar constants first (A2, A3)
// then d2 sigma estimate, then the R chart and S chart constants
dt = New Table("Table of Control Chart Constants",
Add Rows(24),
New Column("Sample size", Numeric, Continuous),
New Column("A2", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("A3", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("d2", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("d3", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("D3", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("D4", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("c4", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("B3", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
New Column("B4", Numeric, Continuous, Format( "Fixed Dec", 8, 5 )),
); Wait(0);
For( n = 2, n <= 25, n++,
Column(dt,"Sample size")[n-1] = n;
Column(dt,"d2")[n-1] = d2 = calculateD2( n ); Wait(0);
Column(dt,"d3")[n-1] = d3 = calculateD3( n, d2 ); Wait(0);
D3temp = 1 - 3*d3/d2;
If(D3temp > 0,
Column(dt,"D3")[n-1] = D3temp,
Column(dt,"D3")[n-1] = 0 // for negative values
);
Column(dt,"D4")[n-1] = 1 + 3*d3/d2;
Column(dt,"A2")[n-1] = 3/(d2*sqrt(n));
Column(dt,"c4")[n-1] = c4 = calculateC4( n ); Wait(0);
Column(dt,"A3")[n-1] = 3/c4/sqrt(n);
B3temp = 1 - 3 * sqrt(1/c4^2 - 1);
If(B3temp > 0,
Column(dt,"B3")[n-1] = B3temp,
Column(dt,"B3")[n-1] = 0
);
Column(dt,"B4")[n-1] = 1 + 3 * sqrt(1/c4^2 - 1);
);
¡Hacía tiempo que no veía esa cosa de d2!
// https://v8doc.sas.com/sashtml/qc/chapc/sect9.htm
NamesDefaultToHere(1);
calculateD2 =
Function({n}, {Default Local},
d2 = Round(Integrate(1 - Power(1 - NormalDistribution(x), n) - Power(NormalDistribution(x), n), x, ., .), 5);
);
for(n=2, n<=25, n++, Print(n, calculateD2(n)));En realidad, déjame actualizar un poco mi pregunta.¿Es imparcial el valor informado en la sección de componentes de la varianza del indicador de variabilidad?Eso puede ser suficiente para mi trabajo (aunque todavía preferiría el acceso a las constantes)
No, estoy buscando la estimación imparcial de la desviación estándar de la población (sombrero sigma), que se puede calcular a partir de la desviación estándar (s) de la muestra del subgrupo y una constante imparcial (ya sea d2 o c4 dependiendo de los tamaños de muestra y cómo los estoy usando).
Así que digamos que tengo 30 subgrupos del mismo tamaño (n=4).Puedo calcular la barra S promediando la desviación estándar dentro del subgrupo.Luego puedo dividir la barra s por c4 y determinar la estimación imparcial de la desviación estándar de la población.
Mi problema es que tengo diferentes tamaños de subgrupos, así que no puedo buscarlo una vez y ponerlo en la tabla.También soy un poco quisquilloso sobre si necesito o no d2 o c4 (pero ese es mi problema, lo solucionaré).
De cualquier manera, solo esperaba que esos parámetros fueran fácilmente extraíbles por una función en JSL, son bastante comunes en el trabajo de gráficos de control/SQC.
¿Estás buscando la varianza de un subgrupo?
https://en.wikipedia.org/wiki/Variance#Sample_variance
Ese será el cuadrado de la desviación estándar de la columna, la fórmula es (Col Std Dev(col, by1, by2, ...))^2
Ejecute el script a continuación.También puede encontrar esto usando Tabla> Resumen.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Standard Variance for Each Age and Sex Group",
Formula( (Col Std Dev( :height, :age, :sex ))^2 )
);