R で多変量正規性テストを実行する方法
単一の変数が正規分布しているかどうかをテストしたい場合は、 QQ プロットを作成して分布を視覚化することも、 アンダーソン ダーリング テストやハルケ ベラ テストなどの正式な統計検定を実行することもできます。
ただし、複数の変数がグループとして正規分布しているかどうかをテストしたい場合は、多変量正規性テストを実行する必要があります。
このチュートリアルでは、R で特定のデータセットに対して次の多変量正規性テストを実行する方法について説明します。
- マルディアの試練
- エネルギー試験
- 多変量の尖度および歪度テスト
関連:多変量コンテキストで外れ値を特定したい場合は、 マハラノビス距離を使用できます。
例: R でのマルディアのテスト
Mardia 検定は、変数のグループが多変量正規分布に従うかどうかを判断します。検定の帰無仮説と対立仮説は次のとおりです。
H 0 (null): 変数は多変量正規分布に従います。
H a (代替): 変数は多変量正規分布に従いません。
次のコードは、 QuantPsycパッケージを使用して R でこのテストを実行する方法を示しています。
library (QuantPsyc) #create dataset set.seed(0) data <- data.frame(x1 = rnorm(50), x2 = rnorm(50), x3 = rnorm(50)) #perform Multivariate normality test mult.norm(data)$ mult.test Beta-hat kappa p-val Skewness 1.630474 13.5872843 0.1926626 Kurtosis 13.895364 -0.7130395 0.4758213
mult.norm()関数は、データセットの歪度と尖度の両方における多変量正規性をテストします。どちらの p 値も 0.05 未満ではないため、検定の帰無仮説を棄却できません。データセット内の 3 つの変数が多変量分布に従っていないという証拠はありません。
例: R でのエネルギー テスト
エネルギー検定は、変数のグループが多変量正規分布に従うかどうかを判断するもう 1 つの統計検定です。検定の帰無仮説と対立仮説は次のとおりです。
H 0 (null): 変数は多変量正規分布に従います。
H a (代替): 変数は多変量正規分布に従いません。
次のコードは、エネルギーパッケージを使用して R でこのテストを実行する方法を示しています。
library (energy) #create dataset set.seed(0) data <- data.frame(x1 = rnorm(50), x2 = rnorm(50), x3 = rnorm(50)) #perform Multivariate normality test mvnorm.etest(data, R= 100 ) Energy test of multivariate normality: estimated parameters data: x, sample size 50, dimension 3, replicates 100 E-statistic = 0.90923, p-value = 0.31
検定の p 値は0.31です。この数値は 0.05 未満ではないため、検定の帰無仮説を棄却できません。データセット内の 3 つの変数が多変量分布に従っていないという証拠はありません。
注: R=100 引数は、テストの実行時に使用するブースト マップされたレプリカ 100 個を指定します。サンプル サイズが小さいデータ セットの場合は、この数値を増やすと、より信頼性の高い検定統計量の推定値を生成できます。
追加リソース
R で QQ プロットを作成して解釈する方法
R でアンダーソン・ダーリング検定を実行する方法
R で Jarque-Bera テストを実行する方法
R で Shapiro-Wilk テストを実行する方法