一次跨多个列查找线性趋势

时间:2019-08-07 01:06:45

标签: python numpy scipy linear-regression

我正在寻找一次跨多个列的线性趋势。

我有一个数据框跨越许多列,并且想一次查找每一列的线性趋势,因此我尝试使用numpy.polyfitscipy.linregress,但改为使用多列仅有一个会引起问题

我首先创建了一个x向量,该向量的长度恰好用作x变量

    x = np.arange(0, len(data))

然后在polyfitscipy.linregress中使用它

    z = np.polyfit(x,data,1)

还有:

    slope, intercept, r_value, p_value, std_err = stats.linregress(x,data)

这两种尝试均无效,至少效果不佳。 numpy尝试返回的数组意义不大:

    array([[ 2.41486068e-01,  1.44953560e+01, -2.13374613e+01,
         2.96418989e+01,  3.22187822e+01, -2.31909185e+01,
         1.29256966e+01,  3.00044995e+03,  5.29339525e+02,
         1.17439628e+02,  2.14332301e+02,  5.53914345e+02,
         2.01359443e+03,  3.85400413e+03,  2.73097523e+03,
         4.36991434e+03,  4.65668318e+03,  1.09214809e+04,
         1.22903880e+04,  4.54465470e+04,  1.44244135e+05,
         4.44253437e+04,  3.97449362e+05,  4.50699857e+06],
       [ 2.55029240e+01,  1.04122807e+02,  6.85701754e+02,
         1.13766082e+02, -5.26374269e+01,  1.26212281e+03,
         1.65853801e+02, -1.03461579e+04, -7.30163743e+02,
         4.51048538e+03,  8.33842105e+02,  1.39311696e+03,
        -3.93859649e+01, -1.13257018e+04, -7.10956725e+03,
        -1.63806608e+04, -1.89128070e+04, -3.52064211e+04,
         3.22219240e+04,  2.08106906e+05, -2.73555982e+05,
         5.78638579e+05, -1.72544502e+06, -1.36054242e+07]])

尽管scipy尝试出错了(显然,有多个Y值没有意义,但是嘿,一定要尝试一下)

我会并且一直在寻找一种优雅的方法,可以一次在所有列中查找线性趋势,并获得我所拥有的列长的输出。

有关如何执行此操作的任何建议?

0 个答案:

没有答案