【问题标题】:OLS of statsmodels does not work with inversely proportional data?statsmodels 的 OLS 不适用于反比例数据?
【发布时间】:2014-09-03 14:10:37
【问题描述】:

我正在尝试使用一些反比例数据执行普通最小二乘回归,但似乎拟合结果错误?

import statsmodels.formula.api as sm
import numpy as np
import matplotlib.pyplot as plt

y = np.arange(100, 0, -1)
x = np.arange(0, 100)

result = sm.OLS(y, x).fit()
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(20, 4), sharey=True)
ax.plot(x, result.fittedvalues, 'r-')
ax.plot(x, y, 'x')

fig.show()

【问题讨论】:

    标签: python statistics regression linear-regression statsmodels


    【解决方案1】:

    你没有像documentation suggests那样添加一个常量,所以它试图把整个东西都写成y = m x。你最终得到一个m,它大约是 0.5,因为它已经尽力而为,因为你必须在 0 时为 0,等等。

    以下代码(注意导入的变化)

    import statsmodels.api as sm
    import numpy as np
    import matplotlib.pyplot as plt
    
    y = np.arange(100, 0, -1)
    x = np.arange(0, 100)
    x = sm.add_constant(x)
    
    result = sm.OLS(y, x).fit()
    fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(10, 8), sharey=True)
    ax.plot(x[:,1], result.fittedvalues, 'r-')
    ax.plot(x[:,1], y, 'x')
    
    plt.savefig("out.png")
    

    生产

    系数为[ 100. -1.]

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 2023-02-15
      • 2014-02-09
      • 1970-01-01
      • 2021-08-09
      • 2018-10-17
      • 2021-02-28
      • 2018-12-05
      • 2017-11-02
      相关资源
      最近更新 更多