【发布时间】:2021-01-11 00:07:47
【问题描述】:
我想模拟 1000 次线性回归模型的预测值,并根据模型的自变量查看每种类型的汽车有多少次预测 mpg 最高。 我使用测试集和训练集是因为我想在训练数据之外评估模型的拟合度。
data(mtcars)
library(caret)
trainingIndex <- createDataPartition(mtcars$mpg, p = 0.8, list = FALSE)
trainingset <- mtcars[trainingIndex,]
testingset <- mtcars[-trainingIndex,]
我创建了一个数据分区以包含一个训练集和一个测试集。现在我有一个测试集和一个训练集,我创建了线性模型
fit <- lm(mpg~., data = trainingset)
现在我有了线性模型,我尝试创建一个引导程序来从模拟中进行预测。我使用 boot_predict 但它给了我一个错误。
library(finalfit)
boot_predict(fit,testingset, type = "response", R = 1000, estimate_name = NULL,
confint_sep = "to", condense = TRUE, boot_compare = TRUE, compare_name = NULL,
comparison = "difference", ref_symbol = "-", digits = c(2,3))
错误:mutate() 输入 term 有问题。
x 无效格式 '%.2f';对字符对象使用格式 %s
i 输入term 是(function (x, digits) ...。
运行rlang::last_error() 以查看错误发生的位置。
另外:警告信息:
在 predict.lm(object, newdata, se.fit, scale = 1, type = if (type == :
秩不足拟合的预测可能具有误导性
我不确定这是否是从引导程序获得 1000 预测的最佳方法
【问题讨论】:
-
该软件包很可能不是为此而设计的。首先看一下小插图表明它适用于分类类型的预测。我认为您仍然可以将其用于回归,但您的问题不是很清楚。
-
为什么需要训练集和测试集?而且,在引导程序中,如果训练数据中缺少汽车本身,会发生什么......你应该考虑一下这个问题并稍微改一下这个问题。可以编码
-
感谢您的回答。我想要的是模拟预测值,看看每辆车有多少次在数据集中具有最高预测值。例如,其中一辆汽车是马自达。我想根据自变量模拟 mpg 值的预测 1000 次,看看有多少次马自达在数据集中具有最高的预测值。 .
-
我编辑我的问题。我想模拟的是预测值,我想根据其他自变量预测每种汽车的 mpg。我想在训练数据之外测试模型。
标签: r linear-regression predict