2 回答

TA貢獻1876條經驗 獲得超6個贊
model.predict是一種預測值的方法,因此您可以為其提供一個看不見的數據集:
import statsmodels.formula.api as smf
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(100,2),columns=['X','Y'])
model = smf.ols('Y ~ X',data=df).fit()
model.predict(exog=pd.DataFrame({'X':[1,2,3]}))
如果您不提供 exog 參數,它會通過調用存儲在對象下的數據返回預測,您可以在源代碼下看到:
def predict(self, params, exog=None):
"""
Return linear predicted values from a design matrix.
Parameters
----------
params : array_like
Parameters of a linear model.
exog : array_like, optional
Design / exogenous data. Model exog is used if None.
Returns
-------
array_like
An array of fitted values.
Notes
-----
If the model has not yet been fit, params is not optional.
"""
# JP: this does not look correct for GLMAR
# SS: it needs its own predict method
if exog is None:
exog = self.exog
return np.dot(exog, params)
另一方面,model.fittedvalues是一個屬性,它是存儲的擬合值。由于上面解釋的原因,它將與 model.predict() 完全相同。
您也可以查看此類型的方法。

TA貢獻1807條經驗 獲得超9個贊
調用時smf.ols(....).fit()
,您將模型與數據相匹配。即對于數據集中的每個數據點,模型會嘗試對其進行解釋并為其計算一個值。在這一點上,模型只是試圖解釋你的歷史數據,還沒有預測任何東西。另請注意,這fittedvalues
是模型的屬性(或屬性)。
model.predict()
是模型實際預測未見值的一種方法。
添加回答
舉報