国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

多元線性回歸(OLS+穩(wěn)健誤)python代碼實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了多元線性回歸(OLS+穩(wěn)健誤)python代碼實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

簡(jiǎn)介

多元線性回歸主要適用于應(yīng)變量和自變量具有較強(qiáng)的線性關(guān)系,且主要研究因變量(被解釋變量)自變量(解釋變量)之間的相關(guān)關(guān)系,從而達(dá)到解釋或者預(yù)測(cè)的作用。而且一般用于處理橫截面數(shù)據(jù),橫截面數(shù)據(jù)一般為同一時(shí)間段的不同對(duì)象的數(shù)據(jù),比如同一年中的各省份的GDP。

適用條件

  1. 自變量(X)和因變量(Y)具有線性關(guān)系(廣義線性關(guān)系,只要能通過(guò)線性變化獲得線性關(guān)系即可),具體呈現(xiàn)形式如下。python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔是回歸系數(shù),又稱為偏回歸系數(shù),而且截?cái)囗?xiàng)系數(shù)有較少意義。而且python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔是擾動(dòng)項(xiàng),這里的擾動(dòng)項(xiàng)默認(rèn)是球形擾動(dòng)項(xiàng)(具有同方差無(wú)自相關(guān)性質(zhì),下面會(huì)有檢驗(yàn)異方差的代碼)

python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔
  1. Y的類型為連續(xù)性數(shù)值變量(產(chǎn)量,收入等)

  1. 如果遇見定序變量(比如地區(qū),文字)等,我們需要設(shè)置為虛擬變量,虛擬變量見下文所示,代碼里面包含了構(gòu)建虛擬變量。而且一般個(gè)數(shù)為定序變量的種類(n)-1(因?yàn)樾枰O(shè)置一個(gè)對(duì)照組)。

步驟

  1. 確定數(shù)據(jù)類型,為定序數(shù)值還是定量數(shù)據(jù),然后根據(jù)數(shù)據(jù)進(jìn)行預(yù)處理(比如取對(duì)數(shù),標(biāo)準(zhǔn)化處理)和進(jìn)行描述性統(tǒng)計(jì)。

  1. 對(duì)于可能出現(xiàn)內(nèi)生性問(wèn)題,我們選取核心解釋變量(即X中跟Y有明顯線性關(guān)系的變量,畫圖或者顯著性檢驗(yàn)證明),而且誤差項(xiàng)python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔中未出現(xiàn)跟自變量相關(guān)但未能顯示,表達(dá)出來(lái)的系數(shù)。

  1. 對(duì)回歸系數(shù)進(jìn)行相關(guān)分析并且進(jìn)行穩(wěn)健性檢驗(yàn),這里運(yùn)用的方法為最小二乘法(ols),即為機(jī)器學(xué)習(xí)中的最小化損失殘差,而且進(jìn)行參數(shù)更新等。

  1. 對(duì)變量進(jìn)行VIF(方差膨脹因子)檢驗(yàn),一般情況,如果VIF>10,會(huì)出現(xiàn)比較嚴(yán)重的多重共線性。

實(shí)現(xiàn)代碼

'''
VIF檢驗(yàn)
參考:https://blog.csdn.net/mfsdmlove/article/details/124592619
OLS+穩(wěn)健誤回歸多元回歸模型
參考:https://cloud.tencent.com/developer/article/1675429
殘差平方圖
https://blog.csdn.net/qq_44763548/article/details/107472275
'''
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import wooldridge as woo
from statsmodels.formula.api import ols
from statsmodels.stats.diagnostic import het_white
import statsmodels.api


def calculate_nominal_vars(nominal_vars, data):
    for each in nominal_vars:
        print(each, ":")
        print(data[each].agg(['value_counts']).T)
        print("=" * 35)


def process_variables(nominal_vars_data, data):
    dummies = pd.get_dummies(nominal_vars_data)  # 自動(dòng)命名虛擬變量,而且這里是選擇某一個(gè)單一變量
    # 因?yàn)樾枰O(shè)置一個(gè)對(duì)照組,所以將每個(gè)nominal_vars生成的虛擬變量實(shí)際應(yīng)用一般是變量數(shù)-1
    dummies.drop(columns=['C'], inplace=True)
    # dummies.sample()
    results = pd.concat(objs=[data, dummies], axis='colums')  # 按照列合并
    return results


def VIF_test(df, col_i):
    '''
    :param df: 整一份數(shù)據(jù)
    :param col_i: 被檢測(cè)列名字,而且這里只能一列一列檢測(cè),所以這里需要注意一下,即為有關(guān)系
    :return:
    '''
    cols = list(df.colums)
    cols.remove(col_i)
    col_noti = cols
    formula = col_i + '~' + '+'.join(col_noti)
    r2 = ols(formula, df).fit().rsquared
    return 1. / (1 - r2)


def white_test(res, X):
    '''
    :param:resid:殘差
    :param:exog_het:用于white檢驗(yàn)的自變量(只需要自變量的一階形式,函數(shù)自動(dòng)加入平方和交互作用項(xiàng)進(jìn)行回歸)
    :return:white_test_output,一共有'white_lm_statistic', 'white_lm_pval', 'white_F_statistic', 'white_F_pval'
    '''
    result_bp_test = het_white(res, X)
    white_test_output = pd.Series(result_bp_test[0:4],
                                  index=['white_lm_statistic', 'white_lm_pval', 'white_F_statistic', 'white_F_pval'])
    return white_test_output




def ols_regression(variables, data):
    '''
        小寫的ols自帶了截距項(xiàng),但是大寫的OLS并未帶有截距項(xiàng)
        而且格式為固定 (因變量 ~ 自變量1 + 自變量2 + ······ + 自變量n)
        variables為固定格式即為str類型,而且為'price ~ area + bedrooms + bathrooms'
    '''
    lm = ols(variables, data=data).fit()
    return lm.summary().tables[1]


def ols_regression_robust_error(variables, data):
    '''

    :param variables:
    :param data:
    :return: 返回的是一個(gè)帶有各種檢驗(yàn)的表格
    White標(biāo)準(zhǔn)誤(異方差穩(wěn)健的標(biāo)準(zhǔn)誤):
    HC0:White(1980)提出的異方差穩(wěn)健的標(biāo)準(zhǔn)誤
    HC1:Mackinon and White(1985)提出的異方差穩(wěn)健的標(biāo)準(zhǔn)誤
    HC2:MacKinnon and White(1985)提出的異方差穩(wěn)健的標(biāo)準(zhǔn)誤
    HC3:MacKinnon and White(1985)提出的異方差穩(wěn)健的標(biāo)準(zhǔn)誤
    HAC:Newey-West標(biāo)準(zhǔn)誤(異方差自相關(guān)穩(wěn)健的標(biāo)準(zhǔn)誤):

    '''
    # hprice1 = woo.dataWoo('hprice1')
    # 適用white標(biāo)準(zhǔn)誤(異方差穩(wěn)定的標(biāo)準(zhǔn)誤)
    reg_HC0 = ols(formula=variables, data=data)
    results_HC0 = reg_HC0.fit(cov_type='HC0', use_t=True)
    # 適用newey_west標(biāo)準(zhǔn)誤(異方差自相關(guān)穩(wěn)健的標(biāo)準(zhǔn)誤)
    reg_HAC = ols(formula=variables, data=data)
    results_HAC = reg_HAC.fit(cov_type='HAC', use_T=True, cov_kwds={'maxlags': 1})  # maxlags表示滯后
    return results_HC0.summary().tables[1]

def get_predict(model, data, cloumns):
    model = model.fit()
    new_x = data.loc[data.Sales.notnull(), cloumns].values
    new_x = statsmodels.api.add_constant(new_x)  # sm2 = statsmodels.api
    y_predict = model.predict(new_x)
    return y_predict

def get_resid(predict, data):
    return data - predict
if __name__ == '__main__':
    hprice1 = woo.dataWoo('hprice1')
    print(ols_regression_robust_error('price ~ lotsize + sqrft + bdrms', data=hprice1))
    print()

有可能出現(xiàn)的問(wèn)題

  1. 出現(xiàn)內(nèi)生性

內(nèi)生性,外生性

內(nèi)生性為回歸模型中的擾動(dòng)項(xiàng)包含了所有跟已有的自變量具有一定相關(guān)性,但不是是自變量的元素。

  1. 為了檢測(cè)出多重共線性問(wèn)題,進(jìn)行VIF(方差膨脹因子檢驗(yàn)),VIF檢驗(yàn)簡(jiǎn)單來(lái)說(shuō)就是判斷自變量之間是否具有相關(guān)性。我們采取了運(yùn)用OLS+穩(wěn)健誤(懷特檢驗(yàn)誤)的方法,減少了異方差的影響。而且VIF如果大于10,即為證明出現(xiàn)嚴(yán)重的多重共線性。

外生性為誤差項(xiàng)跟素所有的自變量均不相關(guān)。

  1. 數(shù)據(jù)為定序數(shù)據(jù)

數(shù)據(jù)出現(xiàn)定序數(shù)據(jù)(比如地域,年齡等),我們?yōu)榱顺浞掷眠@一部分的數(shù)據(jù),我們一般會(huì)采用構(gòu)建虛擬變量等進(jìn)行進(jìn)行分析。而且構(gòu)建的虛擬變量個(gè)數(shù)一般為n-1個(gè)。(n為某一變量出現(xiàn)的種類),虛擬變量的定義如下所示。

虛擬變量

虛擬變量的存在是為了充分利用這些自變量中有定性變量,例如性別、地域等變量。而且一般設(shè)置為0-1變量,命名一般為y_0,y_1,y_2等以此類推。具體如圖所示,將地域信息轉(zhuǎn)化為虛擬0-1變量。而且設(shè)置虛擬變量的時(shí)候,我們?cè)诨貧w之后一般會(huì)通過(guò)F統(tǒng)計(jì)量檢驗(yàn)回歸系數(shù)python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔是否為聯(lián)和顯著。

python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔

3. 擬合優(yōu)度較低

回顧擬合優(yōu)度python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔,在之前的擬合中有提及,具體公式如圖所示,

:SST為真實(shí)值和均值的差的平方和,SSE為真實(shí)值和擬合值的差的平均值,SSR為擬合值和均值的茶的平均值。

python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔

結(jié)論:如果是解釋性模型,一般只要回歸系數(shù)聯(lián)合顯著,則可以較少考慮擬合優(yōu)度,如果是預(yù)測(cè)性模型,則需要以下的舉措去調(diào)整擬合優(yōu)度。

  1. 對(duì)模型進(jìn)行調(diào)整,例如對(duì)給出數(shù)據(jù)取對(duì)數(shù)或者平方后再進(jìn)行回歸。取對(duì)數(shù)的好處為使得原來(lái)的不呈現(xiàn)正態(tài)分布的數(shù)據(jù)比較靠近正態(tài)分布,或者具有一定的經(jīng)濟(jì)學(xué)意義。

  1. 數(shù)據(jù)中可能有存在異常值或者數(shù)據(jù)的分布極度不均勻,剔除數(shù)據(jù)或者采取對(duì)抗學(xué)習(xí)生成較為平整的數(shù)據(jù)。

4. 出現(xiàn)多重共線性

  1. 虛擬變量的設(shè)置出現(xiàn)問(wèn)題

當(dāng)虛擬變量的個(gè)數(shù)是n(n為某一定序變量出現(xiàn)的種類,比如A,B地域,所以n=2),所以我們?cè)O(shè)置虛擬變量的時(shí)候應(yīng)該設(shè)置虛擬變量的個(gè)數(shù)為n-1。(剩余的1是要作為對(duì)照組存在)

2. 擾動(dòng)項(xiàng)出現(xiàn)異方差

我們一般用OLS+穩(wěn)健誤的方法解決干擾項(xiàng)出現(xiàn)異方差問(wèn)題,使用該方案的原因如下:

(1)OLS估計(jì)出來(lái)的回歸系數(shù)是無(wú)偏、一致的。

(2)假設(shè)檢驗(yàn)無(wú)法使用(構(gòu)造的統(tǒng)計(jì)量失效了)。

(3)OLS估計(jì)量不再是最優(yōu)線性無(wú)偏估計(jì)量(BLUE)(不為最好)

無(wú)偏性和一致性

無(wú)偏性為用統(tǒng)計(jì)學(xué)的方法,去使得預(yù)估值和誤差值一致。

一致性是在樣本數(shù)量較多的時(shí)候,均值會(huì)在期望值收斂,即為python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔。

同方差,異方差

同方差,指總體回歸函數(shù)(求出回歸系數(shù)之后的函數(shù))中的隨機(jī)誤差項(xiàng)(干擾項(xiàng))在解釋變量(一定條件或者是解釋變量不變的前提)條件下具有不變的方差一組隨機(jī)變量具備同方差即指線性回歸的最小二乘法(OLS, Ordinary Least Squares)的殘值服從均值為0,方差為python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔的正態(tài)分布,即其干擾項(xiàng)必須服從隨機(jī)分布。異方差跟其相反的定義。

異方差檢驗(yàn)

懷特檢驗(yàn)簡(jiǎn)介(推導(dǎo)過(guò)程這里其實(shí)有點(diǎn)蒙,所以只提供了代碼和介紹)

python ols回歸,數(shù)學(xué)建模,python,線性回歸,Powered by 金山文檔

當(dāng)模型包含k=3個(gè)自變量時(shí),懷特檢驗(yàn)的代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-775006.html

def white_test(res, X):
    '''
    :param:resid:殘差
    :param:exog_het:用于white檢驗(yàn)的自變量(只需要自變量的一階形式,函數(shù)自動(dòng)加入平方和交互作用項(xiàng)進(jìn)行回歸)
    :return:white_test_output,一共有'white_lm_statistic', 'white_lm_pval', 'white_F_statistic', 'white_F_pval'
    '''
    result_het_white_test = het_white(res, X)
    white_test_output = pd.Series(result_het_white_test[0:4],
                                  index=['white_lm_statistic', 'white_lm_pval', 'white_F_statistic', 'white_F_pval'])
    return white_test_output

到了這里,關(guān)于多元線性回歸(OLS+穩(wěn)健誤)python代碼實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 學(xué)習(xí)記錄2-多元線性回歸模型(附上python代碼)

    學(xué)習(xí)記錄2-多元線性回歸模型(附上python代碼)

    研究貨運(yùn)總量 y (萬(wàn)噸)與工業(yè)總產(chǎn)值 x1(億元)、農(nóng)業(yè)總產(chǎn)值 x2(億元),居民非商品支出 X3?(億元)的關(guān)系。數(shù)據(jù)見表3-9。 (1)計(jì)算出 y , x1?,x2, x3?的相關(guān)系數(shù)矩陣。 (2)求 y 關(guān)于 x1?,x2, x3?的三元線性回歸方程。 (3)對(duì)所求得的方程做擬合優(yōu)度檢驗(yàn)。 (4)對(duì)回歸方程做

    2024年02月03日
    瀏覽(20)
  • Python實(shí)現(xiàn)M-Estimators穩(wěn)健線性回歸模型(RLM算法)項(xiàng)目實(shí)戰(zhàn)

    Python實(shí)現(xiàn)M-Estimators穩(wěn)健線性回歸模型(RLM算法)項(xiàng)目實(shí)戰(zhàn)

    說(shuō)明:這是一個(gè)機(jī)器學(xué)習(xí)實(shí)戰(zhàn)項(xiàng)目(附帶 數(shù)據(jù)+代碼+文檔+視頻講解 ),如需 數(shù)據(jù)+代碼+文檔+視頻講解 可以直接到文章最后獲取。 M-Estimators 是穩(wěn)健統(tǒng)計(jì)估計(jì)中的一個(gè)重要概念,它們?cè)谔幚砗挟惓V?、離群點(diǎn)或者影響點(diǎn)的數(shù)據(jù)時(shí)特別有用。在穩(wěn)健線性回歸(Robust Linear Regr

    2024年01月21日
    瀏覽(17)
  • 利用python實(shí)現(xiàn)多元線性回歸

    利用python實(shí)現(xiàn)多元線性回歸

    本文介紹了如何用python進(jìn)行回歸分析 直線回歸分析是研究?jī)勺兞浚ㄗ宰兞亢鸵蜃兞浚┲g的依存關(guān)系及其關(guān)系的具體方程的形式。分析中所形成的這種關(guān)系式稱為回歸模型,其中以一條直線方程表明的兩個(gè)變量的依存關(guān)系的模型叫一元線性回歸模型。 一元線性回歸模型研究

    2024年02月11日
    瀏覽(25)
  • 【人工智能】多元線性回歸模型舉例及python實(shí)現(xiàn)方式

    【人工智能】多元線性回歸模型舉例及python實(shí)現(xiàn)方式

    比如你做了一個(gè)企業(yè)想要招人,但是不知道月薪應(yīng)該定在多少,你做了一個(gè)月薪和收入的調(diào)研,包括年限、學(xué)歷、地區(qū)和月薪 做一個(gè)月薪=w1 年限+w2 學(xué)歷+w3*城市+…+b的工作年限和薪資的多元線性模型,然后找出最適合線性模型的直線-成本函數(shù)、梯度下降方式,來(lái)預(yù)估你可以

    2024年02月19日
    瀏覽(28)
  • OLS回歸模型-斯皮爾曼相關(guān)系數(shù)-數(shù)值模擬-多目標(biāo)規(guī)劃-養(yǎng)老服務(wù)床位需求預(yù)測(cè)與運(yùn)營(yíng)模式研究-之?dāng)?shù)學(xué)建模

    OLS回歸模型-斯皮爾曼相關(guān)系數(shù)-數(shù)值模擬-多目標(biāo)規(guī)劃-養(yǎng)老服務(wù)床位需求預(yù)測(cè)與運(yùn)營(yíng)模式研究-之?dāng)?shù)學(xué)建模

    數(shù)學(xué)建模 -OLS回歸模型 斯皮爾曼相關(guān)系數(shù) 數(shù)值模擬 多目標(biāo)規(guī)劃-養(yǎng)老服務(wù)床位需求預(yù)測(cè)與運(yùn)營(yíng)模式研究 養(yǎng)老服務(wù)床位需求預(yù)測(cè)與運(yùn)營(yíng)模式研究 摘要 ????????隨著時(shí)間的推移,我國(guó)人口老齡化逐漸增多,老齡化的社會(huì)問(wèn)題越來(lái)越突出,從2009年到2018年,無(wú)論是老年人口數(shù)量

    2024年02月09日
    瀏覽(22)
  • Python預(yù)測(cè)——多元線性回歸

    Python預(yù)測(cè)——多元線性回歸

    答辯結(jié)束了,把論文里有用的東西摘出來(lái)。 多元線性回歸模型: 其中 y 為要預(yù)測(cè)的變量,x 為影響 y 值的變量,b 為回歸系數(shù),計(jì)算方式為: 計(jì)算結(jié)果為一個(gè)矩陣,分別對(duì)應(yīng)b0,b1,b2,b3。 對(duì)豬肉價(jià)格進(jìn)行預(yù)測(cè),即豬肉價(jià)格作為 y,選擇豬肉價(jià)格指數(shù),生豬屠宰量,豬糧比作

    2024年02月03日
    瀏覽(21)
  • Python多元線性回歸sklearn

    Python多元線性回歸sklearn

    2024年01月24日
    瀏覽(23)
  • 基于Python多元線性回歸模型

    基于Python多元線性回歸模型

    提示:基于Python的多元線性回歸模型 文章目錄 前言 一、讀取數(shù)據(jù) 二、建立模型 ?三、預(yù)測(cè)新值 ?四、去截距模型 總結(jié) 本文主要是基于多元回歸線性模型,然后建立模型和分析,解決多元線性回歸模型存在的問(wèn)題和優(yōu)化多元線性回歸模型,原理就不多講了,可查看《應(yīng)用回

    2024年02月07日
    瀏覽(25)
  • 基于Python的多元線性回歸分析

    一、多元線性回歸分析(Multiple regression) 1.與簡(jiǎn)單線性回歸相比較,具有多個(gè)自變量x 2.多元回歸模型 其中是誤差值,與簡(jiǎn)單線性回歸分析中的要求特點(diǎn)相一致。其余的系數(shù)和截距為參數(shù)。 3.多元回歸方程 4.估計(jì)多元回歸方程(點(diǎn)估計(jì)) 5.估計(jì)方法 使方差和最小,即 從而得到一

    2024年02月06日
    瀏覽(21)
  • Python多元線性回歸預(yù)測(cè)模型實(shí)驗(yàn)完整版

    Python多元線性回歸預(yù)測(cè)模型實(shí)驗(yàn)完整版

    實(shí)驗(yàn)?zāi)康?通過(guò)多元線性回歸預(yù)測(cè)模型,掌握預(yù)測(cè)模型的建立和應(yīng)用方法,了解線性回歸模型的基本原理 實(shí)驗(yàn)內(nèi)容 多元線性回歸預(yù)測(cè)模型 實(shí)驗(yàn)步驟和過(guò)程 (1)第一步:學(xué)習(xí)多元線性回歸預(yù)測(cè)模型相關(guān)知識(shí)。 一元線性回歸模型反映的是單個(gè)自變量對(duì)因變量的影響,然而實(shí)際情況

    2024年02月09日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包