偏相関係数を求める方法

偏相関係数は、二つの変数の相関から、両方の変数に影響する第3の変数の変化の影響を除いたものを表す指標です。

このノートでは、偏相関係数をExploratoryで計算する方法を説明します。

ppcor Rパッケージをインストール

偏相関係数を計算するには、前もってppcor Rパッケージをインストールします。 Rパッケージのインストール方法はこちらの説明をご覧下さい。

偏相関係数を計算する

以下の様な赤ちゃんの妊娠期間、出生体重、両親の年齢のデータがあるとします。

このとき、father_ageとgestation_weeksの相関からmother_ageの影響を除いた偏相関係数を計算します。

カスタムRステップを作成するために、ダイアログを開きます。

カスタムRコマンドダイアログに、以下の様なコマンドを入力します。

do(ppcor::pcor.test(.$father_age, .$gestation_weeks, .$mother_age))

doは前のステップのデータフレームを自由に加工して、次のステップのデータフレームにするための関数です。 この中で呼ばれている、ppcor::pcor.testが偏相関係数を計算する関数です。 ppcor::pcor.testの1つ目と2つ目の引数に相関を見たい変数を入れて、3つ目の引数に、影響を除きたい変数を入れます。

doの中では前のステップのデータフレームを.で表現できます。$は、データフレームから列を取り出す演算子です。これらを使って、.$father_age とすると、前のステップのfather_age列という意味になります。この書式を使って、father_age列とgestation_weeks列の相関からmother_age列の影響を除いたもの、という内容を表現しています。

もうひとつの書式として、ppcor::pcor.testの3つ目の引数をデータフレームで指定することも出来ます。以下は、同じ内容ですが、先ほどのコマンドでの.$mother_ageが、select(., mother_age)に置き換わっています。

do(ppcor::pcor.test(.$father_age, .$gestation_weeks, select(., mother_age)))

select(., mother_age)は、元のデータフレームである.の、mother_age列のみを残したデータフレームです。

どちらの書式のコマンドを実行しても、estimate列に、以下の様に偏相関係数が出力されます。

複数の列の影響を除いた偏相関係数の計算

第3の変数の影響を除くだけでなく、第4、第5と複数の変数の影響を除いた偏相関係数を計算することも出来ます。

先ほどの例で、影響を除きたい変数をデータフレームで表した書式で、データフレームの列を複数残すことによって、影響を除きたい変数を複数指定することができます。

mother_ageに加えて、weight_poundsの影響も除いた偏相関係数が見たい場合は、カスタムコマンドは以下の様になります。

do(ppcor::pcor.test(.$father_age, .$gestation_weeks, select(., mother_age, weight_pounds)))

先ほどはmother_age列のみをselectで残していましたが、今回はweight_pounds列も残したデータフレームが3つめの引数として指定してあります。

こちらを実行すると、以下の様に結果が返ってきます。

日本語と英数字が混ざった列の指定方法

例えば、以下のように「Q1:サービスの使いやすさ」といった英数字と日本語が混ざった列があり、これらを使って偏相関係数を求めたいとします。

その場合、下記のように列を指定する際にバックティック(`)で囲う必要があります。列だと認識されている時には、列名で指定したテキストがオレンジ色で表示されるようになります。

do(ppcor::pcor.test(.$`Q1:サービスの使いやすさ`, .$`Q2:サービスの機能の豊富さ`, .$`Q3:サービスの品質`))
Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio