如何通过线性回归分析计算斜率?

时间:2020-05-12 04:42:57

标签: r

在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)

Plot

1 个答案:

答案 0 :(得分:0)

似乎您已经计算出斜率。使用lm()进行线性回归分析得出的斜率就是系数。因此,在这种情况下,30.318是您的Y轴截距。

这为您提供了以下回归方程:

Y = 30.318 + 0.245*(CRIM) + 5.8368*(CHAS) + 8.4846*(RM)

数字0.2455.83688.4846是每个变量的系数,它们也是各个斜率。

另外,关于拟合残差图与残差图的一件事,似乎是您颠倒了abline()应该是的方式(即,不是abline(x,y)应该是abline(y,x)

编辑,您使用了abline(x,y),但是绘制的数据是

plot(TrainRegRpt$train.data.Price ~ TrainRegRpt$TrainRegress.fitted.values)

({train.data.PriceFitted Values而非xy)。