如何提取多元回归lm里面的全模型的R2和p值

回归模型提取R2和p值

all_ck <- function(formula,i){
  lm_data <- lm(formula,data=list[[i]])
  summar <- summary(lm_data)
  b <- summar$coefficients[1,1]
  k <- summar$coefficients[2,1]
  R2 <- summar$r.squared
  # tstats <- coef(lm_data) / sqrt(diag(vcov(lm_data)))
  # p <-  2 * pt(abs(tstats), df = df.residual(lm_data), lower.tail = FALSE)
  fvalue <- summar$fstatistic
  pvalue <- 1-pf(fvalue[1],fvalue[2],fvalue[3])
  return(c(k=k,b=b,R2=R2,p=round(pvalue,3)))
}
all_trend <- sapply(1:100,
             FUN = function(i){
                   all_ck(formula = y~x,i)}) %>%
             t() %>% 
             as.data.frame()

all_trend

看完如果对你有帮助,感谢点赞支持!

如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述

<think>好的,用户现在想了解如何在R语言中进行多元线性回归的预测。首先,我需要确认用户对多元线性回归的基础知识是否熟悉,但根据问题本身,可能他们已经有了一定的了解,现在需要具体的实现步骤。 用户之前的问题是关于Box-Cox变换无法消除自相关性时的替代方法,现在转向R语言的多元线性回归预测,可能他们正在学习回归分析的应用,尤其是在实际编程中的实现。需要确保回答结构清晰,步骤明确,便于用户跟随操作。 接下来,我需要回忆R语言中做多元线性回归的主要函数,比如lm(),以及预测函数predict()的使用方法。可能需要提到如何构建模型公式,处理自变量,进行训练测试集的划分,还有预测后的评估指标,如RMSE、R&sup2;等。 用户可能想知道整个流程,包括数据准备、模型构建、预测、评估结果可视化。可能需要分步骤讲解,每个步骤的代码示例很重要,特别是参数的说明,比如predict()中的newdata参数,interval参数用于置信区间预测区间。 另外,要注意提醒用户可能遇到的常见问题,比如数据格式是否正确,因子变量的处理,缺失的处理,还有预测时新数据必须与训练数据有相同的结构。这些注意事项能帮助用户避免错误。 用户可能还需要了解如何解释输出结果,比如点预测、区间范围,以及如何评估模型预测的准确性。可能需要提到使用caret包来简化流程,或者可视化预测结果与真实的对比,比如用ggplot2画图。 最后,总结整个流程,强调关键步骤注意事项,确保用户能够系统地掌握多元线性回归预测在R中的实现方法。</think>--- ### **R语言多元线性回归预测步骤详解** 在R语言中,多元线性回归的预测流程可分为以下步骤,结合代码示例说明关键操作: --- #### **1. 数据准备与模型构建** ```r # 加载数据(示例使用mtcars内置数据集) data(mtcars) # 划分训练集测试集(80%训练,20%测试) set.seed(123) index <- sample(1:nrow(mtcars), 0.8 * nrow(mtcars)) train_data <- mtcars[index, ] test_data <- mtcars[-index, ] # 构建多元线性回归模型 # 预测mpg(油耗)基于wt(车重)、hp(马力)、cyl(气缸数) model <- lm(mpg ~ wt + hp + cyl, data = train_data) summary(model) # 查看模型系数统计显著性 ``` **关键输出解读**: - **Coefficients**:各变量的回归系数(如`wt`系数-3.1表示车重每增加1吨,油耗减少3.1 MPG) - **R-squared**:模型解释的方差比例(越高越好) - **p-value**:变量显著性检验(通常<0.05认为显著) --- #### **2. 使用模型进行预测** ```r # 对测试集进行预测 predictions <- predict(model, newdata = test_data) # 输出预测与真实对比 result <- data.frame( Actual = test_data$mpg, Predicted = predictions ) print(result) # 计算预测误差指标(RMSE、MAE、R&sup2;) library(caret) rmse <- RMSE(predictions, test_data$mpg) # 均方根误差 mae <- MAE(predictions, test_data$mpg) # 平均绝对误差 r2 <- R2(predictions, test_data$mpg) # 决定系数 cat("RMSE:", rmse, "\nMAE:", mae, "\nR&sup2;:", r2) ``` **输出示例**: ``` Actual Predicted 1 21.4 22.1 2 19.7 18.9 RMSE: 1.02 MAE: 0.89 R&sup2;: 0.85 ``` --- #### **3. 预测区间与置信区间** ```r # 计算预测区间(区间范围更宽,包含个体不确定性) pred_intervals <- predict( model, newdata = test_data, interval = "prediction", # 改为"confidence"则输出置信区间 level = 0.95 ) # 结果展示 result_with_intervals <- cbind(test_data, pred_intervals) print(result_with_intervals[, c("mpg", "fit", "lwr", "upr")]) ``` **输出说明**: - `fit`:点预测 - `lwr``upr`:预测区间的下限上限(95%概率覆盖真实) --- #### **4. 预测结果可视化** ```r library(ggplot2) ggplot(result_with_intervals, aes(x = mpg, y = fit)) + geom_point(color = "blue") + # 绘制预测 geom_abline(slope = 1, linetype = "dashed") + # 添加理想拟合线(y=x) geom_errorbar( # 绘制预测区间 aes(ymin = lwr, ymax = upr), width = 0.2, color = "grey" ) + labs(title = "预测 vs 真实", x = "真实油耗(MPG)", y = "预测油耗(MPG)") ``` ![预测与真实对比图](https://via.placeholder.com/400x300/EFEFEF/000?text=示例图:预测误差区间) --- #### **5. 注意事项与常见问题** - **变量类型检查**:若自变量含因子变量(如`cyl`为分类变量),需提前转换为`factor` - **新数据格式**:预测时`newdata`的列名数据类型必须与训练数据一致 - **多重共线性**:检查方差膨胀因子(VIF),若VIF>10需删除高相关变量 ```r library(car) vif(model) # 输出各变量的VIF ``` - **异方差性**:若残差方差不稳定,可使用加权最小二乘法(`lm(..., weights=...)`) --- ### **总结** R语言中多元线性回归预测的核心步骤为: 1. **模型构建**:用`lm()`拟合数据 2. **预测生成**:`predict()`函数指定`newdata` 3. **评估优化**:误差指标+可视化验证 4. **结果解释**:关注预测区间变量贡献 通过上述流程,可系统性地实现从建模到预测的完整分析,适用于经济、生物、工程等领域的数据预测任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值