Main Content

ノンパラメトリック手法

ノンパラメトリック手法の紹介

Statistics and Machine Learning Toolbox™ は、1 因子および 2 因子 ANOVA 関数のノンパラメトリックな手法も提供します。従来型の検定と異なり、ノンパラメトリック検定は、データに関するおだやかな仮定のみを行い、データの分布が正規分布でない場合に適しています。一方、正規分布データの場合には、従来型の方法ほど強力ではありません。

ここで説明しているノンパラメトリック関数はどちらも、多重比較を行う関数 multcompare の入力として使用できる stats 構造体を返します。

クラスカル・ワリス検定

1 因子 ANOVA の実行の例では、牛乳内のバクテリア数が出荷ごとに異なるかどうかを知るため 1 因子 ANOVA を使います。1 因子は、観測が独立で、各観測が共通の分散と各列で定数となる平均をもつ正規分布に従うという仮定に成り立ちました。列平均がすべて同じではないと結論付けることができます。次の例では、ノンパラメトリックな手法を使って分析を繰り返します。

クラスカル・ワリス検定は、1 要因分散分析のノンパラメトリック バージョンです。この検定における仮定は、観測が連続分布に由来し、必ずしも正規分布でないことです。検定は、データ値自身ではなく、データ値の順位を使った分散分析に基づきます。出力は、ANOVA の表と同様の表と箱ひげ図を含みます。

この検定は、以下のように行うことができます。

load hogg

p = kruskalwallis(hogg)
p =
    0.0020

p 値が小さい場合は、クラスカル・ワリス検定結果が 1 因子 ANOVA の結果と一致することを意味します。

フリードマン検定

2 因子 ANOVA の実行では、2 因子 ANOVA を使って自動車の燃費に対する自動車のモデルと工場の影響を調べます。これらの因子が燃費に対して有意な影響をもつかどうか、およびこれらの因子間に交互作用があるかどうかを検定しました。交互作用がないと結論付けましたが、それぞれの因子は、有意な影響をもちます。次の例では、ノンパラメトリック分析が同じ結果になるかどうかを見てみます。

フリードマン検定は、2 要因分散分析のレイアウト (2 つのカテゴリ要因によってグループ化されたデータ) をもつノンパラメトリック検定です。2 要因分散分析と異なり、フリードマン検定は、2 つの要因を対称に扱わず、それらの間の交互作用を検定しません。代わりに、考えうる行の差を調整した後で、列が異なるかどうかを検定します。検定は、行因子のカテゴリーをまたぐデータの順位を使った分散分析に基づきます。出力は、ANOVA の表と同様の表を含みます。

フリードマン検定は、以下のように行うことができます。

load mileage
p = friedman(mileage,3)
p =
  7.4659e-004

従来型の分散分析では、p 値を指定して列の影響、行の影響、交互作用の影響を検定することを思い出してください。この p 値は、列の影響に対するものです。この p 値あるいは ANOVA (p < 0.0001) の p 値を使って、有意な列の影響があると結論付けます。

行の影響をテストするためには、列内の行の役割を交換するために、データを再代入しなければなりません。重複しないデータ行列 x に対して、データとタイプを簡単に転置することができます。

p = friedman(x')

繰り返しデータがある場合は、わずかに複雑になります。簡単な方法は、行列を、最初の次元が繰り返しを表し、その他 2 つの次元を交換し、2 次元の形状に復元する 3 次元配列に変換することです。

x = reshape(mileage, [3 2 3]);
x = permute(x,[1 3 2]);
x = reshape(x,[9 2])
x =
   33.3000   32.6000
   33.4000   32.5000
   32.9000   33.0000
   34.5000   33.4000
   34.8000   33.7000
   33.8000   33.9000
   37.4000   36.6000
   36.8000   37.0000
   37.6000   36.7000

friedman(x,3)
ans =
    0.0082

結果は、再び従来型の分散分析の結果と類似しています。この p 値と ANOVA (p = 0.0039) の値の両方から、有意な行の影響があると結論付けることができます。

フリードマン検定を使って行と列の要因間の交互作用の検定を行うことはできません。