59

誰かがRで次の関数を埋めるのを手伝ってくれませんか:

#data is a single vector of decimal values
normally.distributed <- function(data) {
if(data is normal)
return(TRUE)
else
return(NO)
}
4

8 に答える 8

187

正規性検定は、ほとんどの人が考えていることを実行しません。シャピロの検定、アンダーソンダーリング、およびその他は、正規性の仮定に対する帰無仮説検定です。これらは、正規理論の統計手順を使用するかどうかを決定するために使用しないでください。実際、これらはデータアナリストにとって実質的に価値がありません。データが正規分布しているという帰無仮説を棄却することに関心があるのはどのような条件下ですか?通常のテストが正しいことであるという状況に出くわしたことはありません。サンプルサイズが小さい場合は、正規性からの大きな逸脱も検出されません。サンプルサイズが大きい場合は、正規性からのわずかな偏差でもnullが拒否されます。

例えば:

> set.seed(100)
> x <- rbinom(15,5,.6)
> shapiro.test(x)

    Shapiro-Wilk normality test

data:  x 
W = 0.8816, p-value = 0.0502

> x <- rlnorm(20,0,.4)
> shapiro.test(x)

    Shapiro-Wilk normality test

data:  x 
W = 0.9405, p-value = 0.2453

したがって、これらの両方の場合(二項および対数正規変量)、p値は> 0.05であり、帰無仮説を棄却できません(データが正常である)。これは、データが正常であると結論付けることを意味しますか?(ヒント:答えはノーです)。拒否しないことは、受け入れることと同じではありません。これは仮説検定101です。

しかし、より大きなサンプルサイズはどうですか?分布がほぼ正常である場合を考えてみましょう。

> library(nortest)
> x <- rt(500000,200)
> ad.test(x)

    Anderson-Darling normality test

data:  x 
A = 1.1003, p-value = 0.006975

> qqnorm(x)

ここに画像の説明を入力してください ここに画像の説明を入力してください

ここでは、200自由度のt分布を使用しています。qqプロットは、分布が現実の世界で見られる可能性のあるどの分布よりも正規に近いことを示していますが、テストは非常に高い信頼度で正規を棄却します。

正規性に対する有意なテストは、この場合、正規理論の統計を使用するべきではないことを意味しますか?(別のヒント:答えはノーです:))

于 2011-10-17T00:58:07.830 に答える
25

パッケージ入りもおすすめSnowsPenultimateNormalityTestです。TeachingDemosただし、関数のドキュメントは、テスト自体よりもはるかに役立ちます。テストを使用する前によくお読みください。

于 2011-10-16T02:53:06.390 に答える
13

SnowsPenultimateNormalityTestには確かに長所がありますが、 も参照することをお勧めしますqqnorm

X <- rlnorm(100)
qqnorm(X)
qqnorm(rnorm(100))
于 2011-10-16T03:49:09.740 に答える
5

shapiro.test正規性についてシャピロ・ウィルクス検定を実行する関数 の使用を検討してください。私はそれに満足しています。

于 2011-10-16T01:39:20.413 に答える
3
library(DnE)
x<-rnorm(1000,0,1)
is.norm(x,10,0.05)
于 2014-11-16T03:23:34.500 に答える
2

Anderson-Darling 検定も役に立ちます。

library(nortest)
ad.test(data)
于 2011-10-16T19:07:58.017 に答える
0

検定を実行すると、帰無仮説が真である場合にそれを棄却する可能性があります。

次の R コードを参照してください。

p=function(n){
  x=rnorm(n,0,1)
  s=shapiro.test(x)
  s$p.value
}

rep1=replicate(1000,p(5))
rep2=replicate(1000,p(100))
plot(density(rep1))
lines(density(rep2),col="blue")
abline(v=0.05,lty=3)

このグラフは、サンプル サイズが小さくても大きくても、5% の確率で帰無仮説が真の場合に棄却される可能性があることを示しています (タイプ I エラー)。

于 2016-10-11T03:32:48.927 に答える