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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • shell输出数组元素_shell中使用数组

    shell输出数组元素_shell中使用数组数组介绍平时的定义a=1,b=2,c=3,变量如果多了,再一个一个定义很费劲,并且取变量的也费劲简单的说,数组就是相同数据类型的元素按一定顺序排列的集合数组就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们得边合。这个名字成为数组名,编号成为数组下标。组成数组的各个变量成为数组的分称为数组的元素,有时也称为下标变量数组定义与增删改查法1:array=(value1value2valu…

    2022年10月26日
  • LoadRunner 技巧之 IP欺骗 (推荐)

    LoadRunner 技巧之 IP欺骗 (推荐)

  • Python OpenCV findContours()函数与drawContours()函数用法

    Python OpenCV findContours()函数与drawContours()函数用法我用的Python3.6,OpenCV3.4。Python3.x与2.x语法不一样,OpenCV2.x与3.x也不一样。看之前得清楚自己用的啥。本文说白了就是个简单的查找轮廓,并且绘制轮廓。简单说一下这俩个函数用法。函数cv2.findContours()有三个参数。第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法。而返回值根据OpenCV版本不同也不一样,但这俩个版本都会返回…

    2022年10月25日
  • v4l2驱动框架(Windows驱动开发技术详解)

    环境:OS:Ubuntu16.04(Win10hypev)KernelVersion:3.13.0-24-generic这里终极目标是注册一个/dev/video0的设备,再通过一个应用程序去读取它:#include<linux/module.h>#include<linux/videodev2.h>#include<media/v…

  • 分享一款“暗黑系列”Idea主题插件Material Theme「建议收藏」

    分享一款“暗黑系列”Idea主题插件Material Theme「建议收藏」偶然发现一款“暗黑系列”idea主题插件,感觉非常不错,分享一下~github:https://github.com/equinusocio/material-theme安装plugins->browserepositories->search“material-theme”安装完重启idea设置切换主题Editor->ColorSc…

  • datagridview 自定义格式_word自定义表格

    datagridview 自定义格式_word自定义表格publicclassMyGrideViewextendsGridView{publicMyGrideView(Contextcontext){super(context);}publicMyGrideView(Contextcontext,AttributeSetattrs){super(context,attrs)

发表回复

您的电子邮箱地址不会被公开。

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