r语言多重共线性_R语言与计量经济学(二)多重共线性
生活随笔
收集整理的這篇文章主要介紹了
r语言多重共线性_R语言与计量经济学(二)多重共线性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(PS:個人不是經濟專業的,這個只是個人的一些興趣,如果哪里有問題希望指出。)
library(ggplot2) library(foreign) data7.1<-read.dta("case 7-1.dta") View(data7.1)#先看下數據這里看下食物量和進出口之間的關系,先看下食物和進口出口單個之間的關系以及散點圖。同樣用ggplot2擬合出擬合曲線。
#ggplot2 $擬合圖 p<-ggplot(data = data7.1,aes(IN,FOOD)) p+geom_point(colour="black",shape=3)+geom_smooth(method = "lm",colour="black",level=0.95)p<-ggplot(data = data7.1,aes(EX,FOOD)) p+geom_point(colour="black",shape=3)+geom_smooth(method = "lm",colour="black",level=0.95)可以看到食物和進出口基本都是正相關。
然后看下進出口同時作為解釋變量時的擬合效果
lm1<-lm(FOOD~IN+EX , data=data7.1) summary(lm1)這里看到模型整體的擬合效果不管是可決系數 還是F統計量都挺好,但是可以看到進口的系數是負值,意味著食物與進口是負相關,與實際食物與進口的關系不相符。可能是出現多重共線性,這里給出三個檢測方法,特征值,條件數和方差擴大因子VIF。
X<-data.frame(data7.1[,3] , data7.1[,4])#把解釋變量放進一個數據框 R<-cor(X)#相關系數 lamda<-eigen(R)$value#特征分析,最小特征值若小于0.01 lamdaCN<-max(lamda)/min(lamda)#條件數 CNr2<-summary(lm(x~x1+x2...))$r.sq#決定系數 R<-sqrt(r2)#復相關系數 R VIF1<-1/(1-r2)#方差擴大因子 VIF1特征值lamda最小值小于0.01則說明共線性嚴重,
CN和lamda的最大值和最小值的比值,大于1000則說明共線性嚴重。
VIF值是根據解釋變量之間進行擬合,R為解釋變量的負相關系數,這里為0.953,說明解釋變量之間相關性較高,VIF若大于100則說明共線性嚴重。
下面是根據AIC準則的對解釋變量進行逐步回歸。
#逐步回歸 AIC準則 step1<-step(lm1) step1這里根據AIC最小應該兩個解釋變量都選,但是與事實不符,我們可以看到第二小的AIC是減去IN變量,而且AIC的值265和最小261差不多,所以我們選擇減去IN,讓EX作為解釋變量與FOOD做回歸。
summary(lm(FOOD~EX,data=data7.1))可以看到模型效果好很多。
這個數據可能沒有體現很強的共線性,但檢測和解決多重共線性的步驟大體這樣。
還有一些其他的解決共線性問題的方法,嶺回歸啥的,本科時候看過,忘的差不多了
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的r语言多重共线性_R语言与计量经济学(二)多重共线性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试mysql中怎么创建索引_阿里面试:
- 下一篇: mysql主从脚本_shell脚本部署m