欠損値データの分析 - 行動統計科学研究分野

行動計量学演習II
統計手法アラカルト2002
欠測値データの分析
行動計量学研究分野 B3
松田淑美
今日の流れ
•
•
•
•
•
欠測値について
分析方法
SPSSで分析
SASで分析
付録
2002/11/27
欠測値データの分析
2
欠測(値)
• データがない‐missing(value)、欠損
• 実験や調査では欠測はつきもの
– 無回答
– トランケーション
– 打ち切り…etc
2002/11/27
欠測値データの分析
3
欠測のメカニズム
1. Missing Completely At Random(MCAR)
–
どの値が欠測するかは完全にランダム
2. Missing At Random(MAR)
–
どの値が欠測するかはデータに依存してもよ
いが、欠測値には依存しない
3. Nonignorable Missing
–
どの値が欠測するかは欠測した値(自身に)に
依存
2002/11/27
欠測値データの分析
4
で、
分析しようとするとき...
• MCARのときは問題ない
– 始めからなかったものとして分析しても結論に
違いがない→「無視可能」
• NonignorableとMARのときが大変
– Nonignorableはとっても難しい
– とりあえずは、MAR
• 欠測がある場合の分析は容易ではない
2002/11/27
欠測値データの分析
5
Test of MCAR
• Little&Rubin(1987)
「欠測のない個体の第j変量の値Yjの周辺分布」と
「欠測のある個体のYjの周辺分布」とを比較.
⇒2つに有意差があれば、MCARの仮定は棄却さ
れる.
– χ2 検定
– 欠測のある個体が少ないときには使えない(使いにく
い)
– MARの確認はできない
2002/11/27
欠測値データの分析
6
主な分析方法
1. 欠測があるデータは取り除き完全データと
して分析(Complete-Case Analysis)
2. 得られたデータを使って分析(Available-Case
Analysis)
3. 欠測に値を代入して完全データの手法を
適用(Imputation or Fill-in)
4. 欠測はそのままモデル化して分析(Direct)
•
それぞれに長所・短所がある
2002/11/27
欠測値データの分析
7
Complete-Case Analysis①
•全変数が観測されているケース(個体)を使う
被験者 胸囲
1
2
3
4
5
6
7
8
9
10
2002/11/27
68
71
72
72
72
76
77
77
84
90
肺活量
身長
2000
1850
2100
1700
2200
2400
2150
2600
139
136
147
142
150
151
152
• 胸囲・肺活量・身長の全
てが観測されているケー
スをつかう.
• 一箇所でも欠測のある
ケースは無視(削除)
-Listwise deletion
欠測値データの分析
8
Complete-Case Analysis②
• 最も簡単で説得力がある
– SAS、SPSSはほとんどこの方法
例外:CORR procedure
でもね、
– 分析に使えるデータが減る(もったいない)
– 欠測のメカニズムがMCARでないと結論に偏
りが生じる
⇒簡単にこの方法を使うのは間違い
2002/11/27
欠測値データの分析
9
Available-Case Analysis①
• 利用できる最大限の情報をつかう
被験者 胸囲
1
2
3
4
5
6
7
8
9
10
68
71
72
72
72
76
77
77
84
90
2002/11/27
肺活量
身長
2000
1850
2100
1700
2200
2400
2150
2600
139
136
147
142
150
151
152
• 各変量ごとの平均などを
求める際には得られてい
るデータすべてを使う
• 2変量間の関係を調べる
ときは、その2変量がとも
に得られているケースの
データを使う.
‐Pairwise deletion
欠測値データの分析
10
Available-Case Analysis②
• 相関係数の問題
– 相関係数の推定に平均や分散を計算しなお
す必要
– 相関行列が正定値でなくなる可能性
• n×nの実対称行列Aとx≠0である任意のn×1実ベ
クトルに対し xTAx>0 となるとき,Aは正定値であ
るという.(全ての実固有値が正)
• 欠測のメカニズムがMCARでないと結論に
偏りが生じる
2002/11/27
⇒簡単にこの方法を使うのは間違い
欠測値データの分析
11
Imputation
• 欠測箇所に値を代入
・単一値代入法(single imputation)
– 一つの値を代入(平均値など)
・多重代入法、多重補完法(multiple imputation=MI)
– 複数個の値を代入し、擬似的な完全データセットを複
数個作成
– SASVersion8.1からPROC MI、PROC MIANALYZEで実
行可能.
– SPSSでも頑張ればできそう...
2002/11/27
欠測値データの分析
12
単一値代入法①
• 平均値
– 欠測がMCARでないと平均値自身が偏りをもつ
– 平均、分散を過小評価
• Hot Deck法
– 背景データの似ている個体を同じデータセット内
から探し、対応する値を用いる
– 欠測のメカニズムはどうでもいい
– 似たデータを探すのは難しい
2002/11/27
欠測値データの分析
13
単一値代入法②
• 回帰による推定値
– 観測データから重回帰式を求め欠測値を回帰
予測
– 欠測のメカニズムはMARでよい
ほかにも
いろいろ
– 分散を過小評価
• EMによる推定値
あります.
– EMアルゴリズムにより最尤推定値をもとめる
– 欠測のメカニズムはMARでよい
2002/11/27
欠測値データの分析
14
単一値代入法→多重代入法
○単一値代入法
• 推定量のバラツキを過小評価
– 代入された値を実際に観測された値であると
みなして分析
○多重代入法
• ある一つの欠測値に対して複数回の補完
を行うことにより、この不確実性を考慮
2002/11/27
欠測値データの分析
15
多重代入法(MI)
• 3段階から成る
1. 欠測箇所にM個の異な
る値を代入し、M個擬似
的なデータセットを生成
2. M個のデータセットそれ
ぞれに、完全データセッ
ト用の手法を適用して
分析
3. M種類の分析結果を一
つに統合
2002/11/27
欠測値データの分析
分析
統合
16
Combining Inference①
• M個の擬似的な完全データセットを作成し、
各データセットから推測対象であるパラ
メータθの推定値
ˆ1 ,ˆM およびそれら
の標本分散U1,…. , UMが得られたとする.
このときθの点推定値は算術平均
1
 
M
2002/11/27
M
ˆ

 m
m 1
欠測値データの分析
で与えらる.
17
Combining Inference②
このとき、
標本分散Tは代入内分散(within-imputation variance)
1
U 
M
M
U
m 1
m
および代入間分散(between-imputation variance)
M
2
1
B
(ˆm   )

M  1 m1
1
を用いて T  U  (1  M ) B と計算される.
2002/11/27
欠測値データの分析
18
Direct
• 欠測値は欠測のまま扱い、モデル化により
分析する
• 欠測が無視可能でない場合にはそうせざ
るを得ないことが多い
• Mixed Model(混合モデル)
2002/11/27
欠測値データの分析
19
SPSSのお話し
できること
方法
出力
SPSS
• Missing Value Analysis(MVA)という
オプションで欠測データの分析が可能
• できること
1. 欠測パターンの要約、記述統計
2. 欠測の下での基本統計量の算出
3. 欠測箇所への代入
などなど...
2002/11/27
欠測値データの分析
21
例:中古車価格のデータ
番号
1
2
3
4
5
6
7
8
9
10
11
12
価格
89
99
128
98
52
47
40
39
38
48
27
23
2002/11/27
走行距離
4.3
1.9
5.2
5.1
4
4.8
8.7
8.2
3.3
3.9
8.2
7.2
乗車年数
5
4
2
3
6
8
7
7
10
6
8
8
車検
24
18
13
4
15
24
3
6
14
0
24
24
欠測値データの分析
•
を欠測値と
して分析
• 価格が90以上の
ときの走行距離
を欠測に(MAR)
22
どこ???
ここ!!
2002/11/27
欠測値データの分析
23
[欠損値分析]ダイアログボックス
・変数の選択
・推定方法の選択
・EM、回帰による
推定方法の細かな
指定
2002/11/27
欠測値データの分析
24
欠測パターンの要約①
• 欠損値分析ダイアログボックスの[パター
ン]をクリック
①
②
③
• [続行]→[OK]
2002/11/27
欠測値データの分析
25
欠測パターンの要約‐出力
b
欠損パターンa
ケース
①
集計された パ ターン
完
了
価 年乗 車 距走 数
格 数車 検 離行
②
デ ー タ ハ ゚ター ン (す べての ケース)
欠
損
数
欠
損
%
ケースの数
9
9
3
X
12
1% 未満のケースを もつパターン (0 以下) は表示されません。
a. 変数は欠損パターンを もとに並べ替えられています 。
b. このパターンで欠損している 変数 (X とマークされ てい
る ) が使用されない場合に完了する ケースの数。
③
欠損値と極値のパタ
ーン
価 距走 年乗 車
格 離行 数車 検
%
ケース
1
0
.0
欠損パ ターン ( 欠損 値を も つ ケー ス)
2
1 25.0
S
3
1 25.0
S
4
欠損値と極値のパタ
1 25.0
S
欠
欠
ーン a
5
0
.0
損
損
6
数
0
.0
価 年乗 車 距走
7
格
数
車
検
離
行
0
.0
ケース
8
0
.0
2
1 25.0
S
9
3
0
.0
1 25.0
S
4
10
1 25.0
S
0
.0
- は最低値を 示すのに対し、+ は最高値を 示します。使用される 範
11
0
.0
囲は (Q1 - 1. 5*IQR, Q3 + 1.5*IQR)です。
12
0
.0
a. ケースと変数は欠損パターンを もとに並べ替えられてい ます。
- は最低値を 示すのに 対し、+ は最高値を 示します。使
)です。
2002/11/27
欠測値データの分析用される 範囲は (Q1 - 1.5*IQR, Q3 + 1. 5*IQR26
記述統計①
• 欠損値分析ダイアログボックスの[記述統
計]をクリック
①
②
③
• [続行]→[OK]
2002/11/27
欠測値データの分析
27
記述統計‐出力①
非欠損値数
①
1 変量 の統計量
極値の数a
欠損
ケースの数
平均値
標準偏差
度数
価格
12
60.6667
33.8240
0
走行距離
9
5.8444
2.1858
3
乗車年数
12
6.1667
2.3290
0
車検
12
14.0833
9.0399
0
a. 範囲外のケース の数 (Q1 - 1.5*IQR, Q3 + 1.5*IQR).
②
パーセント
.0
25.0
.0
.0
低
高
0
0
0
0
0
0
0
0
指示変 数の不一致 のハ ゚ーセ ン ト 。a ,b
離距行走
走行距離 25.00
対角要素は欠損している パーセントで、対角要素以外は指示変
数の不一致な組合せのパー セントです。
a. 変数は欠損パターンにより並べ替えられます。
b. 5% 未満の欠損値のあ る指示変数は表示されません。
2002/11/27
欠測値データの分析
28
記述統計‐出力②
③
個別分 散の t 検定a
格価
離距行走数年車乗
検車
t値
-5.4
.
5.6
.6
自由度
3.9
.
5.3
4.9
有効数
9
9
9
9
走
欠損数
3
0
3
3
行
距
平均値(有効)
44.7778 5.8444 7.2222 14.8889
離
平均値(欠損) 108.3333
. 3.0000 11.6667
各量的変数には、グループのペアが指示変数(有効、欠損)によって形
成されます。
a. 5% 未満の欠損のある 指示変数は表示されません。
2002/11/27
欠測値データの分析
「車検と走行距離がと
もに観測されていると
きの車検の平均値(有
効)」と、「車検は観測さ
れているが走行距離
が観測されていないと
きの車検の平均値(欠
損)」のt検定
29
基本統計量の算出①
• [欠損値分析]ダイアログボックスで推定
方法を選択.
– リストごと、ペアごと、EM、回帰.
• 選択された手法で基本統計量を推定
– [基本] 平均,共分散,相関係数
– ペアごと:[基本]+度数,標準偏差
– EM:[基本]+LittleのMCAR検定の結果
2002/11/27
欠測値データの分析
30
基本統計量の算出②
• 仮定
・リストごと、ペアごとの推定
→欠測のメカニズムはMCAR
・回帰、EMによる推定
→欠測のメカニズムはMAR
• この仮定が成立しないときには推定結果
が偏ることがある.
2002/11/27
欠測値データの分析
31
基本統計量の算出③‐EMの場合‐
データ分布につ
いての仮定を指
定
指定した回数に
達すると収束して
いなくても終了
今回の場合は
50回
2002/11/27
欠測値データの分析
32
基本統計量の算出④‐回帰の場合‐
回帰法により、回帰
推定にランダムな
成分を追加
推定過程で使用
する独立変数の
最大数を設定
2002/11/27
欠測値データの分析
33
基本統計量の算出
‐出力(EMの場合)
E M 共分散a
格価
離距行走数年車乗
検車
価格
1144.0606
走行距離
-60.1539 6.5008
乗車年数
-71.7576 3.0525 5.4242
車検
-25.8788
.2280 5.1667 81.7197
a. Little の MCAR 検定: カイ 2 乗 = 8.105, 自由
度 = 3, 確率 = .044
LittleのMCAR
検定の結果
E M 相関係 数a
E M 平均値 a
格価 離距行走数年車乗 検車
価格
1.000
走行距離 -.698 1.000
乗車年数 -.911
.514 1.000
車検
-.085
.010
.245 1.000
a. Little の MCAR 検定: カイ 2 乗 =
8.105, 自由 度 = 3, 確率 = .0 44
2002/11/27
格価
離距行走数年車乗
検車
60.6667 5.0498 6.1667 14.0833
a. Little の MCAR 検定: カイ 2 乗 =
8.105, 自由度 = 3, 確率 = .044
欠測値データの分析
34
欠測箇所への代入①
• 欠測値を回帰、EMの各手法による推定
値に置き換える.
→新規データファイルに保存[完了データ
の保存]
→今後の分析に使用
2002/11/27
欠測値データの分析
35
欠測箇所への代入②
[回帰の場合]
・推定調整-残差
2002/11/27
番号
1
2
3
価格
89
99
128
走行距離
4.3
4
4.3
4
5
6
7
8
9
10
11
12
98
52
47
40
39
38
48
27
23
4.3
4
4.8
8.7
8.2
3.3
3.9
8.2
7.2
欠測値データの分析
乗車年数
5
4
2
3
6
8
7
7
10
6
8
8
車検
24
18
13
4
15
24
3
6
14
0
24
24
36
欠測箇所への代入③
[EMの場合]
・データ分布-正規
2002/11/27
番号
1
2
3
4
5
6
7
価格
89
99
128
98
52
47
40
走行距離
4.3
2.94
1.47
3.58
4
4.8
8.7
8
9
10
11
12
39
38
48
27
23
8.2
3.3
3.9
8.2
7.2
欠測値データの分析
乗車年数
5
4
2
3
6
8
7
7
10
6
8
8
車検
24
18
13
4
15
24
3
6
14
0
24
24
37
SASのお話し
多重代入法
PROC MI;
PROC MIANALYZE;
SAS
• 多重代入法を実行できる
– ただし、Version8.1から
– MI procedureとMIANALYZE procedure
• proc mi;
– 複数個の完全データセットを生成
– 欠測メカニズムはMARを仮定
2002/11/27
欠測値データの分析
39
つづき
• proc mianalyze;
– proc miで生成された擬似的な完全データ
セットで通常の分析を行った結果をもとに、
妥当な統計的推測結果を出力
– ⇒スライド18~20
• オプションいっぱい
– 今日は簡単にご紹介
2002/11/27
欠測値データの分析
40
DATAステップ
DATA missing;
INFILE
“sample.txt”;
INPUT x1 x2 x3 x4;
RUN;
スライド22のデータ
sample.txt
89 4.3 5 24
99 .
4 18
128 .
2 23
98 .
3 4
・・・・・・・・・・
*x1=価格、x2=走行距離、x3=乗車年数、x4=車検
*欠測には「.(ピリオド)」を入力
2002/11/27
欠測値データの分析
41
PROCステップ①
PROC MI DATA=missing
OUT=miout;
VAR x1 x2 x3 x4;
RUN;
*代入値を生成し、欠測箇所を埋める(補完)
→欠測を埋めたデータmiout
– default:5個
*代入値の生成方法は3種類
2002/11/27
欠測値データの分析
– default:MCMC (Markov Chain Monte Carlo)
42
オプションs
• NIMPUTE=
– 幾つのデータを作成
するか
• SEED=
– 乱数の初期値
• MAXIMUM=
– 代入値の最大値
• MINIMUM=
– 代入値の最小値
2002/11/27
• EM MAXITER=
– 最大反復回数
などなど
★注意点
•logファイルをきちんと見
よう
–ひっそりとERRORがで
ていたりします
–特にEM algorithm
欠測値データの分析
43
出力
• Model Information
– 多重代入の計算の詳細
Data Set
Method
WORK.MISSING
MCMC
(以下略)
• Missing Data Patterns
Group x1 x2 x3 x4
1 X X X X
2 X . X X
2002/11/27
Freq
5
7
Percent
75.00
25.00
欠測値データの分析
44
PROCステップ②
PROC PRINT DATA=miout;
RUN;
*ちゃんとデータが読み込まれてるか
*補完されたデータを確認
– なくても問題はなし
2002/11/27
欠測値データの分析
45
出力
Obs _Imputation_ x1
x2 x3 x4
1
1
89 4.30000 5 24
2
1
99 7.03152 4 18
3
1
128 5.27193 2 13
4
1
98 6.53323 3 4
5
1
52 4.00000 6 15
6
1
47 4.80000 8 24
7
1
40 8.70000 7 3
(中略)
・
60
2002/11/27
・
・
5
・
・
・
・
23 7.20000
欠測値データの分析
・ ・
・ ・
8 24
46
PROCステップ③
PROC REG DATA=miout
OUTEST=outreg COVOUT;
MODEL x1=x2 x3 x4;
BY _IMPUTATION_;
RUN;
*補完されたデータ(miout)を使って分析
*どんな分析でも可.とりあえず今回は回帰分析
(PROC REG).
2002/11/27
欠測値データの分析
47
PROCステップ④
PROC MIANALYZE DATA=outreg;
VAR INTERCEPT x2 x3 x4;
RUN;
*各分析結果をひとつに統合
– スライド18~20参照
2002/11/27
欠測値データの分析
48
出力される結果(要約)
• MI推定値(各推定値の平均)
• 代入内分散、代入間分散、標本分散(total
variance)
• 欠測がMI推定値の変動にどれだけ影響してい
るか
– fraction of missing information about θ
– relative increase in variance due to nonresponse
– ??
2002/11/27
欠測値データの分析
49
結果の比較①
• Listwise deletionと多重代入法による結果
とを比較
欠測なしデータでの分析結果
Variable
intercept
x2
x3
x4
2002/11/27
Parameter T for H0:
Estimate Parameter=0 Prob>|T|
152.67723
11.20
<.0001
-3.61226
-1.96
0.0856
-12.67218
-7.15
<.0001
0.40053
0.91
0.3902
欠測値データの分析
50
結果の比較②
多重代入法 by SAS
Variable
intercept
x2
x3
x4
Parameter T for H0:
Estimate Parameter=0 Prob>|T|
152.428
10.38
<.0001
-4.122
-2.09
0.037
-12.328
-5.97
<.0001
0.462
1.09
0.2747
Listwise deletion
Variable
intercept
x2
x3
x4
2002/11/27
Parameter T for H0:
Estimate Parameter=0 Prob>|T|
126.916
5.10
0.0038
-3.922
-1.9
0.1161
-8.904
-2.88
0.0345
0.342
0.74
0.4951
欠測値データの分析
51
結果の比較③
○結論
• 多重代入法による分析結果のほうが
Listwiseによる分析結果よりも欠測なし
データでの分析結果に近い
2002/11/27
欠測値データの分析
52
まとめると...
●SPSS versus SAS
欠損値分析に関しては、
• SPSSは
– 「敵を知る」ための道具
– 欠測の状況を正確に把握
• SASは
– 多重代入法を自由自在に
2002/11/27
欠測値データの分析
53
参考文献
• 岩崎学 不完全データの解析-基礎と実際-応用統
計学会チュートリアルセミナー用資料
• 岩崎学 2002 不完全データの統計解析 エコノミスト社
• R.J.A.Little&D.B.Rubin STATISTICAL ANALYSIS
WITH MISSING DATA 1987 John Wiley&Sons,Inc.
• SAS OnlineDoc、Version8(Chapter8,9)
• SPSS Missing Value Analysis 7.5 と 7.5J 1997
SPSS Inc.
2002/11/27
欠測値データの分析
54
付録
EM algorithm
SAS(代入値の生成方法)
などなど
EM algorithm①
• 不完全データの尤度関数を直接最大化す
る代わりにEステップ(Expectation Step)と
Mステップ(Maximization step)とよばれる
各ステップの反復により最尤推定値をもと
める方法.
• 各ステップを収束するまで交互に繰り返す.
2002/11/27
欠測値データの分析
56
EM algorithm ②
[手続き]
• パラメータの初期値θ(0) を適当に定める.
– 初期値はComplete,Availableなど簡便な方法
を用いて決定すればよい
• Eステップ(Expectation step)
– アルゴリズムをt回繰り返して得られたパラ
メータベクトルθ(t) を与えたもとで、完全なデー
タの対数尤度関数の期待値を計算
2002/11/27
欠測値データの分析
57
EM algorithm ③
• Mステップ(Maximization step)
– Eステップで得られた完全なデータに対する対数
尤度関数Q(θ|θ(t)) を最大にするθ(t+1)を求める
– 形式的には全てのθに対して
Q(θ (t+1) |θ(t)) ≧Q (θ|θ(t))
が成立
• ただし、
– 一般に収束が遅く、精度に関する推定量を直接
得ることができない.
2002/11/27
欠測値データの分析
58
代入値の計算法(SAS)
•
MCMC method
• defaultはこれ
– マルコフチェーン+モンテカルロ法
– マルコフチェーンを利用して目的とする確率
分布からの乱数を生成する一般的な方法論
2002/11/27
欠測値データの分析
59
つづき
欠測が単
調ならこれ
らの方法も
• Regression method
可
• MONOTONE METHOD=REG(RESSION)
• 回帰モデルに基づき補完
• Propensity method
• MONOTONE METHOD=PROPENSITY
• ロジスティック回帰+propensity score+近似的
ベイズ・ブートストラップ法
2002/11/27
欠測値データの分析
60
monotoneな欠測
• 単調(monotone) なパターンの欠測
– 各個体において、第j変量Yjが観測されていれ
ば、第k変量Ykも観測されている.(k<j)
– 非単調(non-monotone)
• 欠測のパターンが単調だと、いろいろと便
利.
2002/11/27
欠測値データの分析
61
要するに
• 前が欠測だったら後ろも欠測
番号
1
2
3
4
5
・・・
Y1
○
○
○
○
○
・・・
Y2 Y3 ・・・ Yp
○
○
○
○
・・・
2002/11/27
○
○
○
○
○ ○
・・・ ・・・ ・・・
⇒
番号
2
5
4
3
1
・・・
欠測値データの分析
Y1
○
○
○
○
○
・・・
Y2
○
○
○
○
Y3 ・・・
○ ○
○ ○
○
Yp
○
・・・ ・・・ ・・・ ・・・
62
!注意!
• 代入値の生成方法
METHOD=REGRESSION;
Version8.1では、常に間違った結果になっ
ています。Version8.2で、このバグは修正さ
れている。
2002/11/27
欠測値データの分析
63
SASにおける欠測の今後
• マニュアルのページ数も増加傾向
– 46ページ(Version8.1)→ 72ページ(Version8.2)
• V8.2までは、MIとMIANALYZEは「評価版」
→ V8.2の次Versionでは、プロダクト版(予定)
– 機能もいろいろ追加されるらしい(V8.2)
これからは欠測の時代なのでは...
2002/11/27
欠測値データの分析
64
Version8.1のドキュメント
• MI procedure
– http://www.sas.com/service/techsup/faq/st
at_proc/miproc.html
• MIANALYZE procedure
– http://www.sas.com/service/techsup/faq/st
at_proc/mianalyzeproc.html
– PDF形式です.英語です.
2002/11/27
欠測値データの分析
65
おわり