partialcorr
線形または順位偏相関係数
構文
説明
は、1 つ以上の名前と値のペア引数で指定された追加オプションと前の構文の入力引数のいずれかを使用して、標本線形偏相関係数を返します。たとえば、ピアソンまたはスピアマン偏相関を使用するかどうかを指定したり、欠損値の処理方法を指定したりできます。rho
= partialcorr(___,Name,Value
)
例
偏相関係数の計算
入力行列の変数間の偏相関係数を計算します。
標本データを読み込みます。hospital.Sex
の性別を数値グループ識別子に変換します。
load hospital;
hospital.SexID = grp2idx(hospital.Sex);
標本データを含む入力行列を作成します。
x = [hospital.SexID hospital.Age hospital.Smoker hospital.Weight];
x
の各行には、患者の性別、年齢、喫煙状態、体重が含まれています。
x
の変数ペア間の偏相関係数を計算しながら、x
の残りの変数の影響を抑制します。
rho = partialcorr(x)
rho = 4×4
1.0000 -0.0105 0.0273 0.9421
-0.0105 1.0000 0.0419 0.0369
0.0273 0.0419 1.0000 0.0451
0.9421 0.0369 0.0451 1.0000
行列 rho
は、x
の性別と体重以外のすべての変数の抑制後、性別と体重の間の相関関係が 0.9421 であることを示しています。 値を 2 番目の出力として取得し、この値を調べて、これらの相関が統計的に有意であるかどうかを確認できます。
表示をわかりやすくするために、適切な変数と行ラベルをもつテーブルを作成します。
rho = array2table(rho, ... 'VariableNames',{'SexID','Age','Smoker','Weight'},... 'RowNames',{'SexID','Age','Smoker','Weight'}); disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
SexID Age Smoker Weight ________ ________ ________ ________ SexID 1 -0.01052 0.027324 0.9421 Age -0.01052 1 0.041945 0.036873 Smoker 0.027324 0.041945 1 0.045106 Weight 0.9421 0.036873 0.045106 1
制御対象の変数を含む偏相関の検定
2 番目の変数セットの影響を抑制しながら、入力行列の変数ペア間の偏相関を検定します。
標本データを読み込みます。hospital.Sex
の性別を数値グループ識別子に変換します。
load hospital;
hospital.SexID = grp2idx(hospital.Sex);
標本データを含む入力行列を 2 つ作成します。
x = [hospital.Age hospital.BloodPressure]; z = [hospital.SexID hospital.Smoker hospital.Weight];
x
行列には、偏相関を検定する変数が含まれています。z
行列には、制御対象の変数が含まれています。BloodPressure
の測定値は 2 つの列に格納されており、1 列目には上限 (収縮期) の数値が、2 列目には下限 (拡張期) の数値が格納されています。partialcorr
は各列を別々の変数として扱います。
x
の変数ペア間の偏相関を検定しながら、z
の変数の影響を抑制します。相関係数を計算します。
[rho,pval] = partialcorr(x,z)
rho = 3×3
1.0000 0.1300 0.0462
0.1300 1.0000 0.0012
0.0462 0.0012 1.0000
pval = 3×3
0 0.2044 0.6532
0.2044 0 0.9903
0.6532 0.9903 0
pval
の大きな値は、性別、喫煙状態、体重の抑制後、年齢といずれかの血圧測定値の間に有意な相関がないことを示しています。
表示をわかりやすくするために、適切な変数と行ラベルをもつテーブルを作成します。
rho = array2table(rho, ... 'VariableNames',{'Age','BPTop','BPBottom'},... 'RowNames',{'Age','BPTop','BPBottom'}); pval = array2table(pval, ... 'VariableNames',{'Age','BPTop','BPBottom'},... 'RowNames',{'Age','BPTop','BPBottom'}); disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
Age BPTop BPBottom ________ _________ _________ Age 1 0.13 0.046202 BPTop 0.13 1 0.0012475 BPBottom 0.046202 0.0012475 1
disp('p-values')
p-values
disp(pval)
Age BPTop BPBottom _______ _______ ________ Age 0 0.20438 0.65316 BPTop 0.20438 0 0.99032 BPBottom 0.65316 0.99032 0
ペアの偏相関係数の検定
x
および y
入力行列の変数ペア間の偏相関を検定しながら、3 番目の変数セットの影響を抑制します。
標本データを読み込みます。hospital.Sex
の性別を数値グループ識別子に変換します。
load hospital;
hospital.SexID = grp2idx(hospital.Sex);
標本データを含む入力行列を 3 つ作成します。
x = [hospital.BloodPressure]; y = [hospital.Weight hospital.Age]; z = [hospital.SexID hospital.Smoker];
partialcorr
は、z
の変数 (性別および喫煙状態) を抑制しつつ、x
の変数ペア (収縮期血圧および拡張期血圧の測定値) 間の偏相関と y
の変数ペア (体重および年齢) 間の偏相関を検定できます。BloodPressure
の測定値は 2 つの列に格納されており、1 列目には上限 (収縮期) の数値が、2 列目には下限 (拡張期) の数値が格納されています。partialcorr
は各列を別々の変数として扱います。
x
および y
の変数ペア間の偏相関を検定しながら、z
の変数の影響を抑制します。相関係数を計算します。
[rho,pval] = partialcorr(x,y,z)
rho = 2×2
-0.0257 0.1289
0.0292 0.0472
pval = 2×2
0.8018 0.2058
0.7756 0.6442
pval
の結果は、性別と喫煙状態の抑制後、患者のいずれかの血圧測定値とその患者の体重または年齢の間に有意な相関がないことを示しています。
表示をわかりやすくするために、適切な変数と行ラベルをもつテーブルを作成します。
rho = array2table(rho, ... 'RowNames',{'BPTop','BPBottom'},... 'VariableNames',{'Weight','Age'}); pval = array2table(pval, ... 'RowNames',{'BPTop','BPBottom'},... 'VariableNames',{'Weight','Age'}); disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
Weight Age ________ ________ BPTop -0.02568 0.12893 BPBottom 0.029168 0.047226
disp('p-values')
p-values
disp(pval)
Weight Age _______ _______ BPTop 0.80182 0.2058 BPBottom 0.77556 0.64424
片側偏相関検定
変数のペアに相関がないという仮説を、相関が 0 より大きいという対立仮説に対して検定します。
標本データを読み込みます。hospital.Sex
の性別を数値グループ識別子に変換します。
load hospital;
hospital.SexID = grp2idx(hospital.Sex);
標本データを含む入力行列を 3 つ作成します。
x = [hospital.BloodPressure]; y = [hospital.Weight hospital.Age]; z = [hospital.SexID hospital.Smoker];
partialcorr
は、z
の変数 (性別および喫煙状態) を抑制しつつ、x
の変数ペア (収縮期血圧および拡張期血圧の測定値) 間の偏相関と y
の変数ペア (体重および年齢) 間の偏相関を検定できます。BloodPressure
の測定値は 2 つの列に格納されており、1 列目には上限 (収縮期) の数値が、2 列目には下限 (拡張期) の数値が格納されています。partialcorr
は各列を別々の変数として扱います。
右側検定を使用して相関係数を計算します。
[rho,pval] = partialcorr(x,y,z,'Tail','right')
rho = 2×2
-0.0257 0.1289
0.0292 0.0472
pval = 2×2
0.5991 0.1029
0.3878 0.3221
pval
の結果から、相関が 0 より大きいという対立仮説の場合、partialcorr
は z
の変数の抑制後、x
および y
の変数の間に非ゼロ相関があるという帰無仮説を棄却しないことがわかります。
表示をわかりやすくするために、適切な変数と行ラベルをもつテーブルを作成します。
rho = array2table(rho, ... 'RowNames',{'BPTop','BPBottom'},... 'VariableNames',{'Weight','Age'}); pval = array2table(pval, ... 'RowNames',{'BPTop','BPBottom'},... 'VariableNames',{'Weight','Age'}); disp('Partial Correlation Coefficients')
Partial Correlation Coefficients
disp(rho)
Weight Age ________ ________ BPTop -0.02568 0.12893 BPBottom 0.029168 0.047226
disp('p-values')
p-values
disp(pval)
Weight Age _______ _______ BPTop 0.59909 0.1029 BPBottom 0.38778 0.32212
入力引数
x
— データ行列
行列
n 行 px 列の行列として指定するデータ行列。x
の行は観測値に対応し、列は変数に対応します。
データ型: single
| double
y
— データ行列
行列
n 行 py 列の行列として指定するデータ行列。y
の行は観測値に対応し、列は変数に対応します。
データ型: single
| double
z
— データ行列
行列
n 行 pz 列の行列として指定するデータ行列。z
の行は観測値に対応し、列は変数に対応します。
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'Type','Spearman','Rows','complete'
は、欠損値を含まない行のデータのみを使用してスピアマン偏相関を計算します。
Type
— 偏相関の種類
'Pearson'
(既定値) | 'Spearman'
計算する偏相関の種類。'Type'
と、以下のいずれかで構成されるコンマ区切りのペアとして指定します。
'Pearson' | ピアソン (線形) 偏相関を計算します。 |
'Spearman' | スピアマン (順位) 偏相関を計算します。 |
例: 'Type','Spearman'
Rows
— 計算に使用する行
'all'
(既定値) | 'complete'
| 'pairwise'
計算に使用する行。'Rows'
と以下のいずれかで構成される、コンマ区切りペアとして指定します。
'all' | 欠損値 (NaN ) に関係なく、入力の行をすべて使用します。 |
'complete' | 欠損値がない入力の行のみを使用します。 |
'pairwise' | 列 i または j の欠損値を含まない行を使用して rho(i,j) を計算します。 |
例: 'Rows','complete'
Tail
— 対立仮説
'both'
(既定値) | 'right'
| 'left'
検定対象の対立仮説。'Tail'
と、以下のいずれかで構成されるコンマ区切りのペアとして指定します。
'both' | 相関が 0 ではないという対立仮説を検定します。 |
'right' | 相関が 0 より大きいという対立仮説を検定します。 |
'left' | 相関が 0 より小さいという対立仮説を検定します。 |
例: 'Tail','right'
出力引数
rho
— 標本線形偏相関係数
行列
標本線形偏相関係数。行列として返されます。
x
行列のみを入力すると、rho
は対称の px 行 px 列の行列になります。(i,j) 番目のエントリは、x
の i 番目の列と j 番目の列の間の標本線形偏相関です。x
行列とz
行列を入力した場合、rho
は対称の px 行 px 列の行列です。(i,j) 番目のエントリは、x
の i 番目の列と j 番目の列の間にある標本線形偏相関であり、z
の変数について制御します。x
、y
およびz
行列を入力した場合、rho
は px 行 py 列の行列になります。ここで、(i,j) 番目のエントリは、x
の i 番目の列とy
の j 番目の列の間に存在する標本線形偏相関で、z
の変数について制御します。
[x,z]
の共分散行列が次のようになっているとします。
すると、z
を抑制する x
の偏相関行列は、共分散行列を正規化した Sxx – (SxzSzz–1SxzT) として形式的に定義できます。
参照
[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
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数は、スレッドベースの環境を完全にサポートします。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2006a より前に導入
参考
corr
| tiedrank
| corrcoef
| partialcorri
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)