You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言:为波士顿房价散点图添加最优拟合线及技术咨询

回答你的问题:是否需要计算截距和斜率?怎么操作?

Great question! Let's break this down step by step for you:

核心结论:不需要手动提前计算截距和斜率

R的内置函数可以直接帮你完成最优拟合线的绘制,同时如果你需要截距、斜率的具体数值,或者要验证RM的显著性,也能轻松提取相关结果——完全不用手动计算。

步骤1:绘制散点图并叠加线性拟合线(原始数据)

基于你已有的代码,只需要加一行就能叠加拟合线,自动帮你计算最优的截距和斜率:

# 读取数据集
BostonHousingW.df <- read.csv("BostonHousing.csv")

# 绘制散点图
plot(BostonHousingW.df$Price ~ BostonHousingW.df$RM, 
     xlab="Avg # of Rooms", 
     ylab="Median Home Price", 
     main="Boston Housing Data\n Median Home Price and Avg # of Rooms")

# 叠加最优线性拟合线(自动计算截距和斜率)
abline(lm(Price ~ RM, data=BostonHousingW.df), col="red", lwd=2)

这里的lm()函数会自动完成线性回归拟合,算出最优的截距和斜率,abline()直接调用这个模型就能把拟合线画在散点图上(col="red"和lwd=2是美化参数,让拟合线更显眼)。

步骤2:如果需要获取截距和斜率的具体数值

如果你想查看这些数值,或者需要用它们做后续预测/分析,可以先拟合模型再提取:

# 拟合线性回归模型
lm_model <- lm(Price ~ RM, data=BostonHousingW.df)

# 直接提取截距和斜率
coef(lm_model)
# 输出示例:
# (Intercept)          RM 
#  -34.67062    9.10211

更重要的是,如果你要判断RM是否显著(是否对Price有线性影响),可以用summary()查看详细统计结果:

summary(lm_model)

在输出里重点看RM对应的Pr(>|t|)值:

  • 如果这个值小于0.05(常用的显著性水平),结合散点图的线性趋势,说明RM对Price有显著线性影响,应该保留;
  • 如果p值很大且散点图没有明显趋势,就考虑把RM从后续的对数线性回归中剔除。

关于后续对数线性回归和预测的小提示

如果你后续要做ln(Price)的对数线性回归,拟合和绘图的逻辑类似,这里给你一个快速示例:

# 拟合对数线性模型
log_lm_model <- lm(log(Price) ~ RM, data=BostonHousingW.df)

# 绘制原始Price vs RM的散点图,叠加对数模型的拟合线(转换回原始价格尺度)
plot(BostonHousingW.df$Price ~ BostonHousingW.df$RM, 
     xlab="Avg # of Rooms", 
     ylab="Median Home Price", 
     main="Boston Housing Data\n Median Home Price and Avg # of Rooms (Log-Linear Fit)")

# 生成RM序列的预测值(转换回原始价格尺度)
rm_seq <- seq(min(BostonHousingW.df$RM), max(BostonHousingW.df$RM), length.out=100)
pred_price <- exp(predict(log_lm_model, newdata=data.frame(RM=rm_seq)))

# 绘制对数模型的拟合线
lines(rm_seq, pred_price, col="blue", lwd=2)

内容的提问来源于stack exchange,提问作者Andrea Whittaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 23:32:28