Shapiro-Wilk正規性テストを行った後、これをプロットしました。テストでは、人口が正規分布している可能性が高いことが示されました。ただし、このプロットでこの「動作」を確認するにはどうすればよいですか?
更新
データの単純なヒストグラム:
更新
Shapiro-Wilkテストは次のように述べています。
Shapiro-Wilk正規性テストを行った後、これをプロットしました。テストでは、人口が正規分布している可能性が高いことが示されました。ただし、このプロットでこの「動作」を確認するにはどうすればよいですか?
更新
データの単純なヒストグラム:
更新
Shapiro-Wilkテストは次のように述べています。
回答:
「テストは、人口が正規分布している可能性が高いことを示しました。」
番号; それは示しませんでした。
仮説検定では、nullの可能性はわかりません。実際、このnullはfalseであることは間違いありません。
QQプロットは、非正規性を強く示すものではありません(プロットはかなり直線です)。おそらくあなたが予想するよりもわずかに短い左尾がありますが、それは本当に重要ではありません。
ヒストグラムの現状のままでは、おそらくあまり語られていません。また、わずかに短い左尾を暗示しています。しかし、こちらをご覧ください
データの取得元の人口分布は、まったく正常ではありません。ただし、QQプロットは、正規性がおそらくかなり適切な近似であることを示しています。
サンプルサイズが小さすぎなかった場合、シャピロ・ウィルクの拒絶の欠如はおそらく同じことを言っているでしょう。
更新:実際のShapiro-Wilk p値を含めるように編集することは重要です。実際には、通常の重要なレベルでnullを拒否することを示すからです。このテストは、データが正規分布していないことを示しており、プロットで示されている軽度のゆがみは、おそらくテストで検出されているものです。変数自体の正規性を想定する典型的な手順(1サンプルのt検定は頭に浮かぶものです)で、かなり大きなサンプルサイズと思われるものでは、この穏やかな非正規性はほとんど意味を持ちません。すべて-適合度テストの問題の1つは、問題ではない場合(サンプルサイズがある程度の非正規性を検出するのに十分な大きさである場合)に拒否する可能性が高いことです。同様に、最も重要な場合(サンプルサイズが小さい場合)に拒否に失敗する可能性が高くなります。
データが正規分布している場合、QQ正規プロットのポイントは直線の対角線上にあります。次のコマンドを使用してqqline(x)
、この行をQQプロットに追加できx
ます。ここでは、値のベクトルです。
正規分布および非正規分布の例:
正規分布
set.seed(42)
x <- rnorm(100)
次の線を含むQQ正規プロット:
qqnorm(x); qqline(x)
直線からの偏差は最小限です。これは正規分布を示します。
ヒストグラム:
hist(x)
非正規(ガンマ)分布
y <- rgamma(100, 1)
QQ正規プロット:
qqnorm(y); qqline(y)
ポイントは直線とは別の形状を明確にたどります。
ヒストグラムは、非正規性を確認します。分布はベル型ではなく、正に歪んでいます(つまり、ほとんどのデータポイントは下半分にあります)。正規分布のヒストグラムは、分布の中心で最も高い頻度を示しています。
hist(y)
qqPlot
内の関数をチェックアウトしcar
ます。
Rの正規性の仮定の妥当性をチェックするためのいくつかのツール
library(moments)
library(nortest)
library(e1071)
set.seed(777)
x <- rnorm(250,10,1)
# skewness and kurtosis, they should be around (0,3)
skewness(x)
kurtosis(x)
# Shapiro-Wilks test
shapiro.test(x)
# Kolmogorov-Smirnov test
ks.test(x,"pnorm",mean(x),sqrt(var(x)))
# Anderson-Darling test
ad.test(x)
# qq-plot: you should observe a good fit of the straight line
qqnorm(x)
qqline(x)
# p-plot: you should observe a good fit of the straight line
probplot(x, qdist=qnorm)
# fitted normal density
f.den <- function(t) dnorm(t,mean(x),sqrt(var(x)))
curve(f.den,xlim=c(6,14))
hist(x,prob=T,add=T)
直感が何らかのテストの結果と一致するかどうかを視覚的に確認することをお勧めしますが、毎回これが簡単になるとは期待できません。ヒッグスボソンを検出しようとする人々が視覚的に評価できる場合にのみ結果を信頼する場合、非常に鋭い目が必要になります。
特に大きなデータセットの場合(したがって、通常はパワーが増加する場合)、統計は肉眼ではほとんど識別できない場合でも、わずかな差を拾う傾向があります。
それは言われています:正常のために、あなたのQQプロットは直線を示すべきです:私はそれを言わないと思います。尾には明確な曲がりがあり、真ん中近くでも多少の騒ぎがあります。視覚的には、このデータは(正常性をチェックする目的に応じて)まだ「合理的に」正常であると言いたいかもしれません。
注:正規性を確認するほとんどの目的では、観測値の正規性ではなく平均の正規性のみが必要なので、中心極限定理で十分です。さらに、正規性は多くの場合「公式に」チェックする必要があるという前提ですが、多くのテストでは、この前提が満たされないことにかなり鈍感であることが示されています。
「R」ライブラリ「car」のバージョンは、中心的な傾向だけでなく信頼区間も提供するので気に入っています。データの動作が仮想分布と一致しているかどうかを確認するための視覚的なガイダンスを提供します。
library(car)
qqPlot(lm(prestige ~ income + education + type, data=Duncan),
envelope=.99)
いくつかのリンク: