Test d'homo/hétéroscédacité dans JMP<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour, j'essaie de vérifier l'homo- ou l'hétéroscédasticité dans un modèle de régression des moindres carrés. Je peux examiner subjectivement les résidus, mais je préférerais signaler en plus une valeur p, telle que celle générée par le test de White ou le test de Breusch-Pagan. Je ne trouve pas de documentation expliquant comment procéder dans l'aide ou la documentation de JMP, ni sur le Web. Dois-je enregistrer les résidus, les mettre au carré, puis exécuter une nouvelle régression avec les mêmes prédicteurs que l'original, mais avec le résultat comme résidus au carré ? La valeur p de Breusch-Pagan serait-elle la signification de l'omnibus F dans ce modèle ? C'est le plus proche que j'ai trouvé : http://www.augustana.edu/users/ecmarme/using%20JMP%20to%20check%20model%20for%20heteroskedasticity.ppt
Re : Test d'homo/hétéroscédacité dans JMPPour un modèle simple j'ai comparé p dérivé du test F lors de l'ajustement des carrés des résidus, le Chi2 correspondant p de la formule de Rons et du Breusch-Pagan p à partir de la fonction R bptest.
R et JMP reviennent identiques p -valeurs (Chi2) et le test F p n'est pas très différent non plus.
Voici le code que j'ai utilisé :
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Fit original model
nc = N Col( dt );
dt << Fit Model( Y( :weight ), Effects( :height ), Personality( Standard Least Squares ), Run( residuals ) );
//Fit squared residuals
dt << New Column( "res2", values( (Column( nc + 1 ) << getvalues) ^ 2 ) );
fm = dt << Fit Model( Y( :res2 ), Effects( :height ), Personality( Standard Least Squares ), Run( residuals ) );
//Extract numbers from report
rfm = Report( fm );
R2 = rfm[Outline Box( "Summary of Fit" )][1][2][1];
n = rfm[Outline Box( "Summary of Fit" )][1][2][5];
df = rfm[Outline Box( "Analysis of Variance" )][1][2][1];
// p-value fron F-test (Anova)
Ftest_p = rfm[Outline Box( "Analysis of Variance" )][1][5][2][1];
// Breusch-Pagan p-value with JMP
bp_p_JMP = 1 - ChiSquare Distribution( n * R2, df );
// Breusch–Pagan test with R (Package lmtest must be installed)
R Init();
R Send( dt );
R Submit( "Data <- dt
names(Data)
attach(Data)
require(lmtest)
p <- bptest(weight ~ height)$p.value" );
bp_p_R = R Get( p );
R Term();
// Compare results
Show( Round( {Ftest_p, bp_p_JMP, bp_p_R}, 6 ) );
Résultats dans la fenêtre Journal :
Rond({Ftest_p, bp_p_JMP, bp_p_R}, 6) = {0,152976, 0,145395, 0,145395} ;
Re : Test d'homo/hétéroscédacité dans JMPSalut Kayle
d'après ce lien : Test blanc — Wikipédia, l'encyclopédie libre vous devez utiliser les résidus eux-mêmes (comme je l'ai fait).
d'après ce lien : Test de Breusch-Pagan — Wikipédia, l'encyclopédie gratuite les carrés des résidus sont utilisés.
Re : Test d'homo/hétéroscédacité dans JMPC'est très utile, merci. Une petite question, juste pour vérifier : le modèle que vous avez créé prédisait les résidus, pas les carrés des résidus, est-ce exact ? J'ai lu que le test de White utilise les carrés des résidus. Si je comprends bien, dans mon exemple ce serait ceci :
Modèle adapté (
Oui( :res2 ),
Effets(
:Âge,
etc.
Cela donnerait un R2 de 0,222979. Donc LM=31* 0,222979= 6.912349. La distribution ChiSquare (6,912349, 10) donne une valeur p de 0,7, qui n'est évidemment toujours pas inférieure à un raisonnable seuil comme 0,05.
Re : Test d'homo/hétéroscédacité dans JMPà ce stade, je suppose que vous avez exécuté le script suivant :
Fit Model(
Y( :Residual Runtime ),
Effects(
:Age,
:Weight,
:age2,
:weight2,
:Age * :Weight,
:Age * :age2,
:Age * :weight2,
:Weight * :age2,
:Weight * :weight2,
:age2 * :weight2
),
Personality( Standard Least Squares ),
Emphasis( Effect Screening ),
Run(
Profiler(
1,
Confidence Intervals( 1 ),
Term Value(
Age( 47.677 ),
Weight( 77.445 ),
age2( 2299.9 ),
weight2( 6064.8 )
)
),
:Residual Runtime << {Lack of Fit( 0 ), Sorted Estimates( 1 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )}
)
);
alors vous avez R2 de 0,377547
à ce stade, je voudrais simplement prendre ce nombre, le multiplier par la taille de l'échantillon 31 et obtenir LM=n*R2, LM=31*0,377547=11,70396.
la Pvalue de ce nombre peut être obtenue avec le script suivant dans jmp :
New Table( "Pvalue",
Add Rows( 1 ),
New Column( "P>chiSq", Numeric, Continuous, Format( "Best", 12 ), Formula( 1 - ChiSquare Distribution( 11.703957, 10 ) ))
);
cela vous donnera la valeur de 0,3 afin que vous puissiez être sûr que le modèle original ne souffrait pas d'hétéroscédasticité.
j'espère que cela a aidé.
Re : Test d'homo/hétéroscédacité dans JMPSalut Ron, j'ai du mal à spécifier la régression auxiliaire et à obtenir la valeur p du chi carré. Voici les étapes que je fais:
1. Ajuster le modèle d’intérêt.
2. Enregistrez les résidus.
3. Résidus carrés.
4. Prédicteurs originaux carrés.
5. Ajustez le modèle, placez les résidus au carré dans Y et ajoutez ces effets de modèle :
UN. Les prédicteurs originaux
B. Les prédicteurs au carré (en utilisant le triangle rouge à côté de la transformation)
C. Tous les croisements possibles par paire des prédicteurs (en utilisant la macro "factorielle en degré", avec 2 sélectionnés ci-dessous)
6. Utilisez le r au carré pour déterminer la valeur p selon une distribution du chi carré.
Voici un exemple avec JSL :
dt = Open("$Sample_Data/Fitness.jmp");
fm = Fit Model(
Y( :Runtime ),
Effects( :Age, :Weight ),
Personality( Standard Least Squares ),
Emphasis( Effect Leverage ),
Run(
:Runtime << {Lack of Fit( 0 ), Plot Actual by Predicted( 1 ),
Plot Regression( 0 ), Plot Residual by Predicted( 1 ),
Plot Effect Leverage( 1 ), Show VIF( 1 )}
),
);
fm << residuals;
dt << New Column ("res2",formula(:Residual Runtime^2));
dt << New Column ("age2",formula(:Age^2));
dt << New Column ("weight2",formula(:Weight^2));
Cependant, à ce stade, je suis bloqué. Après beaucoup de lectures en ligne et de manuels, je pense que je vais renoncer à un test d'hypothèse et m'en tenir à une inspection visuelle subjective pour confirmer mon hypothèse. oscédasticité pour toutes mes analyses. Merci pour votre aide.
Re : Test d'homo/hétéroscédacité dans JMPSalut Kayle,
Je pense que JMP ne l'a pas intégré, mais vous pouvez le faire "manuellement" en utilisant le R2 de la régression auxiliaire (multiplié par le nombre de paramètres) et en le comparant avec la valeur chi2 appropriée.
si vous devez le faire fréquemment, écrivez simplement votre propre processus.
Re : Test d'homo/hétéroscédacité dans JMPSalut Ron,
Merci pour le lien. La vidéo est utile. Julian Parris suggère d'utiliser une répartition médiane pour les prévisions et d'examiner si les résidus de la moitié supérieure ont une variabilité différente de celle de ceux de la moitié inférieure (en utilisant Levene, Brown-Forsythe, Bartlett ou un autre test d'égalité catégorique de variabilité). Cependant, regrouper les données continues en catégories n’est pas idéal. Est-il possible de calculer le test de White ou le test de Breusch-Pagan dans JMP ? La mise au carré des résidus et leur corrélation avec les prévisions donneraient-elles des valeurs p pour l'un de ces tests ?
Re : Test d'homo/hétéroscédacité dans JMPsalut Kayle,
jetez un oeil à ce lien:
Diagnostics de régression à l'aide de JMP - Égalité de variance d'erreur - YouTube
peut-être que cela peut vous donner un point de départ.
Ron