★ D'Agostino-Pearson検定について ★

9532. D'Agostino-Pearson検定について 赤坂 2006/03/01 (水) 07:40
├9536. Re: D'Agostino-Pearson検定について NA 2006/03/01 (水) 22:39
├9535. Re: D'Agostino-Pearson検定について 青木繁伸 2006/03/01 (水) 15:48
└9534. Re: D'Agostino-Pearson検定について にゃんちゅう 2006/03/01 (水) 15:15
 └9539. Re^2: D'Agostino-Pearson検定について 赤坂 2006/03/02 (木) 10:49
  ├9547. Re^3: D'Agostino-Pearson検定について NA 2006/03/02 (木) 22:31
  └9546. Re^3: D'Agostino-Pearson検定について NA 2006/03/02 (木) 22:28
   └9548. Re^4: D'Agostino-Pearson検定について 赤坂 2006/03/02 (木) 23:30
    ├9562. Re^5: D'Agostino-Pearson検定について Cricket 2006/03/03 (金) 12:31
    ├9552. Re^5: D'Agostino-Pearson検定について 青木繁伸 2006/03/03 (金) 07:43
    └9549. Re^5: D'Agostino-Pearson検定について ひの 2006/03/02 (木) 23:43


9532. D'Agostino-Pearson検定について 赤坂  2006/03/01 (水) 07:40
検証用のデータが正規分布に従っているかどうかの検定を行いたいと思っております。ネットで調べたところ
http://www.swetake.com/qc/normdist/normdist5.html
のページが見つかり,現在歪度と尖度が計算されているので'Agostino-Pearson検定を行ってみようと思い検索しました。
http://stat.taiiku.tsukuba.ac.jp/homepage/nishikenhp/suzuki/normality%20test.pdf
が見つかったのでいけると思ったのですが,関数型 (Z_g1)^2 の型が分かればできるところまできました。が,英語のサイトを検索しても関数の型が見つけられませんでした。この関数型はどのようなものかご教示いただけると幸いです(掲載されているHPのURLでも嬉しいです)

また,私は基礎程度ですがRが使えるので,多少複雑な関数であってもなんとかなると思っております。

以上,よろしくお願いします。
また,最初のHPにあったShapiro-Wilk検定についても検定の方法を知りたいのですが,これについてはまだ全く調べ切れていないので,もう少し頑張ってみます。

     [このページのトップへ]


9536. Re: D'Agostino-Pearson検定について NA  2006/03/01 (水) 22:39
http://stat.taiiku.tsukuba.ac.jp/homepage/nishikenhp/suzuki/normality%20test.pdf
を拝見しました。変わった記号の使い方ですが,Zg1,Zg2 は歪度(g_1),尖度(g_2) を標準化した変数(標準正規乱数を Z で表すことはよくありますから)と考えると,この統計量の意味がよくわかります。

V(g_1)=6/n, V(g_2)=24/n (n は sample size)はよく知られた近似式です。これを使えば K^2 統計量が簡単に求まります。

V(g_1) などのもう少し詳しい近似式,Shapiro Wilk 検定など正規性の検定については,柴田義貞著「正規分布」東大出版会,7章に説明があります。(専門的で難しいかもしれませんが)。

     [このページのトップへ]


9535. Re: D'Agostino-Pearson検定について 青木繁伸  2006/03/01 (水) 15:48
インターネットで R の関数などを検索するとき,
site:r-project.org キーワード
のようにして検索していますか?

R でもいろいろなパッケージが用意されています。

fBasics パッケージには,以下のようなものがあります。

OneSampleTests {fBasics} R Documentation
One Sample Tests

Description

A collection and description of functions of one sample tests for testing normality of for detecting non-randomness in obsevations.

The functions for testing normality are:

normalTest test suite for some normality tests,
ksnormTest Kolmogorov-Smirnov normality test,
shapiroTest Shapiro-Wilk's test for normality,
jarqueberaTest Jarque–Bera test for normality,
dagoTest D'Agostino normality test.
Functions for high precision Jarque Bera LM and ALM tests:

jbTable Table of finite sample p values for the JB test,
pjb Computes probabilities for the Jarque Bera Test,
qjb Computes quantiles for the Jarque Bera Test,
jbTest Performs finite sample adjusted JB LM and ALM test.
Additional functions for testing normality from the 'nortest' package:

adTest Anderson–Darling normality test,
cvmTest Cramer–von Mises normality test,
lillieTest Lilliefors (Kolmogorov-Smirnov) normality test,
pchiTest Pearson chi–square normality test,
sfTest Shapiro–Francia normality test.

また,moments パッケージというものもあります。
これには,以下のような関数が含まれています。

agostino.test D'Agostino test of skewness
anscombe.test Anscombe-Glynn test of kurtosis
bonett.test Bonett-Seier test of Geary's kurtosis
geary Geary's measure of kurtosis
kurtosis Pearson's measure of kurtosis
moment Statistical Moments
skewness Skewness of the sample

     [このページのトップへ]


9534. Re: D'Agostino-Pearson検定について にゃんちゅう  2006/03/01 (水) 15:15
'Agostino-Pearson検定を行ってみようと思い検索しました。
> http://stat.taiiku.tsukuba.ac.jp/homepage/nishikenhp/suzuki/normality%20test.pdf
> が見つかったのでいけると思ったのですが,関数型 (Z_g1)^2 の型が分かればできるところまできました。が,英語のサイトを検索しても関数の型が見つけられませんでした。この関数型はどのようなものかご教示いただけると幸いです(掲載されているHPのURLでも嬉しいです)

SPSSのマクロが
http://www.columbia.edu/~ld208/normtest.sps
にあります。ただし,その他の検定および多変量正規分布の検定も含まれています。
>

     [このページのトップへ]


9539. Re^2: D'Agostino-Pearson検定について 赤坂  2006/03/02 (木) 10:49
にゃんちゅう様,青木先生,NA様,どうもありがとうございます。

にゃんちゅう様:現在はSPSSは使えない環境下にあります。将来的には導入されると思うので,そのとき是非使ってみようと思います。

青木先生:実はRの検索はよくわからず苦労しておりました。「 R Language Statistics normal」という感じでやっていたので全然違うものがヒットしてきたは当然ですね。R パッケージについては早速試してみます。

NA様:非常に初心者的な質問で大変申し訳ないのですが,1.歪度の標準化とは,歪度から平均を引いて標準偏差で割るのでしょうか?非常に初歩的な質問でお恥ずかしい限りです。2.V(g_1)=6/n は,その中に歪度g_1が入ってないのでV(g_1)はサンプルサイズだけで決まってしまう気がするのですが,ここも間違いなく私の知識不足は確実です。低レベルな質問ですが,お答え頂けると非常にうれしいです。私の理解では「歪度,尖度を標準化して2乗して足したものが検定統計量になる」というところまではよろしいでしょうか?

以上,皆様,どうもありがとうございました。少しずつでも頑張って先へ進もうと思っています

     [このページのトップへ]


9547. Re^3: D'Agostino-Pearson検定について NA  2006/03/02 (木) 22:31
続き(すみません描いている途中で投稿ボタンを押してしまったようです)

K^2 が 自由度 2 のカイ2乗分布にしたがうことになります。

要約すると,この検定は,仮説:歪度=尖度=0の同時検定といえると思います。

     [このページのトップへ]


9546. Re^3: D'Agostino-Pearson検定について NA  2006/03/02 (木) 22:28
赤坂様
説明不足でした。失礼いたしました。

私は,D'Agostino-Pearson検定についてよく知りません。あくまでも想像を申し上げている点,ご承知おきください。

正規分布では,歪度,尖度はともに 0 になります。ですから,この両者が 0 であることの検定をもって,正規性の検定にかえることは,それほど不合理ではないでしょう。母集団の歪度,尖度はそれらの標本値 g_1,g_2 で推定されます。仮説(母集団は正規分布)のもとで, g_1,g_2 の分布は(ga が大きければ)ともに,平均が 0 分散がそれぞれ(およそ)6/n, 24/n の正規分布で近似できます(正規分布を仮定すると,この分散は,ご質問のように n だけで決まります)。

そこで,Z_1 = sqrt(n/6)g_1, Z_2 = sqrt(n/24) g_2 とすると,帰無仮説のとき,Z_1,Z_2 は標準正規分布にしたがう変数になります。n が大きいとき Z_1, Z_2 が無相関ならば(これは私は知りませんでいたがおそらくそうだと思います)
K^2 = Z_1^2+Z_2^2 (これが検定統計量ですが)

     [このページのトップへ]


9548. Re^4: D'Agostino-Pearson検定について 赤坂  2006/03/02 (木) 23:30
NA様,何度もありがとうございました。先ほど,

http://tolstoy.newcastle.edu.au/R/help/04/08/3121.html

というサイトが見つかり,何もわからないままRを実行してみたら,動いたことは動いたのですが,手持ちのデータ20種類(サンプル数1,000個程度)が全部正規性が棄却されてしまいました。
ヒストグラム,歪度,尖度を見てかなり正規分布に近いものもあったのですが,K^2の値が非常に大きくなり,p値は殆ど0でした。一番良かった結果で,P=0.0002 程度でした。正規性の検定は,サンプル数が多いほど容易になると思っていたのですが・・・ちょっと根本的に理解できていないところがキツいです。もうちょっと勉強してみます。

     [このページのトップへ]


9562. Re^5: D'Agostino-Pearson検定について Cricket  2006/03/03 (金) 12:31
 最初のスレッドのリンク先にあるようにZar(1999)の生物統計の教科書に詳しく載っていたと思います。

 んで,個人的に虫のデータを解析した印象では,D'Ago(略)検定は厳しすぎる気がしますね。モノによりますが,「検証用のデータ」がexactに正規分布じゃなければ,nがそこそこあれば何でも有意になってしまう印象があります。

     [このページのトップへ]


9552. Re^5: D'Agostino-Pearson検定について 青木繁伸  2006/03/03 (金) 07:43
> 先ほど,
>
> http://tolstoy.newcastle.edu.au/R/help/04/08/3121.html
>
> というサイトが見つかり,何もわからないままRを実行してみたら,動いたことは動いたのですが,

ここで紹介されていた関数と,前に紹介した fBasics 内の関数の比較を(ほかを探す意味がわかりませんが。。。)



> set.seed(111)
> x <- rnorm(1000)
> library(fBasics)
> dagoTest(x)

Title:
D'Agostino Normality Test

Test Results:
STATISTIC:
Chi2 | Omnibus: 1.3617
Z3 | Skewness: -0.7031
Z4 | Kurtosis: 0.9313
P VALUE:
Omnibus Test: 0.5062
Skewness Test: 0.482
Kurtosis Test: 0.3517

Description:
Fri Mar 3 07:35:19 2006

> dagostino.pearson.test(x)

D'Agostino-Pearson normality test

K2 is distributed as Chi-squared with df=2

data: x
K2 = 1.3617, p-value = 0.5062
alternative hypothesis: distribution is not normal

Omnibus Test: 0.5062 と
p-value = 0.5062 が,一致していますね(あたりまえですが)

もっとも,
> x <- rnorm(10000)
> dagostino.pearson.test(x)

D'Agostino-Pearson normality test

K2 is distributed as Chi-squared with df=2

data: x
K2 = NA, p-value = NA
alternative hypothesis: distribution is not normal

Warning message:
整数の桁あふれにより NA が生成されました in: n * n * n

というのはちょと,情けない。

サンプルサイズの影響については,ひのさんのいうとおり。

     [このページのトップへ]


9549. Re^5: D'Agostino-Pearson検定について ひの  2006/03/02 (木) 23:43

> ヒストグラム,歪度,尖度を見てかなり正規分布に近いものもあったのですが,K^2の値が非常に大きくなり,p値は殆ど0でした。一番良かった結果で,P=0.0002 程度でした。正規性の検定は,サンプル数が多いほど容易になると思っていたのですが・・・ちょっと根本的に理解できていないところがキツいです。もうちょっと勉強してみます。

どんな検定でもサンプルサイズが大きければ「有意差あり」と判定されやすくなります。




     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 037 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る