python - 进行滚动线性回归的有效方法

标签 python matlab numpy linear-regression rolling-computation

我有两个向量 x 和 y,我想计算它们的滚动回归,例如 (x(1:4),y(1:4)), (x(2:5) 上的 a ),y(2:5)), ...
已经有这个功能了吗?我想到的最佳算法是 O(n),但对每个子数组应用单独的线性回归将是 O(n^2)。 我正在使用 Matlab 和 Python (numpy)。

最佳答案

不,没有任何函数可以进行滚动回归,返回您想要的所有统计数据,并且高效地完成。

这并不意味着您不能编写这样的函数。这样做意味着多次调用转换或过滤器等工具。这就是 Savitsky-Golay 工具的工作原理,它可以完成您想要的大部分工作。对每个回归系数进行一次调用。

使用更新和更新工具来使用/修改先前的回归估计不会像调用 conv 那样有效,因为当您使用 conv 进行工作时,您只需要分解线性系统一次。无论如何,没有必要进行更新,只要系列中的点均匀分布即可。这就是 Savitsky-Golay 起作用的原因。

关于python - 进行滚动线性回归的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15636796/

相关文章:

matlab - 如何在 Matlab 中检查一个类是否有特定的基类

Matlab编程处理矩阵

python - 如何在 Python 中对角化稀疏 csr 一维矩阵(向量)?

python - Python 中正向替换的数值稳定性

python - 如何计算 tensorflow 中的协方差?

matlab - 提取元胞数组中某个字符的索引

python - 根据条件填充行

python - 为什么 multivariate_normal 方法的平均输出与分布均值不同?

python - 如何在 Matplotlib 中设置补丁的边色和面色的不同不透明度

python - emacs python jedi错误