JMP でのホモ/ヘテロ分散性のテスト<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは。最小二乗回帰モデルで等分散性または不均一分散性をチェックしようとしています。 残差を主観的に調べることはできますが、White 検定や Breusch-Pagan 検定によって生成された p 値などを追加で報告することを好みます。 JMP のヘルプやドキュメント、あるいは Web 上でこれを行う方法に関するドキュメントが見つかりません。 残差を保存して二乗し、元の予測子と同じ予測子を使用して、結果を二乗残差として新しい回帰を実行する必要がありますか? Breusch-Pagan p 値は、そのモデルにおけるオムニバス F の重要性になりますか? これは私が見つけた中で最も近いものです: http://www.augustana.edu/users/ecmarme/using%20JMP%20to%20check%20model%20for%20heteroskedasticity.ppt
Re: JMP でのホモ/ヘテロ分散性のテスト単純なモデルで比較してみましたp二乗残差をフィッティングする際の F 検定から導出された、対応する Chi2 pロンスの公式とブルーシュ・パガンよりp R 関数 bptest から。
R と JMP は同じものを返しますp -値 (Chi2) と F 検定pもあまり変わりません。
私が使用したコードは次のとおりです。
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 ) );
ログウィンドウの結果:
Round({Ftest_p, bp_p_JMP, bp_p_R}, 6) = {0.152976, 0.145395, 0.145395};
Re: JMP でのホモ/ヘテロ分散性のテストこんにちは、ケイル
このリンクによると:ホワイトテスト - Wikipedia、フリー百科事典(私がやったように) 残差自体を使用する必要があります。
このリンクによると:ブリューシュ・ペイガン・テスト - Wikipedia、フリー百科事典二乗残差が使用されます。
Re: JMP でのホモ/ヘテロ分散性のテストとても助かります、ありがとう。 再確認のため簡単な質問が 1 つあります。作成したモデルは二乗残差ではなく残差を予測していましたが、正しいですか? ホワイトテストでは二乗残差が使用されると読みました。 私の理解が正しければ、私の例では次のようになります。
フィットモデル(
Y( :res2 )、
エフェクト(
:年、
等
これにより、R2 は 0.222979 になります。 したがって、LM=31* 0.222979= 6.912349。 カイ二乗分布 (6.912349, 10) の p 値は 0.7 ですが、これは明らかに依然として を下回っていません。合理的0.05のようなカットオフ。
Re: JMP でのホモ/ヘテロ分散性のテストその時点で、次のスクリプトを実行したと思います。
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 )}
)
);
すると R2 は 0.377547 になりました
この段階では、その数値にサンプル サイズ 31 を掛けて、LM=n*R2、LM=31*0.377547=11.70396 を取得します。
この数値の Pvalue は、jmp の次のスクリプトを使用して取得できます。
New Table( "Pvalue",
Add Rows( 1 ),
New Column( "P>chiSq", Numeric, Continuous, Format( "Best", 12 ), Formula( 1 - ChiSquare Distribution( 11.703957, 10 ) ))
);
これにより、値が 0.3 になるため、元のモデルが不均一分散性の影響を受けていないことが確実になります。
それが役に立ったことを願っています。
Re: JMP でのホモ/ヘテロ分散性のテストこんにちは Ron、補助回帰を指定してカイ 2 乗 p 値を取得するのに問題があります。 これらは私が行っている手順です:
1. 対象のモデルを当てはめます。
2. 残差を保存します。
3. 残差を二乗します。
4. 元の予測子を二乗します。
5. モデルをフィットし、Y に二乗残差を入力し、次のモデル効果を追加します。
A. オリジナルの予測子
B. 予測子の二乗 (変換の横にある赤い三角形を使用)
C. 予測子のすべての可能なペアワイズ交差 (マクロ「次数階乗」を使用、以下で 2 つを選択)
6. r 二乗を使用して、カイ二乗分布での p 値を決定します。
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));
しかし、この時点で私は行き詰まっています。 オンラインや教科書をたくさん読んだ後、仮説検証はやめて、主観的な目視検査だけで正しいことを確認しようと思います。恒常性私のすべての分析に対して。 ご協力いただきありがとうございます。
Re: JMP でのホモ/ヘテロ分散性のテストこんにちは、ケイルさん
JMP にはそれが組み込まれていないと思いますが、補助回帰からの R2 (パラメーターの数を乗算) を使用し、それを適切な chi2 値と比較することで、「手動」で実行できます。
頻繁に実行する必要がある場合は、独自のプロセスをスクリプト化するだけです。
Re: JMP でのホモ/ヘテロ分散性のテストこんにちは、ロンさん
リンクありがとうございます。 ビデオが役に立ちます。 Julian Parris は、予測値に中央値分割を使用し、上半分の残差が下半分の残差と異なる変動性を持つかどうかを調べることを提案しています (Levene、Brown-Forsythe、Bartlett、または別のカテゴリカルな変動性等価検定を使用)。 ただし、連続データをカテゴリに分類することは理想的ではありません。 JMP で White テストや Breusch-Pagan テストを計算することはできますか? 残差を二乗し、予測値と相関させると、これらの検定のいずれかの p 値が得られるでしょうか?
Re: JMP でのホモ/ヘテロ分散性のテストこんにちは、ケイルさん
このリンクを見てください:
JMP を使用した回帰診断 - 誤差分散の等価性 - YouTube
おそらくそれが出発点となるでしょう。
ロン