未分類

【R言語】データが正規分布なのか検定する方法

この記事は約3分で読めます。

 

今日は統計フリーソフトRを使ってデータが正規分布なのかを検定する方法について説明してきます。

 

ファイナンスでよく使われる確率分布が正規分布です。ちなみになぜよく使われるのかというと計算しやすいからです。

 

www.dmjtmj-stock.com

 

・今回使うデータ

任天堂の2015年の株価収益率(対数差収益率)

 > r.ninten2015 ##対数差収益率を入れているオブジェクト
Close
2015-01-06 -4.27007876
2015-01-07 0.50697194

2015-12-29 2.96473278
2015-12-30 -1.12760839

 

これをヒストグラムにするとこうなります。

>hist(r.ninten2015,breaks=seq(-10,20,0.5)) ##ー10から20までの幅で0.5刻みでヒストグラムを描く

f:id:oruka199665:20170402214726p:plain

 

 これ全然正規分布に見えませんよね?だから任天堂の株価収益率は正規分布じゃないと結論付けたくなりますが、そうではありません。

 

次はちょっと数値を弄ったヒストグラムを書いて見ます。もちろんデータ自体は何も変わってません。

 

> hist(r.ninten2015,breaks=seq(-20,20,0.5))  ##ー20から20までの幅で0.5刻みのヒストグラムを描く

 

f:id:oruka199665:20170402215243p:plain

 

正規分布の特徴である左右対称の釣り鐘型っぽくなりました。このようにヒストグラムは見せ方によって見る人に全然違う印象を与えることができます。伝える側の意図で結構形を変えることができてしまうので、テレビなどの情報番組で分析結果を見る際にも、ヒストグラムはあまり信用せず疑ってかかったほうがいいでしょう。

 

ではどうやってデータが正規分布なのかを検証するのかというと、QQプロットという方法を使います。

 

qqプロットの作成

> qqnorm(r.ninten2015) ##qqプロットの作成
> qqline(r.ninten2015)   ##第1四分位範囲と第3四分位範囲を結んだ線を描く

f:id:oruka199665:20170402220444p:plain

グラフの大半がこの線上にあれば正規分布とすることができます。ヒストグラムもqqプロットもあくまで視覚イメージなので次は数値によって正規分布かどうかを判断する検定の一つであるシャピロ・ウィルク検定をしてみます。

 

・シャピロ・ウィルク検定

 

シャピロ・ウィルク検定は得られたデータが正規分布に従うものを調べる検定です。帰無仮説 (H0) は「標本分布が正規分布に従う」ことで、今回は有意水準5%(P値が0.05以下なら正規分布とみなすということ)にて検定すします。

 

> data<-as.data.frame(r.ninten2015) ##時系列データをデータフレームに変換
> class(data)   ##データの確認

[1] “data.frame”

※この手順は使うデータがもとからデータフレームの人は必要ないです。

 

> shapiro.test(data$Close)  ##シャピロ・ウィルク検定

Shapiro-Wilk normality test

data: data$Close
W = 0.90387, p-value = 2.301e-11

 

 

p値は2.301×10⁻¹¹なので、有意水準を満たしており2015年の任天堂の株価収益率は正規分布であるとみなすことができます。

 

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

  1. yano_317 より:

    p値は2.301×10⁻¹¹なので、有意水準を満たしており2015年の任天堂の株価収益率は正規分布であるとみなすことができます。

    とありますが、
    正規分布していないと判断できる結果ではないでしょうか?

  2. tamano より:

    “p値は2.301×10⁻¹¹なので、有意水準を満たしており2015年の任天堂の株価収益率は正規分布であるとみなすことができます。” は、まったく間違っていますので、ご注意ください。正規分布はしていません。

タイトルとURLをコピーしました