我有一个数据集,其中每一行代表某些行为的发生次数。列代表设定时间量的窗口。看起来像这样:

+ ---------- + ---------- + ---------- + ---------- + ----- ------ + ------ +
|第1集|第2集|第3集|第4集|第5集| ... |
+ ---------- + ---------- + ---------- + ---------- + ----- ------ + ------ +
| 2 | 0 | 1 | 3 | | |
| 1 | 2 | 4 | 2 | 3 | |
| 0 | | | | | |
+ ---------- + ---------- + ---------- + ---------- + ----- ------ + ------ +


有超过150集。我想找到一种方法来将每一行表示为趋势,而不管出现的事件显示的是多还是少。

我尝试首先计算每行每3/5/10个像元的平均值/中位数/和(因为每行具有不同的长度和许多0值),然后使用它们与一条水平线(代表时间)相关),则这些相关系数应说明趋势( 0表示向上)。趋势将用于进一步分析。

我想知道是否有更好的方法可以做到这一点。谢谢。

最佳答案

如果您希望趋势是线性的,则可以将线性回归分别拟合到每一行,并使用时间来预测行为的发生次数。然后存放斜坡。

该斜率表示将时间增加1集对行为的影响。自然也考虑了时间序列长度的差异。

关于python - 如何表示数据的趋势(向上/向下/没有变化)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59180323/

10-12 17:01