我已經看到這個問題出現在我的編碼幾次,現在statsmodels計算的「Df模型」小於該模型擬合的參數的數量。爲什麼statsmodels「Df Model」少於模型參數的數量?
據我所知,無論我適合哪種模型和(我相信)僅在具有不小(>〜20?)數量的參數的情況下才會發生。這可能與參數之間的高度多重共線性有關嗎?
由於這個問題似乎與大量的參數(與'真實'的數據)出現,我不確定我可以重新創建一些虛擬數據來展示這個問題。我只是希望有人看到它,並知道它爲什麼會發生。
無論如何,我的代碼示例(&輸出爲註釋)如下所示。
print type(base_features) #<type 'list'>
print len(base_features) #70
model = sm.GLM(train1['target'], train1[base_features], family=Poisson())
#^ produces the same results for other glm family models as well as standard OLS
poi_base = model.fit()
print len(poi_base.params) #70
print poi_base.df_model #63
請注意,是用戶構建攔截/在「base_features」不變,但即使statsmodels是能夠分辨,df_model仍然應該是69最小。