Main Content

partialcorri

内部変数向けに調整された偏相関係数

説明

rho = partialcorri(y,x) は、y および x の変数ペア間の標本線形偏相関係数を返し、x の残りの変数を調整します。

rho = partialcorri(y,x,z) は、まず z の変数に対して xy の両方の抑制の後、y および x の変数ペア間の標本線形偏相関係数を返し、x の残りの変数を調整します。

rho = partialcorri(___,Name,Value) は、1 つ以上の名前と値のペア引数で指定された追加オプションと前の構文の入力引数のいずれかを使用して、標本線形偏相関係数を返します。たとえば、ピアソンまたはスピアマン偏相関を使用するかどうかを指定したり、欠損値の処理方法を指定したりできます。

[rho,pval] = partialcorri(___) は、非ゼロの偏相関が存在するという片側または両側の代替仮説に対して、偏相関が存在しないという仮説を検証するため、p 値の pval 行列も返します。

すべて折りたたむ

x の残りの変数の影響を抑制しながら、x および y の入力行列の変数ペアごとに偏相関係数を計算します。

標本データを読み込みます。

load carsmall;

このデータには、1970 年、1976 年および 1982 年に製造された車の測定値が含まれています。MPG および Acceleration が性能尺度、DisplacementHorsepower および Weight が設計変数として含まれています。Acceleration は時速 0 マイルから時速 60 マイルまで加速するために必要な時間であり、Acceleration の値が大きい自動車は加速度が低いことになります。

入力行列を定義します。y 行列には性能測定が、x 行列には設計変数がそれぞれ含まれています。

y = [MPG,Acceleration];
x = [Displacement,Horsepower,Weight];

相関係数を計算します。欠損値のない行のみを計算に含めます。

rho = partialcorri(y,x,'Rows','complete')
rho = 2×3

   -0.0537   -0.1520   -0.4856
   -0.3994   -0.4008    0.4912

結果は、たとえば、排気量と馬力の影響を抑制した後に、重量と加速度の間の相関関係が 0.4912 であることを示しています。p 値を 2 番目の出力として取得し、この値を調べて、これらの相関が統計的に有意であるかどうかを確認できます。

表示をわかりやすくするために、適切な変数と行ラベルをもつテーブルを作成します。

rho = array2table(rho, ...
   'VariableNames',{'Displacement','Horsepower','Weight'}, ...
   'RowNames',{'MPG','Acceleration'});

disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
                    Displacement    Horsepower     Weight 
                    ____________    __________    ________

    MPG              -0.053684       -0.15199     -0.48563
    Acceleration      -0.39941       -0.40075      0.49123

x の残りの変数と行列 z の追加の変数の影響を抑制しながら、x および y 入力行列の変数ペア間の偏相関を検定します。

標本データを読み込みます。

load carsmall;

このデータには、1970 年、1976 年および 1982 年に製造された車の測定値が含まれています。MPG および Acceleration が性能尺度、DisplacementHorsepower および Weight が設計変数として含まれています。Acceleration は時速 0 マイルから時速 60 マイルまで加速するために必要な時間であり、Acceleration の値が大きい自動車は加速度が低いことになります。

新しい変数 Headwind を作成し、平均的な向かい風の概念を表すデータを、性能測定ルートに沿って無作為に生成します。

rng('default');  % For reproducibility
Headwind = (10:-0.2:-9.8)' + 5*randn(100,1);

向かい風は性能測定に影響を与える可能性があるため、残りの変数の間で偏相関を検定する場合は、その効果を制御します。

入力行列を定義します。y 行列には性能測定が、x 行列には設計変数がそれぞれ含まれています。z 行列には、偏相関を計算する際に制御する追加の変数 (向かい風など) が含まれています。

y = [MPG,Acceleration];
x = [Displacement,Horsepower,Weight];
z = Headwind;

偏相関係数を計算します。欠損値のない行のみを計算に含めます。

[rho,pval] = partialcorri(y,x,z,'Rows','complete')
rho = 2×3

    0.0572   -0.1055   -0.5736
   -0.3845   -0.3966    0.4674

pval = 2×3

    0.5923    0.3221    0.0000
    0.0002    0.0001    0.0000

たとえば、pval で返された 0.001 という小さい p 値は、排気量、重量および向かい風を抑制すると馬力と加速度の間に有意な負の相関関係があることを示しています。

表示をわかりやすくするために、適切な変数と行ラベルをもつテーブルを作成します。

rho = array2table(rho, ...
   'VariableNames',{'Displacement','Horsepower','Weight'}, ...
   'RowNames',{'MPG','Acceleration'});
 
pval = array2table(pval, ...
   'VariableNames',{'Displacement','Horsepower','Weight'}, ...
   'RowNames',{'MPG','Acceleration'});

disp('Partial Correlation Coefficients, Accounting for Headwind')
Partial Correlation Coefficients, Accounting for Headwind
disp(rho)
                    Displacement    Horsepower     Weight 
                    ____________    __________    ________

    MPG               0.057197       -0.10555     -0.57358
    Acceleration      -0.38452       -0.39658       0.4674
disp('p-values, Accounting for Headwind')
p-values, Accounting for Headwind
disp(pval)
                    Displacement    Horsepower      Weight  
                    ____________    __________    __________

    MPG                 0.59233        0.32212    3.4401e-09
    Acceleration     0.00018272     0.00010902    3.4091e-06

入力引数

すべて折りたたむ

n 行 px 列の行列として指定するデータ行列。x の行は観測値に対応し、列は変数に対応します。

データ型: single | double

n 行 py 列の行列として指定するデータ行列。y の行は観測値に対応し、列は変数に対応します。

データ型: single | double

n 行 pz 列の行列として指定するデータ行列。z の行は観測値に対応し、列は変数に対応します。

データ型: single | double

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'Type','Spearman','Rows','complete' は、欠損値を含まない行のデータのみを使用してスピアマン偏相関を計算します。

計算する偏相関の種類。'Type' と、'Pearson' または 'Spearman' のいずれかで構成されるコンマ区切りのペアとして指定します。Pearson はピアソン (線形) 偏相関を計算します。Spearman はスピアマン (順位) 偏相関を計算します。

例: 'Type','Spearman'

計算に使用する行。'Rows' と以下のいずれかで構成される、コンマ区切りペアとして指定します。

'all'欠けている (NaN) 値にかかわらず、すべての行を使用します。
'complete'欠損値を含まない行のみを使用します。
'pairwise'y の各列に対応する偏相関係数と p 値を計算する際には、それらの列で使用できる値をすべて使用します。y の各列について、x (および指定した場合は z) の欠損値に対応する行が削除されます。ただし、残りの行が y に対応する列で有効な値をもつ場合、y の他の列に欠損値がある場合にも使用されます。

例: 'Rows','complete'

検定対象の対立仮説。'Tail' と、以下のいずれかで構成されるコンマ区切りのペアとして指定します。

'both'相関が 0 ではないという対立仮説を検定します。
'right'相関が 0 より大きいという対立仮説を検定します。
'left'相関が 0 より小さいという対立仮説を検定します。

例: 'Tail','right'

出力引数

すべて折りたたむ

標本線形偏相関係数。py 行 px 列の行列として返されます。

  • x および y 行列を入力した場合、(i,j) 番目のエントリは、y の i 番目の列と x の j 番目の列の間にある標本線形偏相関であり、x の j 以外のすべての列に対して制御されます。

  • xy および z 行列を入力した場合、(i,j) 番目のエントリは、y の i 番目の列と x の j 番目の列の間にある標本線形偏相関です。ここで、最初に z の変数について xy の両方が抑制された後、x の j 以外のすべての列が調整されます。

行列として返される p 値。pval の各要素は rho の対応する要素の p 値です。pval(i,j) が小さな値の場合、対応する偏相関 rho(i,j) は 0 とは統計的に有意差があります。

partialcorri は、相関の変換に対するスチューデントの t 分布を使用して、線形および順位偏相関係数の p 値を計算します。これは、xz が正規の場合は線形偏相関に正確に対応しますが、それ以外の場合は大きな標本の近似になります。

参照

[1] Stuart, Alan, K. Ord, and S. Arnold. Kendall's Advanced Theory of Statistics. 6th edition, Volume 2A, Chapter 28, Wiley, 2004.

[2] Fisher, Ronald A. "The Distribution of the Partial Correlation Coefficient." Metron 3 (1924): 329-332

拡張機能

バージョン履歴

R2013b で導入