多重共线性诊断与R语言实践
生活随笔
收集整理的這篇文章主要介紹了
多重共线性诊断与R语言实践
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鄙人學習筆記
參考文獻:《計量經濟學模型及R語言應用》-王斌會
文章目錄
- 變量的多重共線性診斷
- 特征根分析法
- 條件數法
- 方差擴大因子法
- 直觀判定法
- 舉個例子(R語言)
變量的多重共線性診斷
多元線性回歸模型的一個基本假設,就是要求自變量矩陣X列滿秩,即秩rank(X)=p,也就是要求X的列向量之間線性無關。如果X的列不滿秩,則(X’X)-1將不存在,于是基于最小二乘回歸系數估計,b = (X’X)-1X’y將不存在,所以很難得出穩定的結果。
考慮線性回歸模型:
這里假定自變量矩陣X已中心標準化,且rank(X)=p, 這時X’X/(n-1)為相關矩陣R。
下面給出幾個常用的復共線性診斷方法。
特征根分析法
條件數法
方差擴大因子法
一般標準:
①當0<VIF≤5時,沒有復共線性;
②當5<VIF≤10時,有較弱的復共線性;
③當10<VIF≤100時,有中等或較強的復共線性;
④當VIF>100時,有嚴重的復共線性。
由于VIF=1/TOL (TOL稱為容忍度),所以也可以用TOL來診斷復共線性。
直觀判定法
舉個例子(R語言)
數據:
輸入:
Xdf <- testdf[, -1] Xscale <- scale(Xdf, T, T) #scale(data, center=T,scale=T) #1.center和scale默認為TRUE #2.center為TRUE 表示數據中心化 #3.scale為TRUE 表示數據標準化 Rtest <- (t(as.matrix(Xscale)) %*% as.matrix(Xscale))/14 # * 是表示兩個矩陣中對應的元素的乘積 # %*% 表示通常意義下的矩陣乘積,要求第一個矩陣的列數與第二個矩陣行數相等。 #相關矩陣 = t(scale(X))*scale(X)/(n-1) #備注:X為解釋變量矩陣,維度是n*p;n為樣本量 (Rtest) (R01 <- cor(Xscale)) #查看我們自制的相關矩陣和R給出的相關矩陣是否一樣#1.特征分析法 (lamda = eigen(Rtest)$value) #本次實驗的相關系數矩陣最小特征根為0.1626082 >0.1 則不存在復共線性 #2.條件數法 (CN = max(lamda)/min(lamda)) #本次實驗中CN = 11.53401,0<= CN <= 30, 則不存在多重共線性 #3.方差擴大因子法(VIF) R2 <- summary(lm(x2 ~ x1 + x3, data = testdf))$r.sq (VIF1 <- 1/(1 - R2)) #本次實驗中VIF = 3.383924,0<= VIF <-5,同樣沒有復共線性輸出:
總結
以上是生活随笔為你收集整理的多重共线性诊断与R语言实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么查图片是否有版权
- 下一篇: 屈原列传及翻译注释