According to the docs ,我可以通过在 RegressionResults 实例上使用 scale() 类方法来找到回归的标准误差。
但是,我无法获取 RegressionResults 实例。
这就是我所做的:
y = foo; X = bar
model = sm.OLS(y, X)
results = model.fit()
研究对象类型...
print type(results)
...返回一个 RegressionResultsWrapper
<class 'statsmodels.regression.linear_model.RegressionResultsWrapper'>
这个“RegressionResultsWrapper”没有记录,我找不到操作它的方法。 results.scale() 失败,无法获取我想要的信息。
此外,the docs声明 .fit() 应该返回 RegressionResults 类实例,但返回的是 RegressionResultsWrapper,如上所示。
知道如何获取此回归模型的“回归标准误差”信息吗?
最佳答案
这是 Python 的“duck typing”约定。当文档说 fit()
应返回 RegressionResults
实例时,它实际上意味着它将返回与 RegressionResults
公共(public)接口(interface)兼容的内容>。 RegressionResults
的任何记录的属性和方法都应该可以根据文档中的描述从返回的对象访问。事实似乎确实如此:如果您访问 results.scale
,您将得到一个数字。请注意,它不是一个方法;而是一个方法。这是一个属性。如果您在文档中错过了它,那么尝试将其作为方法调用时收到的错误消息会告诉您这一点。
确实,从技术上讲,他们应该说该方法返回与 RegressionResults
兼容的东西,而不是 RegressionResults
实例本身,但可以这样理解:大多数 Python 程序员认为,在正常情况下,您不应该实际检查给定对象的类型。
关于python - 在python statsmodels中,找到回归的标准误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41312908/