2017-09-14 75 views
0

我剛剛學習如何處理model.matrix。例如,要創建樣本外預測,我從我的模型中提取公式,並說它是一個線性模型。 使用formula(mymodel)提取的功能:從公式中刪除因變量model.matrix

form <- formula(y ~ x1 + x2 * x3) 

現在,用來創建預測我需要一個model.matrix沒有我y。我可以用手工鍵入:

X <- model.matrix(~ x1 + x2 * x3, data=out.of.sample.data) 

然而,有沒有使用方式,例如,update擺脫左部我的公式嗎?

謝謝!

回答

0

這是我通常這樣做的。我不知道這個內置函數。

df = data.frame(y=rnorm(10), x1=rnorm(10), x2=rnorm(10), x3=rnorm(10)) 
mymodel = lm(y ~ x1 + x2 + x3, df) 
form_vars_only = 
    formula(paste("~",strsplit(as.character(formula(mymodel)),"~")[[3]])) 
1

它可以與update通過設置響應變量來完成到NULL

form <- formula(y ~ x1 + x2 * x3) 
newform <- update(form, NULL ~ .)