欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用VIF實現(xiàn)檢測多重共線性

 更新時間:2023年12月26日 11:37:13   作者:python收藏家  
多重共線性是指多元回歸模型中有兩個或兩個以上的自變量,它們之間具有高度的相關性,本文主要介紹了如何使用VIF實現(xiàn)檢測多重共線性,需要的可以參考下

多重共線性是指多元回歸模型中有兩個或兩個以上的自變量,它們之間具有高度的相關性。當某些特征高度相關時,我們可能很難區(qū)分它們對因變量的個體影響。多重共線性可以使用各種技術來檢測,其中一種技術是方差膨脹因子(VIF)。

在VIF方法中,我們選擇每個特征并將其與所有其他特征進行回歸。對于每個回歸,因子計算如下:

其中,R平方是線性回歸中的決定系數(shù)。它的值介于0和1之間。

正如我們從公式中看到的,R平方的值越大,VIF越大。因此,VIF越大,相關性越強。這與較高的R平方值表示較強的共線性的事實一致。通常,VIF高于5表示高多重共線性。

使用statmodels實現(xiàn)VIF

statsmodels提供了一個名為variance_inflation_factor()的函數(shù)來計算VIF。

語法:statmodels.stats.outliers_influence.variance_inflation_factor(exog,exog_idx)

主要參數(shù):

exog:一個數(shù)組,包含對其執(zhí)行線性回歸的特征。

exog_idx:要測量其對其他特征的影響的附加特征的索引。

示例

下例中使用的數(shù)據(jù)集包含500人的身高、體重、性別和體重指數(shù)。這里的因變量是指數(shù)。

import pandas as pd  
  
# the dataset   
data = pd.read_csv('BMI.csv') 
  
# printing first few rows 
print(data.head())

輸出

   Gender  Height  Weight  Index
0    Male     174      96      4
1    Male     189      87      2
2  Female     185     110      4
3  Female     195     104      3
4    Male     149      61      3

方法

每個特征索引都被傳遞給variance_inflation_factor()以找到相應的VIF。

這些值以Pandas DataFrame的形式存儲。

from statsmodels.stats.outliers_influence import variance_inflation_factor 

# creating dummies for gender 
data['Gender'] = data['Gender'].map({'Male':0, 'Female':1}) 

# the independent variables set 
X = data[['Gender', 'Height', 'Weight']] 

# VIF dataframe 
vif_data = pd.DataFrame() 
vif_data["feature"] = X.columns 

# calculating VIF for each feature 
vif_data["VIF"] = [variance_inflation_factor(X.values, i) 
						for i in range(len(X.columns))] 

print(vif_data)

輸出

  feature        VIF
0  Gender   2.028864
1  Height  11.623103
2  Weight  10.688377

正如我們所看到的,身高和體重具有非常高的VIF值,表明這兩個變量高度相關。這是預料之中的,因為一個人的身高確實會影響他們的體重。因此,將這兩個特征一起考慮會導致具有高多重共線性的模型。

到此這篇關于Python使用VIF實現(xiàn)檢測多重共線性的文章就介紹到這了,更多相關Python檢測多重共線性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python腳本編輯oss文件的實現(xiàn)示例

    python腳本編輯oss文件的實現(xiàn)示例

    本文主要介紹了python腳本編輯oss文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • Python如何篩選序列中的元素的方法實現(xiàn)

    Python如何篩選序列中的元素的方法實現(xiàn)

    這篇文章主要介紹了Python如何篩選序列中的元素的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python超詳細分步解析隨機漫步

    Python超詳細分步解析隨機漫步

    隨機游走(random walk)也稱隨機漫步,隨機行走等是指基于過去的表現(xiàn),無法預測將來的發(fā)展步驟和方向。核心是指任何無規(guī)則行走者所帶的守恒量都各自對應著一個擴散運輸定律,接近布朗運動,現(xiàn)階段主要應用于互聯(lián)網(wǎng)鏈接分析及金融股票市場中
    2022-03-03
  • Pandas:Series和DataFrame刪除指定軸上數(shù)據(jù)的方法

    Pandas:Series和DataFrame刪除指定軸上數(shù)據(jù)的方法

    今天小編就為大家分享一篇Pandas:Series和DataFrame刪除指定軸上數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python調(diào)用Jar包的兩種方式小結

    Python調(diào)用Jar包的兩種方式小結

    這篇文章主要介紹了Python調(diào)用Jar包的兩種方式小結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python單元測試工具doctest和unittest使用解析

    Python單元測試工具doctest和unittest使用解析

    這篇文章主要介紹了Python單元測試工具doctest和unittest使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • python re.match()用法相關示例

    python re.match()用法相關示例

    這篇文章主要介紹了python re.match()用法相關示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • pytorch 權重weight 與 梯度grad 可視化操作

    pytorch 權重weight 與 梯度grad 可視化操作

    這篇文章主要介紹了pytorch 權重weight 與 梯度grad 可視化操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python隨機數(shù)用法實例詳解【基于random模塊】

    Python隨機數(shù)用法實例詳解【基于random模塊】

    這篇文章主要介紹了Python隨機數(shù)用法,結合實例形式分析了基于random模塊的各種隨機數(shù)操作常用技巧,需要的朋友可以參考下
    2017-04-04
  • python輸入錯誤后刪除的方法

    python輸入錯誤后刪除的方法

    在本篇文章里小編給讀者們整理了關于python輸入錯誤后刪除的方法以及相關知識點,有興趣的朋友們學習下。
    2019-10-10

最新評論