偏相関係数は、二つの変数の相関から、両方の変数に影響する第3の変数の変化の影響を除いたものを表す指標です。
このノートでは、偏相関係数をExploratoryで計算する方法を説明します。
偏相関係数を計算するには、前もって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:サービスの品質`))