方差膨脹因子 VIF 學習

2021-10-03 09:05:24 字數 3153 閱讀 3710

該資料集有7個變數,其中gnp.deflator可以作為yyy

結 論:

\color

結論:從上面的結果可以看出,6個自變數中,只有兩個變數的p

pp值是顯著的,此處看結果,要知道,多元線性回歸的檢驗兩種:一種是對回歸方程的檢驗(f檢驗),另一種是對各個回歸係數的檢驗,因為在回歸方程中,即使回歸方程顯著,也不能說明每個自變數對y的影響都是顯著的,因此我們總想從回歸方程中剔除哪些次要的,可有可無的變數,重新建立更簡單的方程。所以需要我們對每個自變數進行顯著性檢驗。其中對自變數進行檢驗使用的t檢驗,從上面的summary()可以看出,residual standard error是sigma_hat的估計

# 顯然此處p=6,此處的model$fitted_value與predict(model)是相同的值

# 這個和glm模型的值是不一樣的

# sig_2=sum((data$gnp.deflator-predict(model))*(data$gnp.deflator-predict(model)))

sig_hat=sqrt(sig_2/9)

#我一直不知道r裡面把擬合的sigma_hat怎麼取出來,可以以下面的方式

#不要以為summary(model)只是返回結果,如果輸入a=summary(model)

#那麼a是乙個物件,那麼就可以以a$sigma來獲得sigma的估計值了

# 其餘的屬性也是類似的,其中擬合優度為a$r.squared

y=data[,1];

design_matrix=data[,c(-1)];

design_matrix=cbind(interc=rep(1,16),design_matrix)#直接ctrl+enter就可以執行

此處可以看到,對於截距項的檢驗也是t檢驗算出來的(雖然一般不看這個),

檢驗的公式為t=β

^j(c

jj)σ

^t=\frac})\hat\sigma}

t=(​cj

j​)σ

^β^​

j​​該包中的vif不能對一元線性回歸進行計算,會報錯

library(car)

print(vif(model))#如果不用print,會有警告

#計算gnp的方差膨脹因子

data1=data[,c(-1)]

model_gnp=lm(gnp~.,data=data1)

r_square=summary(model_gnp)$r.squared

vif_gnp=1/(1-r_square)

print(vif_gnp)

可以看到完全一致,但是書上說vif有另乙個定義:對自變數進行中心標準化後,自變數的相關陣的主對角線元素vif

=cjj

vif=c_

vif=cj

j​,也是xjx_

xj​的方差擴大因子

#自變數的相關陣

scale_fun=function(dat)

#這個地方和之前的標準化不一樣,這個是除以了殘差平方和的開平方,而非標準差

#,所以是不能是使用scale函式

可以看到兩者確實是相等的

pairs(data)

cor(data[,2:7])

可以看到確實存在嚴重的多重共線性

設自變數的個數為p

pp,設計矩陣的維數為(n,

p+1)

(n,p+1)

(n,p+1

),那麼1−r

VIF 多重共線性膨脹因子

方差膨脹係數 variance inflation factor,vif 是衡量多元線性回歸模型中復 多重 共線性嚴重程度的一種度量。它表示回歸係數估計量的方差與假設自變數間不線性相關時方差相比的比值。通常以10作為判斷邊界。當vif 10,不存在多重共線性 當10 vif 100,存在較強的多重共...

Kruskal Wallis單因子方差分析

source 如果你在進行多個群組之間比較時,因為群組不滿足正態分佈而不能使用anova多比較,那麼你可以使用kruskal wallis檢驗。該檢驗類似於前面兩個樣本的wilcox檢驗。假設你想看看以下4個數值集合的均值是否統計相似 group a 1,5,8,17,16 group b 2,16...

方差學習總結

在分析之前,要嚴格區分乙個概念是在概率學上的定義還是在統計學上的定義。概率學比統計學更加的抽象一點,概率學研究乙個事件的理想的情況,但是在真實的世界,這種理想的情況是很難或者不可能達到的,所以利用統計學中的樣本來估計這個理想的結果。概率論中方差用來度量隨機變數和其數學期望 均值 之間的偏離程度。統計...