成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

如何用python做逐步回歸

瀏覽:47日期:2022-06-23 13:02:05
算法介紹

逐步回歸是一種線性回歸模型自變量選擇方法;逐步回歸的基本思想是將變量逐個(gè)引入模型,每引入一個(gè)解釋變量后都要進(jìn)行F檢驗(yàn),并對(duì)已經(jīng)選入的解釋變量逐個(gè)進(jìn)行t檢驗(yàn),當(dāng)原來(lái)引入的解釋變量由于后面解釋變量的引入變得不再顯著時(shí),則將其刪除。以確保每次引入新的變量之前回歸方程中只包含顯著性變量。這是一個(gè)反復(fù)的過(guò)程,直到既沒(méi)有顯著的解釋變量選入回歸方程,也沒(méi)有不顯著的解釋變量從回歸方程中剔除為止。以保證最后所得到的解釋變量集是最優(yōu)的。這里我們選擇赤池信息量(Akaike Information Criterion)來(lái)作為自變量選擇的準(zhǔn)則,赤池信息量(AIC)達(dá)到最小:基于最大似然估計(jì)原理的模型選擇準(zhǔn)則。

數(shù)據(jù)情況案例

在現(xiàn)實(shí)生活中,影響一個(gè)地區(qū)居民消費(fèi)的因素有很多,例如一個(gè)地區(qū)的人均生產(chǎn)總值、收入水平等等,本案例選取了9個(gè)解釋變量研究城鎮(zhèn)居民家庭平均每人全年的消費(fèi)新支出y,解釋變量為:x1——居民的食品花費(fèi)x2——居民的衣著消費(fèi)x3——居民的居住花費(fèi)x4——居民的醫(yī)療保健花費(fèi)x5——居民的文教娛樂(lè)花費(fèi)x6——地區(qū)的職工平均工資x7——地區(qū)的人均GDPx8——地區(qū)的消費(fèi)價(jià)格指數(shù)x9——地區(qū)的失業(yè)率(%)

數(shù)據(jù)

如何用python做逐步回歸

代碼

# -*- coding: UTF-8 -*-import numpy as npimport statsmodels.api as smimport statsmodels.formula.api as smffrom statsmodels.stats.api import anova_lmimport matplotlib.pyplot as pltimport pandas as pdfrom patsy import dmatricesimport itertools as itimport random# Load data 讀取數(shù)據(jù)df = pd.read_csv(’data3.1.csv’,encoding=’gbk’)print(df)target = ’y’variate = set(df.columns) #獲取列名variate.remove(target) #去除無(wú)關(guān)列variate.remove(’地區(qū)’)#定義多個(gè)數(shù)組,用來(lái)分別用來(lái)添加變量,刪除變量x = []variate_add = []variate_del = variate.copy()# print(variate_del)y = random.sample(variate,3) #隨機(jī)生成一個(gè)選模型,3為變量的個(gè)數(shù)print(y)#將隨機(jī)生成的三個(gè)變量分別輸入到 添加變量和刪除變量的數(shù)組for i in y: variate_add.append(i) x.append(i) variate_del.remove(i)global aic #設(shè)置全局變量 這里選擇AIC值作為指標(biāo)formula='{}~{}'.format('y','+'.join(variate_add)) #將自變量名連接起來(lái)aic=smf.ols(formula=formula,data=df).fit().aic #獲取隨機(jī)函數(shù)的AIC值,與后面的進(jìn)行對(duì)比print('隨機(jī)化選模型為:{}~{},對(duì)應(yīng)的AIC值為:{}'.format('y','+'.join(variate_add), aic))print('n')#添加變量def forwark(): score_add = [] global best_add_score global best_add_c print('添加變量') for c in variate_del: formula = '{}~{}'.format('y', '+'.join(variate_add+[c])) score = smf.ols(formula = formula, data = df).fit().aic score_add.append((score, c)) #將添加的變量,以及新的AIC值一起存儲(chǔ)在數(shù)組中 print(’自變量為{},對(duì)應(yīng)的AIC值為:{}’.format('+'.join(variate_add+[c]), score)) score_add.sort(reverse=True) #對(duì)數(shù)組內(nèi)的數(shù)據(jù)進(jìn)行排序,選擇出AIC值最小的 best_add_score, best_add_c = score_add.pop() print('最小AIC值為:{}'.format(best_add_score)) print('n')#刪除變量def back(): score_del = [] global best_del_score global best_del_c print('剔除變量') for i in x: select = x.copy() #copy一個(gè)集合,避免重復(fù)修改到原集合 select.remove(i) formula = '{}~{}'.format('y','+'.join(select)) score = smf.ols(formula = formula, data = df).fit().aic print(’自變量為{},對(duì)應(yīng)的AIC值為:{}’.format('+'.join(select), score)) score_del.append((score, i)) score_del.sort(reverse=True) #排序,方便將最小值輸出 best_del_score, best_del_c = score_del.pop() #將最小的AIC值以及對(duì)應(yīng)剔除的變量分別賦值 print('最小AIC值為:{}'.format(best_del_score)) print('n')print('剩余變量為:{}'.format(variate_del))forwark()back()while variate: # forwark()# back() if(aic < best_add_score < best_del_score or aic < best_del_score < best_add_score): print('當(dāng)前回歸方程為最優(yōu)回歸方程,為{}~{},AIC值為:{}'.format('y','+'.join(variate_add), aic)) break elif(best_add_score < best_del_score < aic or best_add_score < aic < best_del_score): print('目前最小的aic值為{}'.format(best_add_score)) print(’選擇自變量:{}’.format('+'.join(variate_add + [best_add_c]))) print(’n’) variate_del.remove(best_add_c) variate_add.append(best_add_c) print('剩余變量為:{}'.format(variate_del)) aic = best_add_score forwark() else: print(’當(dāng)前最小AIC值為:{}’.format(best_del_score)) print(’需要剔除的變量為:{}’.format(best_del_c)) aic = best_del_score #將AIC值較小的選模型AIC值賦給aic再接著下一輪的對(duì)比 x.remove(best_del_c) #在原集合上剔除選模型所對(duì)應(yīng)剔除的變量 back() 結(jié)果

如何用python做逐步回歸

如何用python做逐步回歸

如何用python做逐步回歸

以上就是如何用python 做逐步回歸的詳細(xì)內(nèi)容,更多關(guān)于python 逐步回歸的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中文字幕人成乱码在线观看 | 一级黄网站 | 日韩a一级欧美一级 | 久久久久女人精品毛片 | 日韩有码第一页 | 国产玖玖在线 | 欧美日本亚洲国产一区二区 | 高清亚洲 | 日本亚州视频在线八a | 特级淫片国产免费高清视频 | 国产精品久久久久久久久久一区 | 手机看片神马午夜片 | 免费逼片 | 亚洲孕交| 久久91视频| 中国a级黄色片 | 中国一级淫片aaa毛片毛片 | 成人精品一级毛片 | 国产主播精品福利19禁vip | 欧美怡红院在线 | 日韩综合色| 国产精品日本不卡一区二区 | 91久久精品国产亚洲 | 91成人精品 | 最新亚洲人成网站在线影院 | 亚洲视频在线免费播放 | 亚洲天堂男 | 国产一进一出视频网站 | 91久久香蕉国产线看观看软件 | a级网站在线观看 | 国产不卡在线观看视频 | 久久久久久亚洲精品中文字幕 | 久青草国产在线 | 亚洲精品综合一区二区三区在线 | 美国特级毛片 | 人人草97 | 深夜国产成人福利在线观看女同 | 草久久免费视频 | 亚洲图片在线视频 | 午夜mm131美女做爰视频 | 在线人成精品免费视频 |