★ Rによる正規分布の検定方法 ★

9243. Rによる正規分布の検定方法 たじま 2006/01/26 (木) 20:53
├9245. Re: Rによる正規分布の検定方法 青木繁伸 2006/01/26 (木) 21:36
└9244. Re: Rによる正規分布の検定方法 青木繁伸 2006/01/26 (木) 21:20
 └9247. Re^2: Rによる正規分布の検定方法 たじま 2006/01/26 (木) 22:32
  └9252. Re^3: Rによる正規分布の検定方法 青木繁伸 2006/01/27 (金) 09:34
   └9253. Re^4: Rによる正規分布の検定方法 たじま 2006/01/27 (金) 10:46


9243. Rによる正規分布の検定方法 たじま  2006/01/26 (木) 20:53
Rを用いて,データの正規性を検定してみようと思いました。用いた手法は,
http://aoki2.si.gunma-u.ac.jp/lecture/GoodnessOfFitness/normaldist.html
で,使ったプログラムは
http://aoki2.si.gunma-u.ac.jp/R/normaldist.html
にある,normaldist()という関数です。ステップとして度数分布表を作るために,データxに対して,
dosuu.x にhist関数から作った度数分布を入れ,kagen.value に階級の下限値,kaikyuu.haba に階級幅を入れ,
測定単位は特にないので(あるデータを標準化した値です),よく分からなかったため適当な値を入れてみました。
test.normal <- function(){
x <- read.csv("C:/Documents and Settings/abc/My Documents/R/data/data.csv",header=TRUE)
dosuu.x <- hist(x[,1],plot = FALSE)$counts
kagen.value <- hist(x[,1],plot = FALSE)$breaks[1]
kaikyuu.haba <- hist(x[,1],plot = FALSE)$breaks[2] -hist(x[,1],plot = FALSE)$breaks[1]
print(normaldist(dosuu.x, min.lank, kaikyuu.haba, 0.01))
}

結果上手くプログラムは動いたのですが,histが階級幅を適当に定めているためか,P-Value は 0 か 1 しか
出てきません。データは配列形式で,1列目以外では見た目正規分布に非常に近く見えるものもあったのですが,
P-Value は極端な値を出力してきます。多分 histで階級幅をもっと細かく区切れば上手くいくと思うのですが,
histは自動的にそれを行っているようです。

実は,検索でhttp://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc017/165.htmlは読んだのですが,実力不足で
理解できず,プログラムを組むことができませんでした。

以上のような状況なのですが,上手く正規分布の検定を行う方法はあるでしょうか?

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


9245. Re: Rによる正規分布の検定方法 青木繁伸  2006/01/26 (木) 21:36
>測定単位は特にないので(あるデータを標準化した値です),よく分からなかったため適当な値を入れてみました。

そんな,むちゃな。
どうせいれるなら,0をいれてみてください。

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


9244. Re: Rによる正規分布の検定方法 青木繁伸  2006/01/26 (木) 21:20
> test.normal <- function(){
> x <- read.csv("C:/Documents and Settings/abc/My Documents/R/data/data.csv",header=TRUE)
> dosuu.x <- hist(x[,1],plot = FALSE)$counts
> kagen.value <- hist(x[,1],plot = FALSE)$breaks[1]
> kaikyuu.haba <- hist(x[,1],plot = FALSE)$breaks[2] -hist(x[,1],plot = FALSE)$breaks[1]

などと,いくらかかれても,何のたすけにもなりません。それぞれの数値がいくつかを書いてくれるとまだまし。

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


9247. Re^2: Rによる正規分布の検定方法 たじま  2006/01/26 (木) 22:32
大変失礼しました。度数,下限,幅,結果は以下の通りです。

[1] "--dosuu--"
[1] 2 2 1 4 6 9 11 38 56 114 137 108 48 12 4
[1] "--kagen--"
[1] -5
[1] "--kaikyuu.haba--"
[1] 0.5
[1] " ----- 結果 --------"
$result
n Mean Variance S.D.
552.00000000 -0.00634058 1.01716994 1.00854843

$table
mid x z p expectation
c-1 -5.25 0 -4.951333279 3.685337e-07 2.034306e-04
c-2 -4.75 2 -4.455571267 3.814971e-06 2.105864e-03
c-3 -4.25 2 -3.959809256 3.332132e-05 1.839337e-02
c-4 -3.75 1 -3.464047244 2.285517e-04 1.261605e-01
c-5 -3.25 4 -2.968285232 1.231275e-03 6.796638e-01
c-6 -2.75 6 -2.472523221 5.210818e-03 2.876372e+00
c-7 -2.25 9 -1.976761209 1.732616e-02 9.564043e+00
c-8 -1.75 11 -1.480999198 4.526908e-02 2.498853e+01
c-9 -1.25 38 -0.985237186 9.295040e-02 5.130862e+01
c-10 -0.75 56 -0.489475174 1.499989e-01 8.279938e+01
c-11 -0.25 114 0.006286837 1.902554e-01 1.050210e+02
c-12 0.25 137 0.502048849 1.896754e-01 1.047008e+02
c-13 0.75 108 0.997810860 1.486310e-01 8.204433e+01
c-14 1.25 48 1.493572872 9.154189e-02 5.053113e+01
c-15 1.75 12 1.989334883 4.431152e-02 2.445996e+01
c-16 2.25 4 2.485096895 1.685632e-02 9.304687e+00
c-17 2.75 0 2.980858907 6.475809e-03 3.574646e+00

$result2
chi-sq d.f. P value
8.647209e+01 9.000000e+00 8.286843e-15

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


9252. Re^3: Rによる正規分布の検定方法 青木繁伸  2006/01/27 (金) 09:34
> normaldist(x, 5, 0.5, 0)
を,実行すると,以下のようになります。
意図的に有効桁を多く出力しているわけですが,整理すると以下のようになります(切り取ってExcel で列を切り分けて,数値の表示を適正化)。
x と expectation が一致しているかどうか,まず目で見て評価してみましょう。

次に,適合度の検定結果ですが,
$result2
chi-sq d.f. P value
8.647209e+01 9.000000e+00 8.286843e-15
となります。
確かに,正規分布とは有意に異なるということになりますね。
確かに,左の裾が長いようです。

ところで,検定は常に,データ規模が大きくなれば,どんな小さな差でも検出できるということもあります。これくらいのデータ規模になれば,これくらいの差も検出してしまったと言うことですね。

mid x z p expectation
4.75 0 -4.951 0.0000 0.0
5.25 2 -4.456 0.0000 0.0
5.75 2 -3.960 0.0000 0.0
6.25 1 -3.464 0.0002 0.1
6.75 4 -2.968 0.0012 0.7
7.25 6 -2.473 0.0052 2.9
7.75 9 -1.977 0.0173 9.6
8.25 11 -1.481 0.0453 25.0
8.75 38 -0.985 0.0930 51.3
9.25 56 -0.489 0.1500 82.8
9.75 114 0.006 0.1903 105.0
10.25 137 0.502 0.1897 104.7
10.75 108 0.998 0.1486 82.0
11.25 48 1.494 0.0915 50.5
11.75 12 1.989 0.0443 24.5
12.25 4 2.485 0.0169 9.3
12.75 0 2.981 0.0065 3.6

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


9253. Re^4: Rによる正規分布の検定方法 たじま  2006/01/27 (金) 10:46
青木先生,どうもありがとうございました。
確かに,私の使っているデータは標本数が多いため,正規性の検定は難しそうですね。
さ て,なぜ正規分布の検定をやろうかと思ったかですが,SEMで最尤法を使っていて,果たして,データが正規分布に従っているか?を疑問に思ったためです。 歪度,尖度を計算したり,qq-plot も試してみたのですが,数値的な判断基準がなかったため検定に目をつけたという経緯がありました。
今回はありがとうございました。色々勉強になりました。

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


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