1. 程式人生 > >R語言數據挖掘中的,“回歸分析”是如何操作的?

R語言數據挖掘中的,“回歸分析”是如何操作的?

r數據挖掘 分析技術 高級公開課

回歸分析是對多個自變量(又稱為預測變量)建立一個函數來預測因變量(又稱為響應變量的值)。


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


線性回歸


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


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的預測值


技術分享


本文出自 “中科院計算所培訓” 博客,謝絕轉載!

R語言數據挖掘中的,“回歸分析”是如何操作的?