gpt4 book ai didi

python - 如何修复线性回归中的 y 截距值?

转载 作者:行者123 更新时间:2023-12-01 02:22:21 24 4
gpt4 key购买 nike

我正在尝试使用 scipy 的 linregress() 来拟合数据中的最小二乘线,如下所示:

from scipy import stats
import numpy as np

y = [30, 60, 19, 28, 41, 49, 62, 75, 81]
x = np.arange(0,9)

grad, intercept, r_value, p_value, std_err = stats.linregress(x,y)

但是,我还想修复特定点的 y 轴截距。

理想情况下,我计划将其修复为 y 列表中的第一个值。换句话说,我真正想做的是让最佳拟合线穿过 y 列表中的第一个值,在我的示例中为 30。

但看起来 Scipy 正在为我决定 y 轴截距。

如何在 scipy 线性回归方法中将 y 轴截距固定为特定值?

PS:我也尝试过使用 statsmodels 的 OLS,但它只允许我保持 y-intercept=0 或让它为我决定最佳截距。

最佳答案

在 statsmodels 中,您可以移动 y,使原点为零并排除截距:

res = OLS(y - 30., x).fit()

其中 x 包含没有截距的回归量(一列)。那么解释就是我们预测与 30 的偏差。

y_predicted = 30 + res.predict(...)

几乎所有统计数据(例如 bse、tvalues、pvalues 和拟合统计数据(例如 rsquared))都与位置偏移无关(假定常数固定为偏移值)。

关于python - 如何修复线性回归中的 y 截距值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47843086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com