我正在尝试使用statisticsmodeling包来评估模型,并查看效果大小:
library(caret)
library(statisticalModeling)
a_model <- train(
Sepal.Length ~ Species + Sepal.Width,
data = iris,
method = "lm"
)
statisticalModeling::effect_size(a_model$finalModel, ~ Species, data = iris)
在拟合模型期间,r会自动将分类变量Species转换为虚拟变量 - 很棒,我不必担心。
但是,当我尝试评估模型时,这会引发错误。上面的最后一行给出了:
eval(expr,envir,enclos)中的错误:找不到对象'Speciesversicolor'
以另一种方式提出问题,是否有可能检索用于构建模型的转换数据?然后我把它传递给统计模型函数的数据参数。
我尝试将data = iris
切换为data = a_model$trainingData
,但遇到了相同的消息。
我没有使用基线r线性模型遇到这个问题,只使用插入符号。
答案 0 :(得分:3)
您可以使用train
的默认S3方法来避免它。
b_model <- train(x = iris[, c("Species", "Sepal.Width")],
y = iris$Sepal.Length,
method = "lm")
identical(a_model$finalModel$coefficients, b_model$finalModel$coefficients) # TRUE
statisticalModeling::effect_size(b_model$finalModel, ~ Species, data = iris)