私はRで堅牢なglmsを実装することを学んでいますが、コリニアリティのためにいくつかの列が削除されたモデルを持っている場合、回帰モデルから値を予測するglmobを得ることができません。具体的には、予測関数を使用してglmrobから値を予測するとき、常にすべての値に対してNAを与えます。 glmを使用して同じデータ&モデルからの値を予測するとき、私はこれを観察しません。当てはめられたモデルにNA係数があり(かつNAが係数ベクトルの最後の係数ではない)限り、私が使用するデータは重要ではないようですが、予測は機能しません。R:glmはできますが、glmrobは共直線列を落としたモデルを予測できません。
この現象は、内部直線が共直線性のために削除された場合のデータセットおよびモデルすべてに適用されます。モデルから2つの列が削除された偽のデータセットが含まれています。これにより、係数リストに2つのNAsが与えられます。 glmとglmrobの両方でほぼ同じ係数が得られますが、glmモデルでの動作のみが予測されます。だから私の質問です:私は予測値を生成するから私のglmrobモデルを防ぐ頑強な回帰について私は理解できません?
library(robustbase)
#Make fake data with two categorial predictors
df <- data.frame("category" = rep(c("A","B","C"),each=6))
df$location <- rep(1:6,each=3)
val <- rep(c(500,50,5000),each=6)+rep(c(50,100,25,200,100,1),each=3)
df$value <- rpois(NROW(df),val)
#note that predict works if we omit the newdata parameter. However I need the newdata param
#so I use the original dataframe here as a stand-in.
mod <- glm(val ~ category + as.factor(location), data=df, family=poisson)
predict(mod, newdata=df) # works fine
mod <- glmrob(val ~ category + as.factor(location), data=df, family=poisson)
predict(mod, newdata=df) #predicts NA for all values