3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SPSS Modelerで偏相関係数を計算してみる #1

3
Last updated at Posted at 2026-01-22

1. はじめに

みなさん、こんにちは。2026年1つ目の記事になります。今回はユーザー様よりご質問のあった偏相関係数について、SPSS Modelerで計算してみようと思います。

SPSS Modelerの記述統計ノードなどの標準機能では偏相関係数の算出ができないので、各種ノードを組み合わせて計算してあげる必要があります。

今回使用したストリームはGit Hubにアップロードしています。ご自由にダウンロードしてください。

データについては、以下のサイトよりダウンロードをお願いします。

2. 偏相関係数とは

偏相関係数(Partial Correlation Coefficient)は簡単にいうと「第3の変数の影響を取り除いた、純粋な2変数間の相関関係」のことです。

通常の相関係数では、見かけ上の相関(擬似相関)にだまされてしまうことがありますが、偏相関係数を使うことで「本当に関係があるのか?」をより正確に見極めることができます。

例えば、「アイスクリームの売上」と「水難事故の件数」のデータを取ると、強い正の相関が出ることがあります。
しかし、「アイスを食べると事故に遭う」わけではありませんよね。

これには「気温」という第3の変数が隠れています。
・気温が上がる → アイスが売れる
・気温が上がる → 海に行く人が増え、事故も増える

この「気温」の影響を含んだまま計算するのが通常の「相関係数」です。 一方、気温の影響を統計的に取り除き、純粋に「アイス」と「事故」だけの関係を見たものが「偏相関係数」となります。

3. 偏相関係数の求め方

3つの変数 $x, y, z$ があるとき、$z$ の影響を除いた $x$ と $y$ の偏相関係数 $r_{xy \cdot z}$ は、以下の手順で考えます。
① $x$ を $z$ で回帰分析し、その残差($z$ で説明できない $x$ の変動)を計算する。
② $y$ を $z$ で回帰分析し、その残差($z$ で説明できない $y$ の変動)を計算する。
③ その「残差同士」の相関係数を計算する。
つまり、「他の要因($z$)では説明しきれなかった部分」だけで相関を見ているのです。

先ほどの「アイスクリームの売上」と「水難事故の件数」の例で説明すると

① 「アイスクリームの売上」を「気温」で回帰分析し、その残差1を計算する。
② 「水難事故の件数」を「気温」で回帰分析し、その残差2を計算する。
③ 「残差1」と「残差2」の相関係数を計算する。

となります。

4. SPSS Modelerの回帰分析ノードを使って偏相関係数を計算してみる。

ここからはSPSS Modelerで偏相関係数を計算していきます。

4.1 使用するデータ

いつもの UC Irvine Machine Learning Repository のデータを利用させていただきます。

台湾の新北市新店区(Sindian Dist.)から収集された、不動産鑑定に関する市場の履歴データセットです。

このデータで不動産価格と各変数の偏相関係数を計算してみます。

データの内容

データセットのカラムの内容は以下の通りです。

X1 transaction date : 取引日
X2 house age : 築年数
X3 distance to the nearest MRT station : 最寄りのMRT駅(地下鉄)までの距離
X4 number of convenience stores : 徒歩圏内のコンビニの数
X5 latitude : 緯度
X6 longitude : 経度
Y house price of unit area : 単位面積あたりの住宅価格

「Y house price of unit area」を「X2 house age」「X3 distance to the nearest MRT station」「X4 number of convenience stores」の3つを説明変数として利用し予測します。

どの変数も住宅価格と相関が高そうですね。
今回は、「X3 distance to the nearest MRT station」の住宅価格との偏相関係数を計算してみましょう。

4.2 実際に偏相関係数を計算してみる。

さて、SPSS Modeler で偏相関係数を計算してみましょう。

以下が今回作成するストリームです。

image.png

4.2.1 まずは単相関件数を確認

偏相関係数を計算する前に住宅価格とそれぞれの変数の単相関係数を確認しましょう。

image.png

①. 不要フィールドの除外

今回使用するフィールドと結合条件で使いたい「No」以外はフィルターノードで除外しておきます。
「X1 Transacition date」「X5 latitude」「X6 longtude」の3つを除外します。

image.png

②. データ型ノードでインスタンス化

単相関係数の計算には必要ないですが、後ほど線形回帰モデルを作成するため、ここでインスタンス化しておきます。
但し、ロールは全て「入力」のままとします。
線形回帰モデルでは、目的変数を手動で設定するので、特に変更の必要がないため。

image.png

②. 記述統計ノードで単相関係数を計算

検証には、「Y house price of unit area」を設定します。
相関係数には、「X2 house age」「X3 distance to the nearest MRT station」「X4 number of convenience stores」の3つを設定します。
その他の設定は特に変更せず実行しましょう。

image.png

③. 単相関係数の確認

以下が単相関係数の計算結果になります。

image.png

「Y house price of unit area」との単相関係数はそれぞれ

「X2 house age」: -0.211
「X3 distance to the nearest MRT station」 : -0.674
「X4 number of convenience stores」 : 0.571

となっています。
築年数と駅からの距離はマイナスの相関ですね。確かに、築根数が大きい場合や、駅からの距離が遠い場合は価格が下がりそうですよね。

※. 相関係数の横に出力されている「強い」など値は、デフォルト設定ですと、相関の検定結果になります。強いは有意確率5%以下の場合に出力されます。

4.2.2 偏相関係数を計算

さて、偏相関係数を計算して単相関係数と比較をしてみましょう。

image.png

今回は、「Y house price of unit area」と「X3 distance to the nearest MRT station」の偏相関係数を計算してみようと思います。

そのため、「X2 house age」と「X4 number of convenience stores」の影響を取り除き相関を計算します。

計算の順番は以下の通りです。

①. 「Y house price of unit area」を「X2 house age」と「X4 number of convenience stores」で回帰分析して「残差1」を計算する。
 ⇒ 住宅価格 Y についてX2とX4で説明しきれない部分(残差1)を抜き出す。

②. 「X3 distance to the nearest MRT station」を「X2 house age」と「X4 number of convenience stores」で回帰分析して「残差2」を計算する。

 ⇒ 駅からの距離 X3 についてX2とX4で説明しきれない部分(残差2)を抜き出す。

③. 残差1と残差2の相関係数を計算する。
 ⇒ 純粋な「住宅価格 Y」と「駅からの距離 X3」の関係が計算される。

①. 「Y house price of unit area」を「X2 house age」と「X4 number of convenience stores」で回帰分析して「残差1」を計算

まずは、「住宅価格 Y」 を 「築年数 X2」と「コンビニの数 X4」で回帰分析して残差を計算します。

線形回帰ノードで以下のように、
対象 : 「Y house price of unit area」
入力 : 「X2 house age」と「X4 number of convenience stores」
を設定します。

その他の設定は変更せず実行してください。

image.png

線形回帰モデルの結果からフィールド作成ノードで「残差1」を計算します。
単純に予測値から実測値を引き算しています。

image.png

②. 「X3 distance to the nearest MRT station」を「X2 house age」と「X4 number of convenience stores」で回帰分析して「残差2」を計算

つづいて、「駅からの距離 X3」 を 「築年数 X2」と「コンビニの数 X4」で回帰分析して残差を計算します。

線形回帰ノードで以下のように、
対象 : 「X3 distance to the nearest MRT station」
入力 : 「X2 house age」と「X4 number of convenience stores」
を設定します。

その他の設定は変更せず実行してください。

image.png

線形回帰モデルの結果からフィールド作成ノードで「残差2」を計算します。

image.png

③. 残差1と残差2の相関係数を計算する。

最後に残差同士の相関を計算して、純粋な「住宅価格 Y」と「駅からの距離 X3」の関係を計算します。

No.をキーにしてレコードを結合します。

image.png

余計なフィールドは削除しておきます。

image.png

最後に記述統計ノードで相関係数を計算します。

image.png

実行結果は以下の通りです。

image.png

「Y house price of unit area」と「X3 distance to the nearest MRT station」の偏相関係数は -0.506 となりました。

単相関係数は、-0.674でしたので、住宅価格との単相関には、築年数と駅からの距離の影響もあったことがわかりますね。

5. 最後に

今回は、SPSS Modelerの標準機能で偏相関係数を計算してみました。次回は、おなじみの拡張ノードを使ってPythonで偏相関係数を計算してみます。

参考

SPSS Modeler ノードリファレンス目次

SPSS Modeler 逆引きストリーム集

SPSS funさん記事集

SPSS連載ブログバックナンバー

SPSSヒモトクブログなどは以下のTechXchangeのコミュニティに統合されました。
ご興味がある方は、ぜひIBM IDを登録して参加してみてください!!!お待ちしています。

IBM TechXchange Data Science Japan

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?