2017-07-13 3 views
0

マウスを使用して線形モデルを使用して値を代入しようとしています。マウスの私の理解は、それが行を繰り返すことです。 NAsを持つ列の場合、他のすべての列を予測変数として使用し、モデルに適合させてから、このモデルのサンプルを使用してNAsを埋めます。 ここでは、いくつかのデータを生成し、切り抜きを使用して欠落したデータを導入する例を示します。マウスでdata.frameのすべての列に値を代入する

n <- 100 
    xx<-data.frame(x = 1:n + rnorm(n,0,0.1), y =(1:n)*2 + rnorm(n,0,1)) 
    head(xx) 
    res <- (ampute(xx)) 
    head(res$amp) 

欠落したデータは次のようになります。

  x   y 
    1  NA 3.887147 
    2 2.157168  NA 
    3 2.965164 6.639856 
    4 3.848165 8.720441 
    5  NA 11.167439 
    6  NA 12.835415 

それから私は、欠落したデータ転嫁しようとしています:

mic <- mice(res$amp,diagnostics = FALSE) 

をそして私はその後、非存在であるが、そこにあることを期待しますNAは常に列の1つにあります。

colSums(is.na(complete(mic,1))) 

2つのうちどちらがむしろランダムであるか。

> colSums(is.na(complete(mic,1))) 
    x y 
    0 30 

も:私は取得しています上記のコードを実行することにより

> colSums(is.na(complete(mic,1))) 
    x y 
33 0 
+0

私は正確にあなたの質問が不明です。あなたは何をしたいですか? – user3507584

+0

putput値が欠落しています。 – witek

答えて

0

私はあなたのコードを実行し、問題の同じ種類で終わることを試みた:

library(mice) 
n <- 100 
xx<-data.frame(x = 1:n + rnorm(n,0,0.1), y =(1:n)*2 + rnorm(n,0,1)) 
head(xx) 
res <- (ampute(xx)) 
head(res$amp) 

miceコールからsummaryを見ると、次のように表示されます。帽子何かが間違っている。私のデータは

tempData <- mice(res$amp,m=5,maxit=50,seed=500) 
summary(tempData) 
Multiply imputed data set 
Call: 
mice(data = res$amp, m = 5, maxit = 50, seed = 500) 
Number of multiple imputations: 5 
Missing cells per column: 
x y 
21 23 
Imputation methods: 
    x  y 
"pmm" "pmm" 
VisitSequence: 
x 
1 
PredictorMatrix: 
    x y 
x 0 0 
y 0 0 
Random generator seed value: 500 

です。ここには2つのインジケータがあります。 1つ目はVisitSequenceで、最初の列、xyではないことが示されています。また、PreditorMatrixには、対角線上にゼロが含まれているだけなので、予測子のいずれも、他の予測子からの情報を使用しません。

2つの列があまりにも共線であり、同様の解決策がthis detailed answerで与えられているため、疑似データに問題があります。 y列は、本質的にはx列の値の2倍であるため、解析から静かに破棄されます。

ほぼ完全に線形ではないデータをシミュレートしてみましょう。例:二次関係

n <- 100 
xx<-data.frame(x = 1:n + rnorm(n,0,0.1), y =(1:n)**2 + rnorm(n,0,1)) 
head(xx) 
res <- (ampute(xx)) 
head(res$amp) 
関連する問題