python aic准则_使用AIC进行变量选择并评估多元回归中的标准

python aic准则_使用AIC进行变量选择并评估多元回归中的标准#MultipleRegressionVariableSelectiondefmr(selection=False):importosos.chdir(r’C:\Users\Path’)importpandasaspdh=pd.read_csv(‘Dataset.csv’,index_col=0)#print(h.head(0))#dataset’svariablenamesyva…

大家好,又见面了,我是你们的朋友全栈君。

# Multiple Regression Variable Selectiondefmr(selection=False):importos

os.chdir(r’C:\Users\Path’)importpandasaspd

h=pd.read_csv(‘Dataset.csv’,index_col=0)#print(h.head(0)) # dataset’s variable namesyvar=’resale_price’modeleq=yvar+’ ~’forxvarin(# Insert new ‘x variable’ into a row, ending with ‘,”storey_range_lower’,’storey_range_lower_rt’,’storey_range_lower_sq’,’storey_range_upper’,’storey_range_upper_rt’,’storey_range_upper_sq’,’floor_area_sqm’,’floor_area_sqm_rt’,’floor_area_sqm_sq’,’lease_commence_year’,’lease_commence_year_rt’,’lease_commence_year_sq’,’transaction_month’,’transaction_month_rt’,’transaction_month_sq’,’town’,’flat_model’,’flat_type’,’no_of_rooms’,’block_number’,’block_number_rt’,’block_number_sq’,’postal_code’,’postal_code_rt’,’postal_code_sq’,’postal_code_2digit’,’postal_code_2digit_rt’,’postal_code_2digit_sq’,):ifmodeleq[-1]==’~’:modeleq=modeleq+’ ‘+xvarelse:modeleq=modeleq+’ + ‘+xvar#import matplotlib.pyplot as pl#%matplotlib inline#import numpy as npimportstatsmodels.apiassmfromstatsmodels.formula.apiimportols

bmodeleq=modeleqifselection:print(‘Variable Selection using p-value & PR(>F):’)minfpv=1.0whileTrue:#Specify C() for Categorical, else could be interpreted as numeric:#hout=ols(‘resale_price ~ floor_area_sqm + C(flat_type)’, data=h).fit()hout=ols(modeleq,data=h).fit()ifmodeleq.find(‘ + ‘)==-1:# 1 xvar leftbreak#print(dir(hout)) gives all the attributes of .fit(), e.g. .fvalue & .f_pvaluefpv=hout.f_pvalueiffpv

bmodeleq=modeleqprint(‘\nF-statistic =’,hout.fvalue,’ PR(>F) =’,fpv)prf=sm.stats.anova_lm(hout,typ=3)[‘PR(>F)’]maxp=max(prf[1:])#print(‘\n’,dict(prf))xdrop=prf[maxp==prf].axes[0][0]# 1st element of row-label .axes[0]#if xdrop.find(‘Intercept’) != -1 :# break# xdrop removed from model equation:if(modeleq.find(‘~ ‘+xdrop+’ + ‘)!=-1):modeleq=modeleq.replace(‘~ ‘+xdrop+’ + ‘,’~ ‘)elif(modeleq.find(‘+ ‘+xdrop+’ + ‘)!=-1):modeleq=modeleq.replace(‘+ ‘+xdrop+’ + ‘,’+ ‘)else:modeleq=modeleq.replace(‘ + ‘+xdrop,”)#print(‘Model equation:’,modeleq,’\n’)print(‘Variable to drop:’,xdrop,’ p-value =’,prf[xdrop])#print(‘\nVariable left:\n’+str(prf[maxp!=prf][:-1]),’\n’)print(‘\nF-statistic =’,hout.fvalue,’ PR(>F) =’,hout.f_pvalue)print(‘Variable left:\n’+str(prf[maxp!=prf][:-1]),’\n’)#input(“found intercept”)print(‘Best model equation:’,bmodeleq)print(‘Minimum PR(>F) =’,minfpv,’\n’)hout=ols(bmodeleq,data=h).fit()print(sm.stats.anova_lm(hout,typ=1))#print(anova) # Anova table with ‘Treatment’ broken uphsum=hout.summary()print(‘\n’,hsum)last=3#number of bottom p-values to display with more precision#p-values are not in general the same as PR(>F) from ANOVAprint(“\nLast”,last,”x-coefficients’ p-values:”)nxvar=len(hout.pvalues)foriinrange(last,0,-1):print(‘ ‘,hout.pvalues.axes[0][nxvar-i],’ ‘,hout.pvalues[nxvar-i])# Output Coefficient table:#from IPython.core.display import HTML#HTML(hout.summary().tables[1].as_html()) #.tables[] from 0 to 3mr(True)# do Variable Selection#mr() # do multiple regression once

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142569.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm代码设置自动换行[通俗易懂]

    Pycharm代码设置自动换行[通俗易懂]一、当前文件设置自动换行在菜单栏找到View导航一次View->ActiveEditor->UseSoftWraps。点击UseSoftWraps即可。二、统一设置自动换行–所有文件代码都自动换行1、点击File,选择Settings2、点击Editor展开菜单3、找到General菜单并选中,勾选Usesoftwrapsineditor…

    2022年8月27日
    71
  • yarn的安装和使用

    yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。yarn的特点:速度超快。Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn能够保证在不同…

    2022年4月3日
    69
  • android碎片整理工具,Android的碎片整理「建议收藏」

    android碎片整理工具,Android的碎片整理「建议收藏」Android手机与平板高级历史橡皮擦和性能的助推器★★★★第一轮中的新工具支付Android上最流行的新的生产力应用程序,下载吧!清除历史搜索,杀敌多余的电池寿命,增加单键的任务!“碎片整理免费的Andr??oid现在是十大最热AppBrain.com应用之一,现在下载”“真棒应用程序”-编辑推荐奖AppEggs.com_________________________________我们现…

    2022年6月25日
    30
  • 2020年开始,中国程序员前景一片灰暗,是这样吗?[通俗易懂]

    2020年开始,中国程序员前景一片灰暗,是这样吗?[通俗易懂]背景:汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号【软件老王】,关注不迷路。1、感觉中国程序员前景一片灰暗,是这样吗?老王观点:(1)个人认为谈不上灰暗,过去十年是互联网快速爆发的十年,每个行业发展了一定程度,都会慢慢趋于平稳,软件行业也不例外。(2)其实最近也有这种感觉,感觉软件行业比以前难做了,随着政府推动的互联网+,软件行业已经进入各行各业,认为后面可能会像美国一样,成为一个基础行业,待遇和机会也会趋同于其他行业,但是不知道能不能像美国那样,到50多岁了还能写的上代码。(3

    2022年10月11日
    0
  • phpstrom激活码(JetBrains全家桶)

    (phpstrom激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    127
  • 偏度(skewness)和峰度(kurtosis)

    偏度(skewness)和峰度(kurtosis)偏度偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。定义上偏度是样本的三阶标准化矩。偏度定义中包括正态分布(偏度=0),右偏分布(也叫正偏分布,其偏度>0),左偏分布(也叫负偏分布,其偏度<0)。Python代码实现方法:pandas的Series数据结构可以直接调用skew()方法来查看df.iloc[…

    2022年10月22日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号