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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • clion 激活码 2021【中文破解版】

    (clion 激活码 2021)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月27日
    47
  • Spring Bean 实例的注册流程

    Spring Bean 实例的注册流程

    2021年7月13日
    92
  • 指针常量和常量指针的区别_指针常量能指向常量吗

    指针常量和常量指针的区别_指针常量能指向常量吗1、指针常量——指针类型的常量(int*constp)本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。用法如下:inta=10,b=20;int*constp=&a;*p=30;//p指向的地址是一定的,但其内容可以修改2、…

    2022年4月19日
    66
  • Redis雪崩_redis落地方式

    Redis雪崩_redis落地方式同一时间大面积失效,那一瞬间Redis跟没有一样,那这个数量级别的请求直接打到数据库几乎是灾难性的,如果打挂的是一个用户服务的库,那其他依赖他的库所有的接口几乎都会报错,如果没做熔断等策略基本上就是瞬间挂一片的节奏,怎么重启用户都会把你打挂,等你能重启的时候,用户早就睡觉去了,并且对产品失去了信心,什么垃圾产品。设置两个缓存,原始缓存和备用缓存,原始缓存失效时,访问备用缓存,备用缓存失效时间设置长点。设置缓存过期时间时加上一个随机值,避免缓存在同一时间过期。雪崩概念在某一个时间段,缓存集中过期失效。…

    2025年11月18日
    3
  • navicat破解激活码2022【中文破解版】

    (navicat破解激活码2022)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4K…

    2022年4月1日
    221
  • 如何从tushare获取股票历史数据写入自己的MySQL数据库[通俗易懂]

    如何从tushare获取股票历史数据写入自己的MySQL数据库[通俗易懂]如何从tushare获取股票历史数据写入自己的MySQL数据库点击https://tushare.pro/register?reg=414428,免费注册后,即可获取tushare的token,就可以下载金融数据了。1.tushare推荐方法如果你需要读取全部股票的历史数据,tushare给的建议是按“天”获取。因为tushareapi限制一次获取最高5000条记录,而A股市场目前有3000多只股票,提取一次数据不会超过api的限制记录数。代码如下:importtus

    2022年6月24日
    102

发表回复

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

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