R 中多元线性回归的交叉验证

Cross validation for a multiple linear regression in R

我目前正在研究一个大学项目,以预测到达 24/7 商店的顾客数量。我使用的数据来自一家商店,其中包含(除其他事项外)某年每位顾客的服务日期和时间。

我已将此数据集拆分为训练集和交叉验证集。此外,我将训练集与同年的天气数据进行了汇总和合并,以找出例如高温是否会带来更多顾客。

合并数据的简化版本如下所示:

| ServedCustomers | Month | Day | Hour | Temperature (C°) | Rain(binary)
| --------------- | ----- | --- | ---- | ---------------- | ------------
| 1               | 12    | 31  | 12   | 9.2              | 0
| 0               | 12    | 31  | 13   | 9.8              | 1
| 2               | 12    | 31  | 14   | 10.1             | 0

对于一年中的每个小时,我都有所服务的客户数量以及相应的天气数据。

我在 R 中创建了一个多元线性回归模型来预测客户数量,几乎所有其他变量都作为预测变量。使用 summary() 命令,MSE、R^2 和其他统计数据到目前为止看起来还不错。

现在我想检查同一模型是否也适用于交叉验证集。为此,我合并了相同的天气数据以获得与上面 table 具有相同结构的数据集,只是客户数量不同。

但是,这就是我目前遇到的问题。将 predict.lm() 函数与模型和交叉验证集一起使用似乎确实有效,但只会产生预测值和很少的附加信息。

是否有某种方法可以总结该模型对其他数据集的效果?类似于 summary() 命令,但是对于线性模型最初不是基于的数据集?

您可以计算均方误差和均方根误差,看看您的模型表现如何。

1) 将系数乘以训练数据中的协变量矩阵。 yhat = (X*b)

2) 将你的训练集 y's 与上面的 yhat 进行比较。

3) 平方误差

4) 取答案的平方根 = 均方根误差

较低的值意味着更适合整体