在R中,我正在尝试将线性叠加的结果叠加到绘图上。我想创建一个散点图,显示
TrainRegRpt$train.data.Price
(原始价格)在x轴上,
TrainRegress$fitted.values
(来自lm模型的预计价格)在y轴上,并通过绘制的点绘制最佳拟合线。
这是我的一些代码:
TrainRegress <- lm(PriceBH.df$Price ~ ., data=PriceBH.df, subset = train.rows)
TrainRegRpt <- data.frame(train.data$Price, TrainRegress$fitted.values, TrainRegress$residuals)
x <- as.vector(TrainRegRpt$TrainRegress.fitted.values) # on the x-axis
y <- as.vector(TrainRegRpt$train.data.Price) #on the y-axis
plot(TrainRegRpt$train.data.Price ~ TrainRegRpt$TrainRegress.fitted.values)
abline(x,y)
散点图也一样:
x <- as.vector(newdf$fv)
y <- as.vector(newdf$p)
p <-as.vector(TrainRegRpt$train.data.Price) # my y-axis in the scatter plot
fv <- as.vector(round(TrainRegRpt$TrainRegress.fitted.values,2) # my y-axis in the scatter plot
newdf<- dfrm <- data.frame(p,fv)
plot(newdf$p ~ newdf$fv)
abline(x,y)
summary(TrainRegress)
以下是TrainRegress的摘要:从TrainRegress的摘要中获得的系数:
Intercept Estimate
................30.318
CRIM.........0.245
CHAS......5.8368
RM..........8.4846
我按如下方式提取了y截距:
y.interceptval <-summary(TrainRegress)$coefficients[1]
我将在y.interceptval
中使用abline(y.interceptval,***?slope***)
,但是我需要知道如何计算斜率。如何计算要传递给abline(y.interceptval, slope)
的斜率?
我这里有5本教科书没有帮助,我的教授拒绝帮助我,我真的希望它能做到完美! 谢谢!!!
plot(TrainRegRpt$train.data.Price ~ TrainRegRpt$TrainRegress.fitted.values)<br>
abline(x,y)
答案 0 :(得分:0)
似乎您已经计算出斜率。使用lm()
进行线性回归分析得出的斜率就是系数。因此,在这种情况下,30.318
是您的Y轴截距。
这为您提供了以下回归方程:
Y = 30.318 + 0.245*(CRIM) + 5.8368*(CHAS) + 8.4846*(RM)
数字0.245
,5.8368
和8.4846
是每个变量的系数,它们也是各个斜率。
另外,关于拟合残差图与残差图的一件事,似乎是您颠倒了abline()
应该是的方式(即,不是abline(x,y)
应该是abline(y,x)
。
编辑,您使用了abline(x,y)
,但是绘制的数据是
plot(TrainRegRpt$train.data.Price ~ TrainRegRpt$TrainRegress.fitted.values)
({train.data.Price
与Fitted Values
而非x
与y
)。