何らかの理由で、glms を指定すると (そして lm も同様であることが判明しました)、R はデータの欠損値を予測していません。次に例を示します。
y = round(runif(50))
y = c(y,rep(NA,50))
x = rnorm(100)
m = glm(y~x, family=binomial(link="logit"))
p = predict(m,na.action=na.pass)
length(p)
y = round(runif(50))
y = c(y,rep(NA,50))
x = rnorm(100)
m = lm(y~x)
p = predict(m)
length(p)
p の長さは 100 である必要がありますが、50 です。奇妙なことに、欠落データから予測する同じスクリプトに他の予測があることです。
編集: 他の予測はかなり間違っていたことが判明しました - 私はimputed.value = rnorm(N,mean.from.predict,var.of.prediction.interval)
. これにより、 lm predict または glm predict 関数の mean および sd ベクトルが再length(predict)<N
利用されました。これは、私が求めていたものとはまったく異なります。
だから私の質問は、glm と lm が欠落している値を予測するのを止めている私のコード例はどうなっているのですか?
ありがとう!