如何在R中绘制线性回归?
我想在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&
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))