2016-11-10 3 views
2

Использование dataframe панды и метод статистики олов, Im, способную регрессия, используя кодPython pandas - как получить доступ к параметрам статистики ols?

import pandas as pd 
from pandas.stats.api import ols 
df = pd.DataFrame({"A": [56, 55, 57, 58, 56, 58, 59, 60, 63, 62, 63, 65, 66, 68], "B": [1,2,3,4,5,6,7,8,9,10,11,12,13,14]}) 
res = ols(y=df['A'], x=df[['B']]) 

Однако, хотя это работает

print res 

Im пытается получить только подогнанный коэффициент, и это не работает

print res.params 

я получаю ошибку

AttributeError: 'OLS' object has no attribute 'params' 

, как я могу получить доступ к параметрам, я особенно глядя экстракт коэффициент регрессии, то есть все, что я заинтересован.

ответ

1

попробовать

res.beta 

B    0.945055 
intercept 53.340659 
dtype: float64 
In [48]: 

Для только B

res.beta.B 

0.945055 
+0

и как я могу получить только 0,945055 без остального? –

+0

@ RunnerBean обновленный пост – piRSquared

1

В общем, вы можете использовать dir(variable), чтобы увидеть все членов объекта.

Для res (класс 'pandas.stats.ols.OLS') вы увидите, что есть члены:

'beta', 'df', 'df_model', 'df_resid', 'f_stat', 'f_test', 'nobs', 'nw_lags', 'p_value', 'predict', 'r2', 'r2_adj', 'resid', 'rmse', 'sm_ols', 'std_err', 'summary', 'summary_as_matrix', 't_stat', 'var_beta', 'x', 'y', 'y_fitted', 'y_predict' 

так что вы можете сделать res.beta, например. Что в свою очередь имеет 'B' и 'intercept'. ->res.beta.B

BTW: ведущий «_» в имени участника означает «частный», и ожидается, что вы не получите доступ к ним напрямую. например _x_trans

Смежные вопросы