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

如何用Python進行回歸分析與相關分析

 更新時間:2023年03月22日 17:14:54   作者:二十六夜.  
這篇文章主要介紹了如何用Python進行回歸分析與相關分析,這兩部分內容會放在一起講解,文中提供了解決思路以及部分實現(xiàn)代碼,需要的朋友可以參考下

一、前言

1.1 回歸分析

是用于研究分析某一變量受其他變量影響的分析方法,其基本思想是以被影響變量為因變量,以影響變量為自變量,研究因變量與自變量之間的因果關系。

1.2 相關分析

不考慮變量之間的因果關系而只研究變量之間的相關關系的一種統(tǒng)計方法。

二、代碼的編寫

2.1 前期準備

在編寫代碼之前,我們首先要知道需要用到的庫有哪些。分別為:pandas\numpy\statsmodels\patsy。如果沒有安裝這些庫是無法運行代碼的 ,因此需要提前安裝好這幾個庫。安裝方法我在基礎篇的第一章已經寫有,可以進行參考:如何在Python中導入EXCEL數(shù)據(jù)

然后便可以導入庫和所要處理的數(shù)據(jù)了。

import pandas as pd
import numpy as np
import statsmodels.api as sm
from patsy import dmatrices
data=pd.read_excel(r'D:\雜貨\編碼數(shù)據(jù).xlsx',sheet_name='編碼數(shù)據(jù)')

展示以下我所導入的數(shù)據(jù)的樣式:

 我準備的excel表格的數(shù)據(jù)比較多,在python中輸出出來大概就是這個樣子,至于這些數(shù)字是什么含義不用過多理會,這并不影響本篇方法的介紹。

2.2 編寫代碼

2.2.1 相關分析

首先介紹最簡單的一個數(shù)據(jù)指標:相關系數(shù)

代碼如下:

v=data['Q1'].corr(data['Q2'])#相關系數(shù)(求某兩個變量的相關系數(shù))
print(v)
v=data.corr()#求所有變量之間的相關系數(shù)
print(v)

前者是指定求某兩個變量間的相關系數(shù),而后者是直接接計算出所有變量的相關系數(shù)。

輸出結果如下:

前者:

 后者:

 2.2.2 一元線性回歸分析

代碼如下:

x=np.array(data['Q1'])#一元線性回歸分析
y=np.array(data['Q2'])
X=sm.add_constant(x)#向x左側添加截距列x0=[1,……,1]
model=sm.OLS(y,X)#建立最小二乘估計
fit=model.fit()#擬合模型
print(fit.summary())

該方法是通過矩陣的形式進行運算的,首先將要輸入的數(shù)據(jù)x,y轉換為矩陣的形式,然后再給自變量x增加一列截距列,形成X矩陣,再進行最小二乘估計,然后擬合結果。

矩陣形式:Y=X\beta

 輸出結果如下:

 2.2.3 多元線性回歸分析

vars=['Q1','Q2','Q6','Q7']#多元線性回歸分析
df=data[vars]#將輸入的數(shù)據(jù)轉換為矩陣(數(shù)組)形式
y,X=dmatrices('Q1~Q2+Q6+Q7',data=df,return_type='dataframe')
model=sm.OLS(y,X)
fit=model.fit()
print(fit.summary())

 多元的代碼的編寫形式與一元的編寫形式實質上差別不大,不同的地方在于第三行代碼,其形式為 y,X=dmatrices('Q1~Q2+Q6+Q7',data=df,return_type='dataframe'),而該行代碼的形式也是固定的,括號中的'Q1~Q2+Q6+Q7'這部分可根據(jù)個人想要模擬的方程形式編寫,Q1為因變量,Q2,Q6,Q7……等部分為自變量,個數(shù)不限;data=df部分是將轉換好的矩陣(數(shù)組)賦值給data;而return_type='dataframe'部分可以直接使用,一般不需要更改。

model=sm.OLS(y,X)進行最小二乘估計,fit=model.fit()進行模型的擬合,最后輸出的fit.summary()即我們所需要的表格。

輸出結果如下:

 補充:

在此附上關于多元回歸模型的一些內容,可幫助理解矩陣形式的回歸模型。(摘自:《計量經濟學基礎》張曉峒)

2.2.4 廣義線性回歸分析

廣義的線性回歸分析包括四種模型,分別為:正態(tài)分布擬合;二項分布擬合;泊松分布擬合;伽馬分布擬合。

本人常用二項分布,因此本篇以二項分布為例進行介紹。

代碼如下:

vars2=['Q1','Q2']#廣義線性回歸分析
vars1=['Q6','Q7','Q8','Q9']
glm_binom=sm.GLM(data[vars2],data[vars1],family=sm.families.Binomial())
res=glm_binom.fit()
print(res.summary())

需要注意的是:若在廣義線性回歸分析中的vars2的數(shù)據(jù)換成0-1形式的,則其結果與logistic回歸分析的結果一致,即可以說0-1形式的因變量的廣義線性回歸為邏輯回歸。

輸出結果如下:

 2.2.5 logistic回歸分析

代碼如下:

vars1=['Q6','Q7','Q8','Q9']
logit_mod=sm.Logit(data['Q13|3'],data[vars1])#logistic回歸分析,注意:data['Q13|3']的位置里的數(shù)據(jù)必須是0-1形式?。?!
logit_res=logit_mod.fit(disp=0)
print(logit_res.summary())

logistic回歸的代碼的編寫形式與前面幾個回歸差別不大,理解起來不難,就不再重復講述。但需要注意的是,在使用邏輯回歸時,sm.Logit(data['Q13|3'],data[vars1])中的data['Q13|3']的數(shù)據(jù)必須為0-1形式,亦可說必須為虛擬變量的形式,否則程序會報錯。這是邏輯回歸本身的含義,具體可自行查找邏輯回歸的資料學習。

輸出結果如下:

 三、代碼集合

import pandas as pd
import numpy as np
import statsmodels.api as sm
from patsy import dmatrices
data=pd.read_excel(r'D:\雜貨\編碼數(shù)據(jù).xlsx',sheet_name='編碼數(shù)據(jù)')
pd.set_option('display.max_columns',1000)
pd.set_option("display.width",1000)
pd.set_option('display.max_colwidth',1000)
pd.set_option('display.max_rows',1000)
print(data)
 
v=data['Q1'].corr(data['Q2'])#相關系數(shù)
print(v)
 
x=np.array(data['Q1'])#一元線性回歸分析
y=np.array(data['Q2'])
X=sm.add_constant(x)#向x左側添加截距列x0=[1,……,1]
model=sm.OLS(y,X)#建立最小二乘估計
fit=model.fit()#擬合模型
print(fit.summary())
 
vars=['Q1','Q2','Q6','Q7']#多元線性回歸分析
df=data[vars]
y,X=dmatrices('Q1~Q2+Q6+Q7',data=df,return_type='dataframe')
model=sm.OLS(y,X)
fit=model.fit()
print(fit.summary())
 
vars2=['Q1','Q2']#廣義線性回歸分析
vars1=['Q6','Q7','Q8','Q9']
glm_binom=sm.GLM(data[vars2],data[vars1],family=sm.families.Binomial())
res=glm_binom.fit()
print(res.summary())
 
logit_mod=sm.Logit(data['Q13|3'],data[vars1])#logistic回歸分析,注意:data['Q13|3']的位置里的數(shù)據(jù)必須是0-1形式?。?!
logit_res=logit_mod.fit(disp=0)
print(logit_res.summary())
#若在廣義線性回歸分析中的vars2的數(shù)據(jù)換成0-1形式的,則其結果與logistic回歸分析的結果一致。

到此這篇關于如何用Python進行回歸分析與相關分析的文章就介紹到這了,更多相關python 數(shù)據(jù)分析 回歸 數(shù)據(jù)挖掘內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python實現(xiàn)在一個畫布上畫多個子圖

    python實現(xiàn)在一個畫布上畫多個子圖

    今天小編就為大家分享一篇python實現(xiàn)在一個畫布上畫多個子圖,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python使用Rich實現(xiàn)美化終端顯示效果

    Python使用Rich實現(xiàn)美化終端顯示效果

    Rich庫的功能就像它的名字一樣,使Python編程更加豐富(rich),用來幫助開發(fā)者在控制臺(命令行)輸出中創(chuàng)建豐富、多彩和具有格式化的文本,下面我們就來了解下它的具體使用吧
    2024-02-02
  • Python 功能和特點(新手必學)

    Python 功能和特點(新手必學)

    Python是一門簡單而文字簡約的語言。閱讀好的Python程序感覺就像閱讀英語,盡管是非常嚴格的英語。Python的這種偽代碼特性是其最大強項之一,它可讓你專注于解決問題的辦法而不是語言本身,通過本篇文章給大家介紹python功能和特點相關知識,感興趣的朋友一起學習吧
    2015-12-12
  • Python工程師面試必備25條知識點

    Python工程師面試必備25條知識點

    這篇文章主要為大家詳細介紹了Python工程師面試必備25條知識點,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python繪制loss曲線和準確率曲線實例代碼

    Python繪制loss曲線和準確率曲線實例代碼

    pytorch雖然使用起來很方便,但在一點上并沒有tensorflow方便,就是繪制模型訓練時在訓練集和驗證集上的loss和accuracy曲線(共四條),下面這篇文章主要給大家介紹了關于Python繪制loss曲線和準確率曲線的相關資料,需要的朋友可以參考下
    2022-08-08
  • Python中的fileinput模塊的簡單實用示例

    Python中的fileinput模塊的簡單實用示例

    這篇文章主要介紹了Python中的fileinput模塊實用示例,文中的示例是使用其來便利硬盤分區(qū)下的文本文件并打印其中行的長度,需要的朋友可以參考下
    2015-07-07
  • Pycharm中如何關掉python console

    Pycharm中如何關掉python console

    這篇文章主要介紹了Pycharm中如何關掉python console,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Python 字符串操作詳情

    Python 字符串操作詳情

    這篇文章主要介紹了Python 字符串操作,所謂字符串,就是由0個或者多個字符組成的有限序列,字符串的字符可以是特殊符號、英文字母、中文字符、日文的平假名或片假名、希臘字母、Emoji字符等等。下面我們大家一起來學習文章詳細內容吧
    2021-11-11
  • python中正則表達式 re.findall 用法

    python中正則表達式 re.findall 用法

    在python中,通過內嵌集成re模塊,程序媛們可以直接調用來實現(xiàn)正則匹配。本文重點給大家介紹python中正則表達式 re.findall 用法,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • 詳解Python如何獲取列表(List)的中位數(shù)

    詳解Python如何獲取列表(List)的中位數(shù)

    本文通過圖文及實例代碼介紹了怎樣利用python獲取列表的中位數(shù),文章介紹的很詳細,有需要的小伙伴們可以參考學習。
    2016-08-08

最新評論