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