为了账号安全,请及时绑定邮箱和手机立即绑定

statsmodel中预测值和拟合值的区别

statsmodel中预测值和拟合值的区别

绝地无双 2023-02-22 19:01:35
我有一个非常基本的问题,我无法以某种方式找到真正的答案。假设我有一个模型:import statsmodels.formula.api as smf model = smf.ols(....).fit()model.fittedvalues和 和有什么不一样model.predict?
查看完整描述

2 回答

?
HUX布斯

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() 完全相同。


您也可以查看此类型的方法。


查看完整回答
反对 回复 2023-02-22
?
函数式编程

TA贡献1807条经验 获得超9个赞

调用时smf.ols(....).fit(),您将模型与数据相匹配。即对于数据集中的每个数据点,模型会尝试对其进行解释并为其计算一个值。在这一点上,模型只是试图解释你的历史数据,还没有预测任何东西。另请注意,这fittedvalues是模型的属性(或属性)。

model.predict()是模型实际预测未见值的一种方法。


查看完整回答
反对 回复 2023-02-22
  • 2 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号