2012-03-30 4 views
3

나는 적합 데이터를 예측하는 데 scikits.statsmodels OLS predict 함수를 사용했지만 팬더 사용으로 전환하려고합니다.팬더 OLS를 사용한 예측

문서 refers to OLS뿐만 아니라 y_predict이라는 기능에도 불구하고 올바르게 사용하는 방법에 대한 설명서를 찾을 수 없습니다. 내가 발작을 생산할 수있는 반면

exogenous = { 
    "1998": "4760","1999": "5904","2000": "4504","2001": "9808","2002": "4241","2003": "4086","2004": "4687","2005": "7686","2006": "3740","2007": "3075","2008": "3753","2009": "4679","2010": "5468","2011": "7154","2012": "4292","2013": "4283","2014": "4595","2015": "9194","2016": "4221","2017": "4520"} 
endogenous = { 
    "1998": "691", "1999": "1580", "2000": "80", "2001": "1450", "2002": "555", "2003": "956", "2004": "877", "2005": "614", "2006": "468", "2007": "191"} 

import numpy as np 
from pandas import * 

ols_test = ols(y=Series(endogenous), x=Series(exogenous)) 

그러나 : 예로서

하나는 것 scikits.statsmodels에서

>>> ols_test.y_predict 
1998  675.268299 
1999  841.176837 
2000  638.141913 
2001 1407.354228 
2002  600.000352 
2003  577.521485 
2004  664.681478 
2005 1099.611292 
2006  527.342854 
2007  430.901264 

:

>>> ols_test.y_fitted 
1998  675.268299 
1999  841.176837 
2000  638.141913 
2001 1407.354228 
2002  600.000352 
2003  577.521485 
2004  664.681478 
2005 1099.611292 
2006  527.342854 
2007  430.901264 

예측은 다른 아무것도 생산하지 다음을 수행하십시오.

import scikits.statsmodels.api as sm 
... 
ols_model = sm.OLS(endogenous, np.column_stack(exogenous)) 
ols_results = ols_mod.fit() 
ols_pred = ols_mod.predict(np.column_stack(exog_prediction_values)) 

외인성의 한계까지 내생 데이터를 예측하기 위해 팬더에서 어떻게합니까?

업데이트 : Chang 덕분에 새 버전의 Pandas (0.7.3)는 현재이 기능을 표준으로 제공합니다.

+0

하이 ols_test.beta

합니까? 3 개의 독립 변수가 있다고 가정하면, 이제는 [x1, x2, x3]을 사용하여 {y1, x2, x3}를 사용하여 세 개의 베타 [b1, b2, b3]를 계산합니다. – tesla1060

답변

2

회귀의 예측 y 값을 얻는 방법에 대한 문제는 무엇입니까? 아니면 회귀 계수를 사용하여 외생 변수에 대한 다른 샘플 세트의 예측 된 y 값을 얻는 방법입니까? pandas y_predict와 y_fitted는 동일한 값을 제공해야하며 둘 다 scikits.statsmodels의 predict 메소드와 동일한 값을 제공해야합니다. 당신이 회귀 계수를 찾고 있다면, 당신은 ols.predict을 사용하는 방법에 대한 예를 제공하기 위해 신경 것,

+0

2008 년에서 2017 년까지 y 값을 예측하고 싶습니다. .statsmodels는 예측한다. 그러나 나는 팬더와 함께 그것을 알아들을 수 없다. – Turukawa

+0

Gotcha. pandas ols 함수를 사용하려면 지금 (ols_result.beta [ 'x'] * exog_2008_2017) .sum() + ols_result.beta [ 'intercept']를 수행 할 수 있습니다. –

+0

나는 여기에 관한 Github 문제를 열었습니다 : https://github.com/pydata/pandas/issues/1008 statsmodels 기능을 복제하는 기능을 제공합니다. –