繁体   English   中英

用置信区间绘制线性回归线

[英]Plotting Linear Regression Line with Confidence Interval

我试图绘制房屋的“平方英尺”如何影响相同的“销售价格(1000 美元)”。 特别是,我希望将来自 Square ft vs. Sales price 的系数线绘制在该线周围并叠加原始数据点的假设灰色区域。

我试图用几种不同的方式来完成这个。 我尝试过的一种方法是使用 library(jtools) 中的函数 effect_plot。 我使用了从https://cran.r-project.org/web/packages/jtools/vignettes/effect_plot.html找到的编码。

但是当我运行这个函数时,我没有得到一个情节,我只是得到一个错误:FUN(X[[i]], ...) 中的错误:找不到对象' Sales Price (in $1000) '。

我尝试的第二种方法是手动创建一个新向量并尝试绘制置信区间。 我的代码灵感来自Plotting a 95% confidence interval for a lm object

但是有了这个,我在 conf_interval 行中收到一个错误: eval(predvars, data, env) 中的错误:找不到对象“平方英尺”。 我不知道如何纠正这个错误。

最后,我尝试使用 library(ggplot2) 来完成来自https://rpubs.com/aaronsc32/regression-confidence-prediction-intervals 的灵感的问题。

但是每次我运行 R 时,它都会创建一个坐标平面,在平面的中心有一个点; 没有线,没有真实的点,没有假设的置信区间。 没有错误,我也无法弄清楚编码的问题。

library("jtools")
LRA1 <- lm(`Sales Price (in $1000)` ~ `Square feet` + Rooms +
 Bedrooms + Age,data=HomedataSRS) #LRA1 is the regression model
effect_plot(LRA1, pred = 'Square feet', inherit.aes = FALSE,
 plot.points = TRUE) #function should create graph
newSF = seq(min(HomedataSRS$`Square feet`),
            max(HomedataSRS$`Square feet`), by = 0.05)
conf_interval <- predict(LRA1, newdata=data.frame(x=newSF),
                 interval="confidence",level = 0.95)
plot(HomedataSRS$`Square feet`, HomedataSRS$`Sales Price (in $1000)`,
     xlab="Square feet", ylab="Sales Price(in $1000)",     
     main="Regression")
abline(LRA1, col="lightblue")
matlines(newSF, conf_interval[,2:3], col = "blue", lty=2)
library(ggplot2)
SFHT <- HomedataSRS %>% select(1:2) 
#This is to select the 2 variables I'm working with
ggplot(SFHT, aes(x='Square feet', inherit.aes = FALSE, 
       y='Sales Price (in $1000)')) +
       geom_point(color='#2980B9', size = 4) +
       geom_smooth(method=lm, color='#2C3E50')

数据: 我使用 set.seed(1) 对该数据进行了 n=35 随机样本

不应引用aes()参数。 尝试

ggplot(SFHT, aes(x = `Square feet`, y = `Sales Price (in $1000)`)) +
   geom_point(color='#2980B9', size = 4) +
   geom_smooth(method=lm, color='#2C3E50')

或者,您可以使用新的aes_string()函数:

ggplot(SFHT, aes_string(x='Square feet',y='Sales Price (in $1000)')) +
   geom_point(color='#2980B9', size = 4) +
   geom_smooth(method=lm, color='#2C3E50')

包站点上提供了更多信息: https : //ggplot2.tidyverse.org/reference/aes_.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM