선형모형_LM.pdf

Similar documents
Microsoft PowerPoint - LM 2014s_Ch4.pptx

공공기관임금프리미엄추계 연구책임자정진호 ( 한국노동연구원선임연구위원 ) 연구원오호영 ( 한국직업능력개발원연구위원 ) 연구보조원강승복 ( 한국노동연구원책임연구원 ) 이연구는국회예산정책처의정책연구용역사업으로 수행된것으로서, 본연구에서제시된의견이나대안등은

<4D F736F F D20BDC3B0E8BFADBAD0BCAE20C1A B0AD5FBCF6C1A45FB0E8B7AEB0E6C1A6C7D E646F63>

G Power

에너지경제연구 Korean Energy Economic Review Volume 17, Number 2, September 2018 : pp. 1~29 정책 용도별특성을고려한도시가스수요함수의 추정 :, ARDL,,, C4, Q4-1 -

기술통계

슬라이드 1

Microsoft PowerPoint - IPYYUIHNPGFU

슬라이드 1

Microsoft Word - ch8_influence.doc

Microsoft Word - ch4_multiple.doc

조사연구 권 호 연구논문 한국노동패널조사자료의분석을위한패널가중치산출및사용방안사례연구 A Case Study on Construction and Use of Longitudinal Weights for Korea Labor Income Panel Survey 2)3) a

제 4 장회귀분석

<352E20BAAFBCF6BCB1C5C320B1E2B9FDC0BB20C0CCBFEBC7D120C7D1B1B920C7C1B7CEBEDFB1B8C0C720B5E6C1A1B0FA20BDC7C1A120BCB3B8ED D2DB1E8C7F5C1D62E687770>

슬라이드 1

슬라이드 1

Microsoft Word - SPSS_MDA_Ch6.doc

<352EC7E3C5C2BFB55FB1B3C5EBB5A5C0CCC5CD5FC0DABFACB0FAC7D0B4EBC7D02E687770>

Microsoft PowerPoint - Info R(3) pptx

시스템경영과 구조방정식모형분석

PowerPoint 프레젠테이션

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

statistics

abstract.dvi

Microsoft Word - skku_TS2.docx

2156년올림픽 100미터육상경기에서여성의우승기록이남성의기록보다빠른첫해로남을수있음 2156년올림픽에서 100m 우승기록은남성의경우 8.098초, 여성은 8.079초로예측 통계적오차 ( 예측구간 ) 를고려하면빠르면 2064년, 늦어도 2788년에는그렇게될것이라고주장 유사

제 1 절 two way ANOVA 제1절 1 two way ANOVA 두 요인(factor)의 각 요인의 평균비교와 교호작용(interaction)을 검정하는 것을 이 원배치 분산분석(two way ANalysis Of VAriance; two way ANOVA)이라

Microsoft PowerPoint - chap04-연산자.pptx

슬라이드 1

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

ASETAOOOCRKG.hwp

제 3 장평활법 지수평활법 (exponential smoothing) 최근자료에더큰가중값, 과거로갈수록가중값을지수적으로줄여나가는방법 시스템에변화가있을경우변화에쉽게대처가능 계산이쉽고많은자료의저장이필요없다 예측이주목적단순지수평활법, 이중지수평활법, 삼중지수평활법, Wint

Microsoft Word - sbe13_reg.docx

확률 및 분포

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

Microsoft PowerPoint - MDA 2008Fall Ch2 Matrix.pptx

Microsoft PowerPoint - chap_11_rep.ppt [호환 모드]

PowerPoint 프레젠테이션


Lab - Gradient descent Copyright 2018 by Introduction [PDF 파일다운로드 ]() 이번랩은우리가강의를통해들은 Gradient descent 을활용하여 LinearRegression

MATLAB for C/C++ Programmers


Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

2 / 27 목차 1. M-plus 소개 2. 중다회귀 3. 경로모형 4. 확인적요인분석 5. 구조방정식모형 6. 잠재성장모형 7. 교차지연자기회귀모형

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

exp

untitled

chap01_time_complexity.key

chap 5: Trees

비선형으로의 확장

Microsoft PowerPoint - ANOVA pptx

<4D F736F F D20BDC3B0E8BFADBAD0BCAE20C1A B0AD5FBCF6C1A45FB0E8B7AEB0E6C1A6C7D E646F63>

Microsoft PowerPoint - MDA DA pptx

동아시아국가들의실질환율, 순수출및 경제성장간의상호관계비교연구 : 시계열및패널자료인과관계분석

Microsoft Word - sbe13_anova.docx

6 강남구 청담지구 청담동 46, 삼성동 52 일대 46,592-46,592 7 강남구 대치지구 대치동 922번지 일대 58,440-58,440 8 강남구 개포지구 개포동 157일대 20,070-20,070 9 강남구 개포지구중심 포이동 238 일대 25,070-25,

27집최종10.22

황룡사 복원 기본계획 Ⅵ. 사역 및 주변 정비계획 가. 사역주변 정비구상 문화유적지구 조성 1. 정비방향의 설정 황룡사 복원과 함께 주변 임해전지(안압지) 海殿址(雁鴨池)와 분황사 등의 문화유적과 네트워크로 연계되는 종합적 정비계획안을 수립한다. 주차장과 광장 등 주변

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

- 1 -

Chapter 8 단순선형회귀분석과 상관분석

untitled


<B3EDB4DC28B1E8BCAEC7F6292E687770>

Microsoft Word - 동태적 모형.doc

PPT Template

Microsoft Word - ch2_simple.doc

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

Microsoft Word - multiple

에너지포커스 2017 봄호(제14권 제1호 통권63호)

제 31회 전국 고교생 문예백일장 산문 부문 심사평.hwp

Artificial Intelligence: Assignment 5 Seung-Hoon Na December 15, Numpy: Tutorial 다음 자료를 참조하여 numpy기본을 공부하시오.

가능한연구가설제시 가설 1 : 지지후보의선택은유권자의나이에따라차이가있을것이다. 유권자의나이는지지후보의선택에영향을미칠것이다. 유권자의나이에따라지지후보는다를것이다. 가설 2 : 유권자의사회생활만족도는지지후보의선택에영향을미칠것이다. 지지후보의선택은유권자의사회생활만족도에따라차

Microsoft Word - SBE2012_anova.docx

Microsoft PowerPoint - chap05-제어문.pptx

<C8A3C5DABBEABEF720B0E6B1E2B5BFC7E220BFB9C3F820B8F0B5A8BFA120B4EBC7D120BFACB1B85FC3D6C1BE28C7D1C3A2BFB1292E687770>

dist=dat[:,2] # 기초통계량구하기 len(speed) # 데이터의개수 np.mean(speed) # 평균 np.var(speed) # 분산 np.std(speed) # 표준편차 np.max(speed) # 최대값 np.min(speed) # 최소값 np.me

생존분석의 추정과 비교 : 보충자료 이용희 December 12, 2018 Contents 1 생존함수와 위험함수 생존함수와 위험함수 예제: 지수분포

데이터 시각화

Microsoft Word - Chapter9.doc

<4D F736F F D20C0C0BFEBB0E8B7AE20C1A B0AD202D20B0E8B7AEB0E6C1A6C7D E646F63>

다운로드된 lab_normal_equation.zip 파일을작업폴더로이동한후압축해제후작업하시길바랍니다. 압축해제하면폴더가 linux_mac 과 windows 로나눠져있습니다. 자신의 OS에맞는폴더로이동해서코드를수정해주시기바랍니다. linear_model.py 코드 구조

자료의 이해 및 분석


자연채무에대한재검토 1. 서론 2. 선행연구 9 Journal of Digital Convergence 214 May; 12(5): 89-99

시계열분석의개요 (the nature of time series analysis) 확률과정 (stochastic processes) 이란시간으로순서가매겨진확률변수들의집합임. 만일확률변수 y 가연속이라면 y(t) 라고표기하지만이산이라면 y t 라고표기함 ( 대부분의경제자

<4D F736F F D20C0C0BFEBB0E8B7AE20C1A B0AD202D20B0E8B7AEB0E6C1A6C7D E646F63>


에너지경제연구 제12권 제2호

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

Communications of the Korean Statistical Society Vol. 15, No. 4, 2008, pp 국소적 강력 단위근 검정 최보승1), 우진욱2), 박유성3) 요약 시계열 자료를 분석할 때, 시계열 자료가 가지고 있는

PowerPoint Presentation

Microsoft Word - sbe_anova.docx

중간고사

hwp

고객관계를 리드하는 서비스 리더십 전략

Transcription:

변수선택 8 경제성의 원리로 불리우는 Occam s Razor는 어떤 현상을 설명할 때 불필요한 가정을 해서는 안 된다는 것이다. 같은 현상을 설 명하는 두 개의 주장이 있다면, 간 단한 쪽을 선택하라. 통계학의 유 의성 검정, 유의하지 않은 설명변 수 제거의 근거가 된다.

섹션 1 개요 개념 1) 경험이나 이론에 의해 종속변수에 영향을 미칠 것 같은 설명변수를 선택하고 선 형 회귀 모형을 설정한다. 2) 데이터를 수집 후 회귀모형의 회귀계수를 추정하고(OLS) F-검정에 의해 모형의 유의성을 검정한다.(H0 :β1 =β2 =...=βp =0,모든설명변수는유의하지않다) 유의하지 않은 순서대로 하나씩 제외함 : 유의확률이 가장 크거나 t-통계량이 가 장 작은 순서대로 모형 내 모든 설명변수가 유의할 때까지 반복 제거함 다중공선성 분석과 순서 문제 설명변수들 간 높은 상관관계로 인하여 발생하는 다중공선성 문제 해결과 유의한 설 명변수 선택 중 어느 단계가 먼저인가? 다중공선성 진단이 먼저이나 어느 단계를 먼 저해도 동일 결과를 얻는 경우가 대부분이므로 간편 작업(변수선택 과정을 먼저 거 치면 다중공선성 진단을 하면 진단 변수의 수가 줄어듬)을 위하여 변수선택을 먼저 하는 것이 적절함 3) F-검정(분산분석) 결과 귀무가설이 기각되면 t-검정을 이용하여 회귀계수(설명변 수)의 유의성 검정을 한다. 4) 유의하지 않은 설명변수를 하나씩 제외하면서 모든 변수가 유의할 때까지 계속한 다. 어 떤 설명변수를 제외할 것인가? 가장 유의하지 않은 설명변수, 즉 t검정통계량 값이 가 장 작은 것(p-value가 가장 큰 것)을 제외한다. 5) 비록 유의확률이 다른 것에 비해 다소 적더라도 분석자의 판단에 의해 설명변수 를 제외 할 수 있다. 수작업 1) 모형 유의성 검정 - F 검정 귀무가설 : 모든 설명변수가 유의하지 않음 - 선택되면 분석 종료 대립가설이 선택되어 모형 내 설정한 설명변수 중 적어도 하나라도 유의하면 다 음 단계로 넘어간다. 2) 개별 설명변수 - t 검정 각 설명변수(예측변수)의 유의성 검정 85

섹션 2 통계량 이용 수정결정계수 결정계수 Determination Coefficient = SSRp SST = 1 그러나 설명변수의 증가로 줄어든 SSE의 값과 오차 자유도의 감소가 상쇄되므 로 설명력의 지표로 좋은 것은 아니다. 그리고 유의성을 검정할 검정통계량이 존 재하지 않는다. 수정결정계수는 설명변수 군과 개수가 서로 다른 회귀모형의 설명력을 비교할 때 사용된다. 종속변수의 예측 값을 높이는 모형을 선택하는 것이 분석 목적이라면 이 방법을 이용하여 최적 모형을 찾으면 됨 SSEp SST SST/n 1 수정(adjusted) 결정계수는 결정계수의 문제점(유의하지 않은 설명변수가 삽입 되어도 항상 증가)을 해결하기 위하여 계산되는 척도 가정 : e N(0, σ 2 I ) Rp2 = 1 SSEp /(n p 1) 다중회귀모형 모형 : y = Xb + e, 설명변수 벡터 x = (x1, x2,, xp) 2 Radj Rp2 는 모형내의 p개 설명변수들의 종속변수 (총)변동에 대한 설명력의 정도를 나 타내는 수치이므로 변수선택의 지표가 된다. 결정계수의 크기가 70%, 설명변수 수가 약간 충분함, 80% 이상이면 충분, 90% 이상 매우 충분 - 현재 선택된 설명변수만으로 종속변수 변동을 예측할(설 명) 수 있음 설명변수의 개수가 같은 경우 어떤 변수 그룹이 설명력이 높은가를 쉽게 알아보 는 사용할 수 있으나 검정 통계량은 존재하지 않는 단점이 있다. 그러나 설명변수 개수가 증가할 때 마다 결정계수는 항상 증가하므로 변수의 개 수가 다른 경우에는 수정 결정 계수를 사용하는 것이 좋다. Mallow Cp = SSEp MSEF n+ 2(p + 1) Mallow Cp 값이 설명변수 개수()와 근사한 경우 좋은 회귀 모형으로 판단한다. 여전히 이 방법에서도 각 설명변수의 유의성에 대한 검정을 실시한 것은 아니다. (이론적 근거) MSE(F ) = σ 2 이고 만약 모형이 적합하다면 Cp ( p + 1) Mallow Cp는 변수의 개수+1(절편)와 같다. 86

PRESSp = )2 (yi y(i) 예측잔차자승합(Prediction REsidual Sum of Squares) y(i) : i-번째 관측치를 제외한 후 모형을 추정한 후 구한 종속변수 yi의 적합값 ) i-번째 관측치 제외 잔차 = (yi y(i) 잔차자승합 PRESS 값이 적을수록 좋은 모형 Comment (수정)결정계수, Mallow, PRESS 통계량 이용 방법은 어떤 변수 군들이 좋은지 에 대한 지표만을 제공할 뿐 변수의 유의성은 검정되지 않았다. 일반적으로 이 방법들을 이용할 때는 수정 결정 계수와 Mallow Cp 에 의해 좋다 고 간주되는 변수 군들을 몇 개 선택하고 각 변수 군에 대해 PRESS 값을 계산 하여 최적 변수 군을 선택하면 된다. PRESS는 전혀 다른 변수 군을 비교할 때(변수들이 모두 유의한 경우) 사용되므 로 널리 사용된다. 서로 다른 변수 군의 적합 정도 비교 시 사용된다. AIC, SBC 모두 작을수록 적 합도가 높다. AIC(Akaike Information Criteria) A IC = n* ln(sse /n) + 2( p 1) SBC(Schwarz's Bayesian criterion) SBC = n* ln(sse /n) + ( p 1)ln(n) 87

섹션 3 유의성 검정 Backward 후진제거 추가 자승합 Full Model 모형 : y n 1 = Xn ( p+ 1) b( p+ 1) 1 + en 1, 설명변수 벡터 x = (x1, x2,, xp) 총변동 SSTF. 모형변동 SSRF (d f = p), 오차변동 SSEF (d f = n p 1) 오차분산(σ 2) 추정량 = MSEF = SSEF n p 1 모든 설명변수를 고려한 모형에서 유의하지 않은 설명변수를 하나씩 제거하는 방법 이다. 1) 고려된 설명변수를 모두 삽입한 후 설명변수 중 가장 유의하지 않은(유의확률이 가장 큰) 설명변수를 제외 2) 가장 유의하지 않다는 것은 다음 검정 결과 유의하지 않고 F값이 가장 작은 설명 변수를 의미한다. SSER(no Xk ) SSEF F(1,n p 1) MSEF 3) 모든 설명변수가 유의할 때까지 2)과정을 반복한다. Reduced Model 귀무가설 : 일부 설명변수가 유의하지 않다. 유의하지 않은 설명변수 개수 = p k 모형 : y n 1 = Xn (k+ 1) b(k+ 1) 1 + en 1, 설명변수 벡터 x = (x1, x2,, xk ), k < p 전진삽입 forward 1) 고려된 설명변수 중 설명력(SSR(Xk ) )이 가장 높고(유의확률이 가장 작음) 설명 력이 유의하면 변수를 선택한다. 총변동 SSTR. 모형변동 SSRR(d f = k), 오차변동 SSER(d f = n k 1) 검정통계량 SSRF SSRR SSER SSEF = F( p k, n p 1) MSEF MSEF 분자의 자유도는 귀무가설에 의해 줄어든 모수의 개수가 된다. 즉 full 모형의 설명변동과 reduced 모형의 설명변동의 차이가 유의적인가를 검 정하여 귀무가설을 기각, 채택하게 된다. max SSR(Xk ) F(1,n 2) MSE(xk ) 2) 이미 선택된 설명변수( Xk )의 설명 부분을 제외하고 남은 종속변수 변동 중 가장 많이 설명하고 (SSR(Xm Xk )이 가장 큰) 그 설명력이 유의한 경우 Xm을 2번째로 선택한다. max SSR(Xk, Xm ) SSR(Xk ) F(1,n 3) MSE(xk, xm ) 3) 유의한 설명변수가 없을 때까지 2)의 작업을 반복한다. 88

stepwise 단계삽입 최적변수 선택 단계 삽입(stepwise)은 Forward 방법과 유사하지만 한 번 선택된 설명 변수에 대 해서는 유의성 검정을 다시 실시한다는 점이 다르다. 서로 설명변수가 고려된 모형 중 최적 모형을 선택하고자 할 때는 PRESSp 나 수정 1) 고려된 설명변수 중 설명력(SSR(Xk ) )이 가장 높고(유의확률이 가장 작음) 설명 력이 유의하면 변수를 선택한다. = 첫단계는 전진삽입 방법과 동일함 새로운 자료(표본크기 n* ) 수집하고 모형의 예측력을 다음 방법에 의해 계산하여 각 모형을 비교한다. Mean Square Prediction Error 예측오차 평균자승합 2) 이미 선택된 설명변수( Xk )의 설명 부분을 제외하고 남은 종속변수 변동 중 가장 많이 설명하고 (SSR(Xm Xk )이 가장 큰) 그 설명력이 유의한 경우 Xm을 2번째로 선택한다. = 2번째 단계까지도 동일하다. SSR(Xk, Xm ) SSR(Xk ) F(1,n 3) MSE(xk, xm ) 3) 새롭게 선택된 변수( Xm )를 이용하여 기존 선택된 설명변수( )의 유의성을 검증 하여 유의하지 않으면 Xk을 제거한다. SSR(Xk, Xm ) SSR(Xm ) F(1,n 3) MSE(xk, xm ) 결정계수 값을 비교한다. n* MSPR = i (yi yi )2 n* 새로운 자료로 회귀 모형을 추정하였을 때 이전 자료에서 추정된 회귀 모형과 유사 하면 추정된 회귀 모형은 좋다고 판단할 수 있다. 새로운 자료 수집이 불가능한 경우 에는 데이터를 splitting하여 모형추정 데이터와 예측 데이터로 나누어 분석한다. 수정결정계수나 PRESS, AIC, SBC에 의한 최적 회귀모형 선택은 설명변수가 서 로 다른 그룹을 비교할 때 사용되는 통계량이다. 4) 유의한 설명변수가 존재하지 않을 때까지 2)~3)을 반복한다. 방법의 선택 다른 설명 변수가 주어진 경우 각 설명 변수의 설명력을 볼 수 있다는 점에서 어떤 학자들은 변수의 수가 많지 않으면 후진제거 방법을 많은 경우는 전진삽입 방법이 적합한 방법이라 한다. 통계 소프트웨어가 발달하기 전에는 계산이 복잡한 단계삽입 (Stepwise) 방법이 선호되지 않았으나 이제는 이 방법이 가장 선호된다. 설명변수 개수가 10개를 넘지 않는 경우는 수작업(t-검정)이 가장 적절하다. 이유는 분석자가 자신의 지식을 이용하여 해석이 용이하거나 더 좋다고 생각하는 변수를 선 택 할 수 있기 때문이다. 89

섹션 4 in Python 3) 상관계수 행렬 SMSA 예제 계속 종속변수 Mortality와 상관계수 높은 5개 변수 출력 1) 결측치 제외 => income 변수에 결측치가 존재함 => 결측치가 1개 제외되어 표본크기=59 2) 기초통계량 90

종속변수 상관계수 0.4 이상인 변수 출력 후진제거 https://towardsdatascience.com/feature-selection-with-pandas-e3690ad 8504b 유의수준 5% 후진 제거 선택변수 : 1월기온, 강우량, 인구밀도, 비백인비율, 사 무직비율, 오염물질 HCPOT, NOXPOT 회귀분석 모형 전진삽입 https://datascience.stackexchange.com/questions/24405/how-to-do-ste pwise-regression-using-sklearn 91

유의수준 10% 기준(In/Stay) 유의수준: 비백인비율, 교육수준, 1월기온. SO2Pot, 강우량, 7월기온 코드 import pandas as pd import numpy as np smsa=pd.read_csv('http://wolfpack.hnu.ac.kr/stat_notes/adv_stat/linea rmodel/data/smsa.csv') print(smsa.isnull().any()) #check if missing values exist smsa=smsa.dropna() smsa.shape pd.set_option('precision', 2) print(smsa.describe()) correlation = smsa.corr(method='pearson') columns = correlation.nlargest(6, 'Mortality').index columns import seaborn as sns import matplotlib.pyplot as plt #Using Pearson Correlation plt.figure(figsize=(12,10)) cor = smsa.corr() sns.heatmap(cor, annot=true, cmap=plt.cm.reds) plt.show() #Correlation with output variable 92

cor_target = abs(cor['mortality']) #Selecting highly correlated features relevant_features = cor_target[cor_target>0.4] relevant_features X = smsa.drop(['city','mortality'],1) #Feature/Prediction Matrix y = smsa['mortality'] #Target Variable #Adding constant column of ones, mandatory for sm.ols model import statsmodels.api as sm X1 = sm.add_constant(x) #Fitting sm.ols model model = sm.ols(y,x1).fit() model.pvalues #Backward Elimination cols = list(x.columns) pmax = 1 while (len(cols)>0): p= [] X_1 = X[cols] X_1 = sm.add_constant(x_1) model = sm.ols(y,x_1).fit() p = pd.series(model.pvalues.values[1:],index = cols) pmax = max(p) feature_with_p_max = p.idxmax() if(pmax>0.05): cols.remove(feature_with_p_max) else: break selected_features_be = cols print(selected_features_be) def stepwise_selection(x, y, initial_list=[], threshold_in=0.1, threshold_out = 0.1, verbose=true): included = list(initial_list) while True: changed=false # forward step excluded = list(set(x.columns)-set(included)) new_pval = pd.series(index=excluded) for new_column in excluded: model = sm.ols(y, sm.add_constant(pd.dataframe(x[included+[new_column]]))).fit() new_pval[new_column] = model.pvalues[new_column] best_pval = new_pval.min() if best_pval < threshold_in: best_feature = new_pval.argmin() included.append(best_feature) changed=true if verbose: print('add {:30} with p-value {:.6}'.format(best_feature, best_pval)) # backward step model = sm.ols(y, sm.add_constant(pd.dataframe(x[included]))).fit() # use all coefs except intercept pvalues = model.pvalues.iloc[1:] worst_pval = pvalues.max() # null if pvalues is empty if worst_pval > threshold_out: changed=true worst_feature = pvalues.argmax() included.remove(worst_feature) if verbose: print('drop {:30} with p-value {:.6}'.format(worst_feature, worst_pval)) if not changed: break return included result = stepwise_selection(x, y) print(result) 93