【问题标题】:Finding and visualizing the Linear Regression Curve for N days at a time一次查找和可视化 N 天的线性回归曲线
【发布时间】:2019-03-30 04:23:13
【问题描述】:

想要每 n 天找到一次线性回归线,这通常称为“线性回归曲线”。

我有时间序列数据,我需要在其中找到每 n 天的线性回归曲线 - 基本上每 n 天的斜率会改变,并且每 n 天会有一条新的线性回归线 - 所有这些都连接在稍后上图。

def slope_intercept(x_val, y_val):
x = np.array(x_val)
y = np.array(y_val)
m = ( ( (np.mean(x)*np.mean(y) ) - np.mean(x*y)) /
    ( ( np.mean(x)*np.mean(x)) - np.mean(x*x)))

m = round(m,2)
b=(np.mean(y)-np.mean(x)*m)
b=round(b,2)
return m,b

m,b=slope_intercept(future.index.tolist(), future['close'].tolist())
future['reg_line'] = [(m*x)+b for x in future.index.tolist()]

一旦找到它,我想在图表上将其可视化。下面是所述可视化的图片,以及整个数据时间线性回归的代码示例。我猜这是某种类型的for循环来做到这一点?

【问题讨论】:

    标签: python pandas linear-regression curve-fitting


    【解决方案1】:
    from scipy.stats import linregress
    
    linregress(x,y)
    

    x 和 y 是数组或列表。

    【讨论】:

    • 在数据集中的整个时间范围内为我提供一条直线。我需要每 n 天多行。这有意义吗?
    • from sklearn import linear_model clf = linear_model.LinearRegression() clf.fit([[getattr(t, 'x%d' % i) for i in range(1, 8)] for t in texts], [t.y for t in texts])
    • 您能详细说明一下吗? getattr() 部分在做什么?谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 2020-06-25
    • 2021-06-17
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多