首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OLS回归[状态模型]上进行线性测试

如何在OLS回归[状态模型]上进行线性测试
EN

Stack Overflow用户
提问于 2022-08-26 13:04:08
回答 1查看 84关注 0票数 0

我使用下面的代码测试线性度,但是,状态模型认为我的模型不是线性的。输入:

代码语言:javascript
复制
import numpy as np
import statsmodels.api as sm
from statsmodels.stats.diagnostic import linear_reset


x = np.random.randn(100)
y = np.random.randn(100)

regression = sm.OLS(y, x).fit_regularized()
linear_reset(regression, power = 2, test_type = "fitted")

给出错误:

代码语言:javascript
复制
TypeError: result must come from a linear regression model

你知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-26 13:57:46

linear_reset需要一个RegressionResults对象作为第一个参数,而fit_regularized()方法以行regression = sm.OLS(y, x).fit_regularized()返回的对象是一个RegularizedResultsWrapper

如果要使用linear_reset测试,则应该通过调用.fit()方法使用非正则OLS模型,这样返回的对象就是RegressionResultsWrapper,可以传递给linear_reset

代码语言:javascript
复制
import numpy as np
import statsmodels.api as sm
from statsmodels.stats.diagnostic import linear_reset


x = np.random.randn(100)
y = np.random.randn(100)

regression = sm.OLS(y, x)
result = regression.fit()

linear_reset(result, power = 2, test_type = "fitted")

这个错误是有意义的,因为一个是试图测试正则化模型的非线性,而函数则是一个非正则模型。

特别是,linear_reset检验假设给定的模型是一个非正则的最小二乘模型,并试图证明x与y之间关系的非线性。

如果将此检验应用于正则化模型,则上述假设不再成立,且测试结果毫无意义;例如,它可以报告一个缺失的非线性,而这可能是由正则化因子引起的,使参数的值接近于0。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73501475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档