R 對數變換 《回歸分析與線性統計模型》page103


BG:在box-cox變換中,當λ = 0時即為對數變換。

當所分析變量的標准差相對於均值而言比較大時,這種變換特別有用。對數據作對數變換常常起到降低數據波動性和減少不對稱性的作用。。這一變換也能有效消除異方差性

library(MASS)
library(openxlsx)
data= read.xlsx("data104.xlsx",sheet = 1) #導入數據
attach(data)

  

op<-par(mfrow=c(2,2),mar=0.4+c(4,4,1,1),oma=c(0,0,2,0)) #將四張圖放在一起,調整邊界。(以后也采用此行)
plot(size,effort)            #圖4-4(a)
plot(log(size),log(effort))  #圖4-4(b)
#繪制頻率分布直方圖
hist(effort) #圖4-5(a)
hist(size)   #圖4-5(b)

  

 

 

 

 effor 和 size 這兩個變量的頻率分布圖表明,它們並不滿足正態分布。為了接近正態分布,必須變換這些變量(通過頻率分布圖判斷變量是否滿足正態分布)

1.先進行基本的線性回歸,利用得到的模型進行box-cox變換

 

lm1=lm(effort~size+t14)  #擬合線性回歸模型
summary(lm1)
#繪制殘差圖進行殘差分析
plot(fitted(lm1),resid(lm1),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")
boxcox(lm1,lambda=seq(0,1,by=0.1))  #進行box-cox變換

  

 

 從殘差圖可以看到誤差項不滿足Gauss-Markov假設。

右圖的Box-Cox變換建議問哦們λ可以取在[0.05,0.6]范圍內,對投入工作量(effort) 取對數有一定的可信度(λ=0 幾乎落在置信域內)

 進行對數變換

lm2=lm(log(effort)~size+t14)   
summary(lm2)
#繪制殘差圖
plot(fitted(lm2),resid(lm2),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")

  

書上的結果時殘差范圍大致在[-25,40]內,不滿足Gauss-Markov假設

與書上結果不符,上圖參擦汗圖表示這個模型是可行的。

2.試圖擬合 effort 與 log(size),t14 的回歸方程。

lm3=lm(effort~log(size)+t14)  
summary(lm3)
#繪制殘差圖
plot(fitted(lm3),resid(lm3),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")
#box-cox變換求λ
boxcox(lm3,lambda=seq(0,1,by=0.1))

  

 

 根據右圖,Box-Cox變換建議我們取 λ=0

建立如下方程 ln(effort) = β0 + β1ln(size) + β2 t14 + e

lm4=lm(log(effort)~log(size)+t14) #進行線性回歸  
summary(lm4)
#繪制殘差圖
plot(fitted(lm4),resid(lm4),cex=1.2,pch=21,col="red",bg="orange",xlab="Fitted value",ylab="Residuals")
#進行box-cox變換
boxcox(lm4,lambda=seq(0,1,by=0.1))

 

 因為λ=1 包含在box-cox圖像所示的置信域內,說明不進行變換也是ok的

而且通過殘差分析,可以看出這個模型是合理的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM