Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中绘制线性回归?_R_Linear Regression - Fatal编程技术网

如何在R中绘制线性回归?

如何在R中绘制线性回归?,r,linear-regression,R,Linear Regression,我想在R中做下面的线性回归 year<-rep(2008:2010,each=4) quarter<-rep(1:4,3) cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0) plot(cpi,xaxt="n",ylab="CPI",xlab="") axis(1,labels=paste(year,quarter,sep="C"),at=1:12,las=3) fit&

我想在R中做下面的线性回归

year<-rep(2008:2010,each=4)
quarter<-rep(1:4,3)
cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0)
plot(cpi,xaxt="n",ylab="CPI",xlab="")
axis(1,labels=paste(year,quarter,sep="C"),at=1:12,las=3)
fit<-lm(cpi~year+quarter)
问题是我的公式的形式是:

y=a+b*year+c*quarter
而不是像这样简单的事情:

y=a+b*year
那么我怎样才能画出线性回归的线呢


是否可以用abline来划清界线?

cpi您是否正在寻找
预测功能

cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0)
cpits <- ts(cpi, start=2008, frequency=4)
plot(decompose(cpits))
例如:使用
行(预测(拟合))
将给出:

您还可以使用它来预测与计算系数一致的未来数据。例如

# plot the existing data with space for the predicted line
plot(c(cpi,rep(NA,12)),xaxt="n",ylab="CPI",xlab="",ylim=c(162,190))

# plot the future predictions as a line using the next 3 year periods
lines(13:24,
      predict(
        fit,
        newdata=data.frame(year=rep(c(2011,2012,2013),each=4),quarter=rep(1:4,3))
             )
     )

year<-rep(2008:2013,each=4)
axis(1,labels=paste(year,quarter,sep="C"),at=1:24,las=3)
#用预测线的空间绘制现有数据
图(c(cpi,rep(NA,12)),xaxt=“n”,ylab=“cpi”,xlab=”,ylim=c(162190))
#使用未来3年的周期,将未来预测绘制为一条直线
台词(13:24,
预测(
适合
newdata=data.frame(年份=rep(c(201120122013),每个=4),季度=rep(1:4,3))
)
)

年骗子。这些都是合理的解决方案,但它们不能满足你的要求。现在,您所要求的稍微酷一点,完全不切实际,但可以使用
rgl
完成

f <- function(x, y, coefs){
  z <- coefs[1] + coefs[2] * x + coefs[3] * y
  z
}

x <- seq(from=min(year), to=max(year), length.out=100)
y <- seq(from=min(quarter), to=max(quarter), length.out=100)

z <- outer(x, y, f, coefs=coef(fit))

这里做得不公平,但它很漂亮,你可以移动它

该死的,让我们添加你的原始点

points3d(year, quarter, cpi, size=5, col="red")

错误在于数据的格式化方式。这是另一个选择:

year<-seq(from=2008,to=2010.75,by=.25)
cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0)
df <- data.frame(year,cpi)
plot(df)+abline(lm(df$cpi~df$year))

year教学记忆软件包中的
Predict.Plot
TkPredict
功能将根据其他预测值绘制其中一个预测值和响应变量之间的关系
Predict.Plot
使查看不同条件下的多行变得相当简单,而
TkPredict
允许您以交互方式更改条件值(并将生成
Predict.Plot
代码以重新创建当前绘图)


这些函数一般用于多元预测的回归模型,但不如分解时间序列好。

对于多元回归系数,回归不代表直线。也许你想要stats::decompose。就可读性而言,我从来没有真正喜欢过3D图形,但在明确回答问题时使用+1。@最近的邮件如果你实际使用rgl设备并移动图形,它们的可读性会更好。卢克·蒂尔尼写过,但我没试过。真是个骗子。着手解释一下那架飞机。@DWin我从来没说过它是实用的。我这样做是为了好玩。不过,严肃地说,你可能会发现,在两个预测因子都很大的情况下,存在很大的残差。这绝对不是一个出版物图表,但它有助于帮助学生概念化更高维度的回归发生了什么,以及为什么在常规xy散点图上绘制多元线性回归的结果变得基本不可能。这忽略了四分之一,这不是问题的答案。谢谢@最近的邮件,但你能告诉我为什么它在直线(a=0,b=1)上不起作用吗?预测没有直线。是的,你是对的@DWin,我认识到我的错误,这是一个多项式模型,所以没有直线,我的错这是“正确”的答案。认为年度和季度是“独立”的观点是错误的(有人甚至可能会说是荒谬的)。@Dwin-你能再解释一下吗?难道你不能假设温度总体呈线性上升,但每个季节的温度都在波动吗?这是否会使我基于
预测的答案在统计上无效?也许我没有领会你的意思。你说得对@thelatemail,这个例子取自一本书,该书考虑了消费者价格指数的年度波动,以及每年内部各季度的波动
points3d(year, quarter, cpi, size=5, col="red")
year<-seq(from=2008,to=2010.75,by=.25)
cpi<-c(162.2,164.6,166.5,166.0,166.4,167.0,168.6,169.5,170.0,172.0,173.3,174.0)
df <- data.frame(year,cpi)
plot(df)+abline(lm(df$cpi~df$year))