簡體   English   中英

如何繪制R中的線性回歸?

[英]how to plot the linear regression in R?

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

我想繪制顯示我處理的數據的線性回歸的線。 我嘗試過:

abline(fit)
abline(fit$coefficients[[1]],c(fit$coefficients[[2]],fit$coefficients[[3]]))

問題是我的公式是這樣的:

y=a+b*year+c*quarter

而不是更簡單的東西:

y=a+b*year

那么我如何繪制顯示線性回歸的那條線呢?

是否可以用abline繪制線?

你在尋找predict函數嗎?

例如:使用lines(predict(fit))將給出:

在此輸入圖像描述

您還可以使用它來預測將來的數據與計算的系數對齊。 例如

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

在此輸入圖像描述

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

在此輸入圖像描述

騙子。 這些都是合理的解決方案,但它們不能滿足您的要求。 現在你要求的是稍微涼爽和完全不切實際,但可以使用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))

現在rgl中的魔法發生了:

library(rgl)

persp3d(x, y, z, col="lightblue")

在此輸入圖像描述

這里沒有公正,但它很漂亮,你可以移動它。

到底是什么,讓我們添加你原來的觀點

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

在此輸入圖像描述

然后,如果您願意,可以重新格式化軸標簽。

在TeachingDemos包中的Predict.PlotTkPredict函數將繪制其中一個預測變量與響應變量之間的關系,該變量以其他預測變量的值為條件。 Predict.Plot可以非常簡單地查看來自不同條件的多行,而TkPredict可以讓您以交互方式更改正在調整的值(並生成Predict.Plot代碼以重新創建當前圖)。

這些函數對於多個預測變量的回歸模型是通用的,但不如分解時間序列那么好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM