2017-10-20 89 views
0

我從基礎R和尖等效模型模型對象:差異被插入符返回對基礎

base_lm <- lm(mpg ~ cyl, data = mtcars) 

library(caret) 
caret_lm <- train(
    mpg ~ cyl, 
    data = mtcars, 
    method = "lm" 
) 

我想從插入符號與我的線性模型使用statisticalModelling包:

statisticalModeling::evaluate_model(caret_lm) 
Error in UseMethod("explanatory_vars") : 
    no applicable method for 'explanatory_vars' applied to an object of class "c('train', 'train.formula')" 

的嘗試:

statisticalModeling::evaluate_model(caret_lm$finalModel) 
Error in eval(expr, envir, enclos) : object 'dat' not found 

它確實與基礎R線性模型

statisticalModeling::evaluate_model(base_lm) 

    cyl model_output 
1 0 37.884576 
2 5 23.505626 
3 10  9.126675 

有沒有辦法在統計建模包中使用脫字符號模型?

+0

是'lm_mod $ finalModel'你在找什麼呢?否則,一個可重複的例子會有所幫助。 –

+0

嗨@DavidHeckmann,更新的問題與可重複的例子。不知道這是否可能,但肯定會很方便。 –

回答

2

用火車對象的finalModel插槽,並指定數據明確地預測:

pred_base <- evaluate_model(base_lm , data = mtcars[,1:2]) 

pred_caret <- evaluate_model(caret_lm$finalModel , data = mtcars[,1:2]) 
# compare predictions: 
all(pred_base$model_output == pred_caret$model_output) 
[1] TRUE