なぜこの多重代入が低品質なのですか?


9

次のRコードを考えます。

> data <- data.frame(
            a=c(NA,2,3,4,5,6),b=c(2.2,NA,6.1,8.3,10.2,12.13),c=c(4.2,7.9,NA,16.1,19.9,23))
> data
   a     b    c
1 NA  2.20  4.2
2  2    NA  7.9
3  3  6.10   NA
4  4  8.30 16.1
5  5 10.20 19.9
6  6 12.13 23.0

ご覧のように、大まかにデータを設計しましたc = 2*b = 4*a。そのため、欠損値はであると予想しますa=1, b=2, c=12。だから私は分析を行いました:

> imp <- mi(data)
Beginning Multiple Imputation ( Sat Oct 18 03:02:41 2014 ):
Iteration 1 
 Chain 1 : a*  b*  c*  
 Chain 2 : a*  b*  c*  
 Chain 3 : a*  b*  c*  
Iteration 2 
 Chain 1 : a*  b   c   
 Chain 2 : a*  b*  c*  
 Chain 3 : a   b*  c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a*  b*  c*  
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a*  b   c   
Iteration 5 
 Chain 1 : a   b   c*  
 Chain 2 : a   b*  c   
 Chain 3 : a   b*  c   
Iteration 6 
 Chain 1 : a*  b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a   b   c*  
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c*  
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b*  c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a*  b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c*  
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 20 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 21 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 22 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 23 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 24 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 25 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 26 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 27 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 28 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 29 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
mi converged ( Sat Oct 18 03:02:45 2014 )
Run 20 more iterations to mitigate the influence of the noise...
Beginning Multiple Imputation ( Sat Oct 18 03:02:45 2014 ):
Iteration 1 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 2 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 5 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 6 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 20 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Reached the maximum iteration, mi did not converge ( Sat Oct 18 03:02:48 2014 )

そして最後に、完成したデータセットを観察しました:

> mi.completed(imp)
[[1]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10 16.1
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[2]]
  a     b    c
1 2  2.20  4.2
2 2  6.10  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[3]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

あなたが見ることができるように、帰属された値は私が期待したものではありません。実際、欠損値は隣接するレコードから取得されたように見えるため、これらは単一代入の結果のように見えます。

何が欠けていますか?

統計における私の「知識」は、大体14年前に受講した入門コースから漠然と覚えているものに限られていることに注意してください。私は欠損値を単純化する簡単な方法を探しています。それは最も最適化されたものである必要はありませんが、なんらかの意味を成す必要があります(これらの結果からは作成できません)。mi私が望むものを達成するための正しいアプローチではない場合もあるでしょう(おそらく代わりに予測を使用する必要があります)。

私もで同様のアプローチを試みましたmiceが、同様の結果が得られました。

更新 アメリアは箱から出してすぐに機能します。私がmi /マウスで何が欠けているかを知ることはまだ興味深いでしょう。


1
一般的に、複数の補完を何をしようとしていますか?もう少しコンテキストなしでこの質問に答えるのは難しいです。[変数が3つ、レコードが6つしかないため、代入の質が低かったことも驚くべきことではありません]
Patrick S. Forscher

@ PatrickS.Forscher正解でした。100件のレコードで同様のテストを試したところ、結果は予想したとおりでした。私がそれを受け入れることができるようにその答えを出してください、そしてあなたが成功した帰属のためにいくつかの球場の最小値を指定することができればそれは素晴らしいでしょう。
t0x1n 2015年

次の結果についてどう思いますか?> mi.completed(imp) [[1]] a b c 1 0.289 2.20 4.2 2 2.000 2.57 7.9 3 3.000 6.10 12.7 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[2]] a b c 1 0.603 2.20 4.2 2 2.000 5.82 7.9 3 3.000 6.10 13.4 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[3]] a b c 1 1.05 2.20 4.2 2 2.00 4.18 7.9 3 3.00 6.10 12.0 4 4.00 8.30 16.1 5 5.00 10.20 19.9 6 6.00 12.13 23.0書式設定については申し訳ありませんが、私がコメントでできる最高のことだと思います。
Aleksandr Blekh

アメリアIIは、横断時間シリーズ(別名パネル研究)の複数の帰属のために明示的に使用されます。MICEは非横断時系列データ用です(または、少なくとも、MICEはそのような時系列に対して不十分な代入を生成します。Honaker、J.およびKing、G.(2010)を参照してください)。時系列クロスの欠損値についての対処法-section data。American Journal of Political Science、54(2):561–581。)
Alexis

@AleksandrBlekh私は私が近づくに何かを期待する、どちらか彼らのようにしないでくださいx/ 2x/4x
t0x1n

回答:


13

6つのケース[レコード]と3つの変数を使用している場合、代入の品質はかなり低くなります。

なぜこれが当てはまるかを理解するために、欠損値をもっともらしい帰属値で埋めることによって複数の代入が機能することを思い出してください。これらの帰属された値は、個別のデータセットで計算されます(これらの帰属された値がこの回答の後半でどのように導き出されるかに戻ります)。代入された値は、データセットごとに若干異なります。m

したがって、関心のある統計量(たとえば、平均、回帰係数など)が与えられた場合、データセットを使用して、データセット内の平均標準誤差(以下で呼ぶ量を推定できます。代入分散、または)およびデータセット全体で変化する度合い(代入間分散、またはと呼ぶ量)。qmqmU¯qmB

代入の品質とBU¯

代入内の分散と代入間の分散を使用して、統計量の代入された推定が欠落した情報によって影響を受けている度合いの推定値を導出できます。もちろん、失われる情報が多いほど、代入の品質は低下します。欠落によって失われた情報の推定値はというラベル が付けられ、次の式で与えられます。U¯Bγ

γ=r+2df+3r+1

rこの式のは、代入間の分散と代入内の分散比です。BU¯

r=(1+1m)BU¯

したがって、値が高いと値が高くなり、その結果値が高くなります。次に、値が高い場合は、データの欠落と質の低い代入のために失われた情報が多いことを示しています。Brγγ

dfの式のもと関数です。具体的には、はγBU¯df

df=(m1)(1+mU¯(m+1)B)2

したがって、代入間の分散と代入内の分散との比を大きくすることに加えて、大きくするとも小さくなります。これにより、値が高くなり、欠落によって失われる情報が多くなり、補完の質が低下します。Bdfγ

要約すると、補完間の分散値が高いほど、補完の質に2つの点で影響します。B

  1. 値が大きいほど、代入間の分散と代入内の分散の比率が増加し、代入の品質が低下します。B
  2. 値が高いほど、使用可能な自由度が減少し、代入の品質が低下しますB

症例数との関係B

他の点では類似した2つのデータセットが与えられた場合、ケース数が少ないデータセットは、代入間の分散大きくなります。B

これは、上で説明したように、補完間の分散が、補完されたデータセットのそれぞれ内の関心のある統計量を計算し、がデータセットのそれぞれにわたって変化する度合いを計算することによって計算されるために発生します。所与のデータセットが症例のより高い量が、別のように欠損値の同様の量を持っている場合は、値の小さい割合は、それぞれにわたって変化して自由になりに低い全体的な変化が存在するであろうことを意味し、帰属データセットを横切ります帰属データセット。qmqmmq

したがって、一般に、ケースの数を増やす(より正確には、欠損値の割合を減らす)と、代入の品質が向上します。

変数の数との関係B

2つのデータセットが類似している場合、追加の変数が欠損値に関する情報である限り、変数の数が多いデータセットでは、代入間の分散小さくなります。B

これは、一般的に、特定の変数の欠損値が他の変数からの情報を使用して「埋められ」、欠損値の妥当な推定値が生成されるために発生します(これらの推定値の生成方法の具体的な詳細は、MIの実装によって異なります)あなたが使用しています)。追加の変数の形の情報が増えると、代入された値がより安定し、代入されたデータセット全体で対象となる統計量変動が少なくなります。qm

したがって、一般に、データセットで使用可能な変数の数を増やすと、それらの追加の変数が欠損値に関する情報である限り、代入の品質が向上します。

参考文献

ルビン、DB(1996)。18年以上後の複数の転帰。 アメリカ統計協会のジャーナル、91、473-489。

シェーファー、JL(1999)。多重代入:入門書。 医学研究における統計的方法、8、3-15。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.