IBM Support

SPSS Statistics 22.0/25.0における傾向スコアマッチングの実行方法

Question & Answer


Question

SPSS Statistics 22.0/25.0における傾向スコアマッチング(Propensity Score Matching)の実行方法について

Answer

SPSS Statistics 22.0 から傾向スコアマッチング(Propensity Score Matching)をGUIで実行できるようになりました。
* 傾向スコアマッチングの実行にはオプションのRegression(有償)が必要です

■ 傾向スコアマッチング(Propensity Score Matching)とは
傾向スコアマッチング(Propensity Score Matching)は、ロジスティック回帰分析で各ケースに予測確率を算出し、その値が近いもの同士でペアを形成して、ペアごとにデータを二群(治療群・コントロール群)に分けるデータ加工をする、医薬分野発祥の手法です。

ID身長群分け1群分け2
1
184
AA
2
178
AB
3
177
AB
4
177
BA
5
175
A
A
6
172
B
B
7
172
AB
8
170
BA
9
168
BA
10
166
BB

ランダムサンプリングの結果、「群分け1」のように、たまたまA群とB群の群分けが偏る場合が考えられます。

たとえ比較変数がたくさんあったとしても、「群分け2」のようにA群とB群を均等に分けることで、両群を比較する分析の公平性を説明出来ます。

■二項ロジスティック回帰分析
複数の変数をまとめてあげて評価する指標に、ロジスティック回帰分析の確率を利用します。


[ロジスティック回帰]ダイアログで[保存]ボタンをクリックし、[確率]にチェックをして実行した場合に追加される変数の値がその値となります。

ロジスティック回帰は、各ケースで従属変数が「あり」になる確率を各ケースの各独立変数から算出し、確率50%以上を「あり」、50%未満を「なし」と予測します。この確率が近いもの同士を近しいケースとみなしてペアを組み、このペアを分けることで、公平なふたつのデータとしております。

一般的ではないですが、「あり」になる確率をロジスティック回帰分析ではなく判別分析などの手法で出すことなども考えられます。これをSPSS Statisticsで実施する場合は手動で行う必要があります。


■必要なソフトウェア
Base とオプションのRegression(有償)が必要です。

Essentials for Python
拡張コマンドを利用するため、Pythonやプラグインなどのインストールが必要ですが、
SPSS Statistics 本体のインストール時にこれらをインストールすることが出来ます。



■対応するデータ書式
二項ロジスティック回帰分析が出来る、従属変数と独立変数を持った形のデータでひとまとめにしてください。

ケースを特定する一意のID変数が必要になります。データ中に存在しない場合は、メニューの[変換]→[変数の計算]機能で「$Casenum」を実行した変数を用意してください。



■ダイアログの設定
SPSS Statistics 22.0以降では、傾向スコアのマッチングをダイアログの操作だけで実行することが出来ます。

SPSS Statisticsのメニュー[データ]→[傾向スコアによる一致]をクリックします。

[傾向スコアによる一致]ダイアログが表示されます。このダイアログでスコアの作成とペアの作成を行います。実行によってRegressionオプションによる「ロジスティック回帰分析」と、拡張コマンドFUZZYによる「このケースに近いケースのID番号を入力した変数の作成」を行います。



[傾向スコアによる一致]ダイアログの各項目で、以下の設定を行います(すべて必須入力になります)。

グループインジケーター:分析結果を導き出す対象である従属変数を設定して、ロジスティック回帰に使用します。
予測変数:結果を説明する複数の独立変数を設定して、ロジスティック回帰に使用します。
傾向変数の名前:ロジスティック回帰分析により、ロジスティック回帰分析の[確率]を返した新変数を、データセットに作成します。その新変数名をキーボードで入力します。
適合の許容度:半角数字でマッチング許容度を指定します(小数使用可能)。値「0」が完全一致のみ許可で、値「1」は誤差無制限でペアを作成します。間の数値は、数値の分だけ傾向変数の確率の誤差を許容します。誤差が小さいとあまりペアが成立せず、誤差が大きいほどペアが成立するものの作成した2群のデータ間に差が生じます。
ケースID:データセットにある一意のID番号変数を設定します。
一致ID変数名:このケースとペアとなるID番号を返した新変数の名前を、キーボードで入力します。
出力データ・セット名:実行により新たなデータセットを作成いたします。このデータセット名をキーボードで入力します。


[オプション]ダイアログの各項目で、以下の設定を行います(任意)。

適格なケースの数の変数:マッチングによって分類された群を「1」か「システム欠損値」で分別します。
置換を行わない:再実行をした際も同じ結果を返します。
置換を行う:再実行をした際にペア設定をやり直すことで、異なる結果を返します。
完全一致を優先:完全一致でペアを組んでから、その他のペアを組むことで、完全一致を優先します。
実行パフォーマンスを最大化:メモリー使用を優先してプログラムを実行します。
一致の抽出時にケース順序をランダム化:許容度の範囲内でランダムにペアを組みます。チェックしない場合は許容度の範囲内で登場順にペアを組みます。
乱数シード:乱数シードを固定することで同じ結果を返します(FUZZYの乱数を使用しますので、SPSS Statisticsと設定が異なります)。

■出力
実行いたしますと、Regressionによる[ロジスティック回帰]と、FUZZYによる[ケースコントロールの一致]の結果を出力します。この結果を踏まえてペアを組ませます。


新たに[傾向スコアによる一致]ダイアログの[出力データ・セット名]で指定したデータセット名のデータセットが作成されます。こちらの結果が[傾向スコアによる一致]ダイアログの設定を満たしたデータになり、[適合の許容度]による設定などを踏まえたこのケースの一致IDを返しております。[ケースID]の値と[一致ID]の値は同じIDを採用しておりますが、ケースの並び順は変わっておりますので、ご注意ください。

データはペアの一方が並んだあとで、ペアのもう一方が並ぶという並び替えがされております。変数「一致ID」が「1.00」のケース以降でデータを分ければ、傾向スコアで分けたデータになりますので、データの切り貼りで分割して、それぞれを目的の手法で分析して、比較してください。

[{"Product":{"code":"SSLVMB","label":"IBM SPSS Statistics"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Regression","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"22.0;25.0","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg21693921