線形回帰を当てはめた後、影響統計を探しています。 Rでは、次のようにそれらを取得できます(例):
hatvalues(fitted_model) #hatvalues (leverage)
cooks.distance(fitted_model) #Cook's D values
rstandard(fitted_model) #standardized residuals
rstudent(fitted_model) #studentized residuals
等.
次のようなモデルをフィッティングした後、Pythonでstatsmodelsを使用するときに、同じ統計を取得するにはどうすればよいですか?
#import statsmodels
import statsmodels.api as sm
#Fit linear model to any dataset
model = sm.OLS(Y,X)
results = model.fit()
#Creating a dataframe that includes the studentized residuals
sm.regression.linear_model.OLSResults.outlier_test(results)
編集:以下の回答を参照してください...
私はここでそれを見つけました:
OLSInfluence.summary_frame()
受け入れられた答えは正しいですが、モデルを適合させた後、影響インスタンス(statsmodels.regression.linear_model.OLSResults.get_influence
)のインスタンス属性として統計に個別にアクセスすると便利であることがわかりました。これにより、すべてではなく1つの統計にのみ関心があったため、summary_frame
にインデックスを付ける必要がなくなりました。だから多分これは他の誰かを助けます:
import statsmodels.api as sm
#Fit linear model to any dataset
model = sm.OLS(Y,X)
results = model.fit()
#create instance of influence
influence = results.get_influence()
#leverage (hat values)
leverage = influence.hat_matrix_diag
#Cook's D values (and p-values) as Tuple of arrays
cooks_d = influence.cooks_distance
#standardized residuals
standardized_residuals = influence.resid_studentized_internal
#studentized residuals
studentized_residuals = influence.resid_studentized_external