2014-04-22 6 views
0

포아송과 함께 GLM 모델을 사용하는 방법을 이해하는 데 어려움이 있습니다.GLM을 사용하는 데 문제가 있습니다

import numpy as np 
import scikits.statsmodels as sm 

dataset = pd.DataFrame({'A':np.random.rand(100)*1000, 
         'B':np.random.rand(100)*100, 
         'C':np.random.rand(100)*10, 
         'target':np.random.rand(100)}) 

X = dataset.ix[:,['A','B','C']].values 
y = dataset.ix[:,['target']].values 
size = 1e5 
nbeta = 3 

fam = sm.families.Poisson() 
glm = sm.GLM(y,X, family=fam) 
res = glm.fit() 
  • 나는 나는 O 또는 1 대상 레이블을 경우, 대상으로 "대상"열을 사용하고?
  • 사람은 푸 아송 predict
+0

scikits 네임 스페이스에서 가져 오는 경우 매우 오래된 버전의 statsmodels입니다. 확실히 업그레이드해야합니다. – jseabold

+0

업그레이드 된 버전으로 예제를 보여줄 수 있습니까? 이 GLM을 scikit에서 찾을 수 있습니까? 찾을 수 없습니다. – user3378649

+0

Poisson 모델은 카운트 데이터 모델을위한 모델입니다 (작업 내용을 알고 의도적으로 지속적인 데이터에 적용하지 않는 경우). 여기 포아송을 사용 하시겠습니까? – jseabold

답변

1

소스 포지 지금 다운 다른 기능을 가지고로서 내가 예측 값을 얻기 ca를 어떻게 설명 할 수 있습니다. 백업 할 때 documentationexamples을 읽어야합니다. 예측과 GLM을위한 많은 사용법 노트가 있습니다.

대상에 라벨을 지정하는 방법은 귀하에게 달려 있으며 아마도 교차 유효성 확인을위한 질문 일 수 있습니다. 포아송은 카운트 용이지만 연속 데이터에서 사용할 수 있지만 수행중인 작업을 알아야합니다.

0/1이면 Logit 또는 Probit 모델이 필요합니다. 이 같은. 팬더 개체를 numpy로 변환 할 필요가 없습니다.

import numpy as np 
import statsmodels.api as sm 

dataset = pd.DataFrame({'A':np.random.rand(100)*1000, 
         'B':np.random.rand(100)*100, 
         'C':np.random.rand(100)*10, 
         'target':np.random.randint(0, 5, 100)}) 

X = dataset[['A','B','C']] 
X['constant'] = 1 
y = dataset['target'] 
size = 1e5 
nbeta = 3 

fam = sm.families.Poisson() 
glm = sm.GLM(y,X, family=fam) 
res = glm.fit() 

predict = res.predict() 

아니면 포아송의 최대 우도 추정기를 직접 사용할 수 있습니다.

res = sm.Poisson(y, X).fit() 
predict = res.predict() 
+0

고마워,이 예제와 함께 시계열을 사용하여 다음 이벤트 (시간 기준)를 예측할 수 있는지 궁금합니다. 'B': np.array (범위 (30)의 i에 대해 datetime.datetime (2013, 9, 28, i, 0)) – user3378649

+0

구현과 관련하여 datetime은 후드 아래 정수처럼 동작해야합니다. , 원칙적으로 작동 할 수 있습니다. 지금까지하고 싶은 일이 십자가 유효성 확인을위한 질문입니다. 이처럼 포아송 과정을 모델링 할 수는 있지만 생존 분석을 조사하는 것이 좋습니다. [이 답변] (https://stats.stackexchange.com/questions/44046/what-are-the-differences-between-survival-analysis-and-poisson-regression)이 도움이 될 수 있습니다. – jseabold

+0

고마워! 내가 너를 잘 이해한다면. 예측 인자의 레벨에 따라 발생 확률을 예측하려면 이항 GLM을 사용합니다. 예측기 수준에 따라 이벤트 수를 예측하려면 Poisson GLM을 사용합니다. 나는 "res.predict()"가 확률을 산출한다는 것을 본다.이 경우 확률은 무엇을 의미 하는가? 이벤트의 수를 예측하는 경우 (수는 하나에서 다른 수입니다). 또 하나의 질문은, 우리가 로지스틱 회귀 (logistic regression)와 같이 대상을 (O 또는 1)로 표시해야 하는가? – user3378649

관련 문제