Skip to content

統計R言語:正規分布と正規性の検定のやり方

    統計R言語

    統計の正規性とは、データが正規分布に従うかどうかを示す概念です。Rでは、基本パッケージのshapiro.test()などを使って簡単に検定を行うことができます。

    shapiro.test()を使って行うことのできるシャピロ・ウィルクテスト(Shapiro-Wilk test)は、統計学において正規分布(Normal distribution)に従うかどうかを見定めるための検定方法で、英語ではA test of normality(正規性の検定などと呼ばれます。この記事では、Rを使って正規性を検定する方法について説明していきます。

    このシリーズでは、現在イギリス教育テクノロジー研究所の博士課程でPhD取得を目指す筆者が、統計やデータ分析で使っているR言語のメモを共有しています。

    正規分布と正規性の検定

    正規性(Normality)とは何か?

    統計の正規性とは、データが正規分布(あるいはガウス分布とも呼ばれる)に従うかどうかを示す概念です。この分布には、対称性や平均と中央値の一致、特定の尖度・歪度などの特徴があります。正規性があると、多くの統計手法が有効に使える一方、データが正規分布に従わない場合も珍しくありません。そのため、統計分析を行う前に正規性の確認が重要で、検定方法を使ってデータの分布を検定することが必要になります。

    シャピロ・ウィルクテストとは何か?

    シャピロ・ウィルクテスト(Shapiro-Wilk test)は、与えらたデータの正規性を検定する手法(A test of normality)です。正規分布は統計分析において非常に重要な役割を果たすもので、多くの統計手法がデータが正規分布に従うことを前提としています。そのような統計手法を使うためには、与えられたデータが正規分布に従うかどうかを事前に検定する必要があり、シャピロ・ウィルクテストが使われるというわけです。

    この検定では、帰無仮説(null hypothesis)と対立仮説(alternative hypothesis)が以下のように設定されます。

    • 帰無仮説(H0): データは正規分布に従う。
    • 対立仮説(H1): データは正規分布に従わない。

    シャピロ・ウィルクテストでは、この帰無仮説が棄却されるかどうかを判断します。つまり、データが正規分布に従わない可能性が高い場合には帰無仮説が棄却され、データが正規分布に従う可能性が高い場合には帰無仮説が採用されます。この検定は主に小、中規模のデータセットに対して使用される正規性の検定手法の一つですが、大規模なデータセットに対しては他の手法や視覚的な検証も合わせて判断するのが一般的です。

    Rを使った正規性の検定のやり方

    基本パッケージの関数を使う

    シャピロ・ウィルクテストはRの基本パッケージに入っている以下の関数を使って簡単に行うことができます。特別なパッケージをインストールする必要はありません。この関数の括弧の中には、正規性を検定したいデータセットのベクトルを入れます。

    shapiro.test()

    ちなみにベクトルの意味がわからなからないという方はこちら↓の記事をご参照ください。

    例えば、以下のようなデータの正規性の検定を行うとします。RStudioに以下のコードを入れると、

    data = c(2, 6, 8, 9, 12, 14, 14, 11, 10, 8, 6, 4)
    shapiro.test(data)

    シャピロ・ウィルクテストの検定結果を得ることができます。

    	Shapiro-Wilk normality test
    
    data:  data
    W = 0.96752, p-value = 0.8832
    

    正規性はどう判断する?

    データや分野によってもかなり異なるようですが、一般にp値が0.05より小さい場合、与えられたデータが正規分布に従っていないと判断されます。簡単にいうと、p値が0.05より大きければ正規分布、p値が0.05より小さければ非正規分布と判断されるということになります。

    上記の例のデータの場合、p値は0.8832となっているため、正規分布に従っているデータということがわかります。実際このデータを棒グラフで表してみると以下のようになっていて、正規分布であることが視覚的にも確認できます。ものすごくシンプルな認識としては、正規分布は以下の図のように左右対称で、真ん中が高くなっているヤツですね。

    パラメトリックと非パラメトリック統計

    正規性の検定などに関するものを読んでいると、パラメトリックと非パラメトリックという言葉に出会うと思います。以下それぞれにの言葉の意味について簡単に説明しておきます。

    パラメトリック統計とは?

    パラメトリック統計は、特定の確率分布に基づく仮定を使用する統計手法のことを指します。例えば、正規分布やポアソン分布などの特定の分布を前提として統計的なモデルを構築し、データを解析する手法です。パラメトリック統計は、データが特定の分布に従う場合に効果的であり、この仮定が成り立つときには強力な結果を提供します。しかし、データが仮定に合わない場合には誤った結果を導く可能性があります。

    非パラメトリック統計とは?

    非パラメトリック統計は、特定の確率分布に関する仮定を必要とせず、データの分布について一般的な仮定を行わずに統計解析を行う手法です。非パラメトリック統計は、データが正規分布などの特定の分布に従わない場合や、データの分布が不明確な場合に適しています。ただし、パラメトリック手法ほど効率的でないこともあります。

    パラメトリックと非パラメトリック統計手法対応表

    シャピロ・ウィルクテストを行うと、データ分析にパラメトリック統計手法を使うべきか、非パラメトリック統計手法を使うべきかがわかります。以下の対応表を参考にしてみてください。

    比較するグループの数パラメトリック非パラメトリック
    Pearson’s rChi square test of independence
    One-sample t-testSign test
    3+ANOVAKruskal–Wallis H
    3+MANOVAANOSIM
    Independent t-testWilcoxon Rank-Sum test
    Paired t-testWilcoxon Signed-rank test
    Spearman’s rPearson’s r

    どちらを使ってもさほど変わらないということも多いようですが、全く異なる分析結果が得られることも稀にあるようなので、ジャーナル出版などを目指している方は慎重にシャピロ・ウィルクテストを使って検定を行った上で使うべきテストを判断してください。

    正規分布と非正規分布のデータを比べるには?

    筆者が分析していたデータで実際にあったのが、比べたい一つのデータセットは正規分布に従っているのですが、もう一つは従っていないというものでした。その時はパラメトリック、非パラメトリックどちらの統計手法を使うべきなのでしょう?

    調べてみると、こういうデータに出会うことはよくあることらしく、Research Gateなどでも議論がなされていましたが、基本的に非パラメトリック統計手法を使うというのが一般的な見解でした。