2016-11-10 69 views
2

使用熊貓數據框和統計OLS方法,即時通訊能夠使用代碼來運行迴歸Python熊貓 - 如何訪問stats 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 

我試着去得到公正的擬合係數,這不工作

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

順便說一句:成員名稱中的前導「_」表示私有,並且預計您不會直接訪問這些。例如_x_trans