Je fais une analyse de variance et j'ai besoin d'examiner les estimations de variance impartiales pour un certain nombre de sous-groupes que je regarde.Je peux les calculer manuellement en utilisant une table d2 que j'ai, mais j'espérais qu'il y avait un moyen de mettre cela dans une formule.Je sais qu'il peut être dérivé de la distribution du chi carré, mais je n'ai pas les calculs pour cela.
Toute aide sur un moyen direct d'extraire d2 ou sur les calculs derrière sa construction manuelle serait utile.
Merci
Evan Morris
J'ai remarqué dans la version JMP15 que la constante du graphique de contrôle/constante sans biais/constante d'ajustement du biais sera calculée maintenant pour des tailles d'échantillon allant jusqu'à 50. J'étais curieux de voir si JMP avait un script sous Sample Data, Teaching Scripts ou autre. Est-ce que quelqu'un sait si JMP tel quel peut créer cette table? J'ai construit sur la fonction de Ian et créé le script suivant pour créer le tableau pour l'enseignement des cours SPC. Le tableau est à 5 décimales, n'importe qui peut utiliser Col > Standardiser les attributs pour changer le format en 3 ou 4. La documentation du logiciel SAS contient également des fonctions pour d2, d3 et c4. Peut-être ajouter la possibilité de scripter ou d'ajouter la table dans 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);
);
Je n'ai pas vu ce truc d2 depuis un moment !
// 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 fait, permettez-moi de mettre à jour ma question un peu.La valeur rapportée dans la section des composants de variance de la jauge de variabilité est-elle impartiale ?Cela peut être suffisant pour mon travail (même si je préférerais toujours l'accès aux constantes)
Non, je recherche l'estimation non biaisée de l'écart type de la population (chapeau sigma), qui peut être calculée à partir de l'écart type de l'échantillon du sous-groupe (s) et d'une constante sans biais (soit d2 ou c4 selon la taille de l'échantillon et la façon dont je je les utilise).
Disons donc que j'ai 30 sous-groupes de la même taille (n = 4).Je peux calculer la barre S en faisant la moyenne de l'écart type au sein du sous-groupe.Je peux alors diviser la barre s par c4 et déterminer l'estimation impartiale de l'écart type de la population.
Mon problème est que j'ai différentes tailles de sous-groupes, donc je ne peux pas simplement le rechercher une fois et le mettre dans le tableau.Je suis aussi un peu inquiet pour savoir si j'ai besoin ou non de d2 ou de c4 (mais c'est mon problème, je vais le régler).
Quoi qu'il en soit, j'espérais simplement que ces paramètres seraient facilement extractibles par une fonction dans JSL, ils sont assez courants dans les travaux de contrôle graphique/SQC.
Cherchez-vous la variance d'un sous-groupe ?
https://en.wikipedia.org/wiki/Variance#Sample_variance
Ce sera le carré de l'écart type de la colonne, la formule est (Col Std Dev( col, by1, by2, ...))^2
Exécutez le script ci-dessous.Vous pouvez également le trouver en utilisant Tableau> Résumé.
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 )
);