R語言資料探勘中的,“迴歸分析”是如何操作的?

shenmanli發表於2017-08-03
迴歸分析是對多個自變數(又稱為預測變數)建立一個函式來預測因變數(又稱為響應變數的值)。


例如,銀行根據房屋貸款申請人的年齡、收入、開支、職業、負擔人口,以及整體信用限額等因素,來評估申請人的房貸風險。


線性迴歸


線性迴歸是利用預測變數的一個線性組合函式,來預測響應變數的統計分析方法,該線性迴歸模型的形式如下:


y = c0 + c1x1 + c2x2 + …+ ckxk;


x1, x2,… xk為預測變數,y為對預測的響應變數。


下面將在澳大利亞消費者價格指數(CPI)的資料上使用函式lm做線性迴歸分析


該資料為2008年到2010年澳大利亞的季度消費者價格指數。


1、需要建立資料集並繪製散佈圖。在下面的程式碼中,使用函式axis手動新增一個橫座標,引數las=3設定文字為垂直方向。


year <- rep(2008:2010, each=4)
quarter <- rep(1:4, 3)
cpi <- c(162.2, 164.6, 166.5, 166.0,
166.2, 167.0, 168.6, 169.5,
171.0, 172.1, 173.3, 174.0)
plot(cpi, xaxt="n", ylab="CPI", xlab="")
# draw x-axis
axis(1, labels=paste(year,quarter,sep="Q"), at=1:12, las=3)


澳大利亞2008-2010季度消費者價格指數



2、檢視CPI與其他變數之間的相關係數,包括year(年份)和quarter(季度)這兩個變數
cor(year,cpi)
cor(quarter,cpi)


3、在前面的資料上使用函式lm建立一個線性迴歸模型,其中year和quarter為預測變數,CPI為響應變數。


fit <- lm(cpi ~ year + quarter)
fit


根據上面建立的線性模型,CPI的計算公式為:


cpi = c0 + c1 * year + c2 * quarter
其中,c0, c1, c2為擬合模型fit的係數。因此,2011年的CPI值可以計算如下。


(cpi2011 <- fit$coefficients[[1]] + fit$coefficients[[2]]*2011 + fit$coefficients[[3]]*(1:4))


該模型的更多細節可以通過下面的程式碼獲得。


attributes(fit)
fit$coefficients


觀測值與擬合結果的殘差使用函式residuals 來計算。


residuals(fit)
summary(fit)


線性迴歸模型的預測圖


下面的程式碼繪製擬合模型的影像,如圖所示
plot(fit)




擬合模型的3D影像


還可以繪製擬合模型的3D影像,下面程式碼中使用函式scatterplot3d建立一個3D


library(scatterplot3d)
s3d <- scatterplot3d(year, quarter, cpi, highlight.3d=T, type="h", lab=c(2,3))
s3d$plane3d(fit)





擬合模型


基於擬合模型,20l1年的CPI可以通過如下方式預測,在後圖中預測值用小三角表示。


data2011 <- data.frame(year=2011, quarter=1:4)
cpi2011 <- predict(fit, newdata=data2011)
style <- c(rep(1,12), rep(2,4))
plot(c(cpi, cpi2011), xaxt="n", ylab="CPI", xlab="", pch=style, col=style)
axis(1, at=1:16, las=3,
labels=c(paste(year,quarter,sep="Q"), "2011Q1", "2011Q2", "2011Q3", "2011Q4"))


基於線性迴歸模型得到的2011年CPI的預測值


相關文章