大数据下的广义最小二乘法

2024-04-20 06:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想线性拟合那些没有独立取样的数据。我遇到了广义最小二乘法:

b=(X'*V^(-1)*X)^(-1)*X'*V^(-1)*Y

方程是Matlab格式;X和{}是数据点的坐标,V是一个“方差矩阵”。在

问题是由于它的大小(1000行和1000列),V矩阵变得奇异,因此不可逆。关于如何解决这个问题有什么建议吗?也许用一种方法来解决广义线性回归问题,而不是GLS?我可以使用并且(稍微)熟悉的工具是Numpy/Scipy、R和Matlab。在


Tags: 工具数据方法numpy格式线性矩阵scipy
2条回答

而不是:

b=(X'*V^(-1)*X)^(-1)*X'*V^(-1)*Y

使用

^{pr2}$

也就是说,将X*(Y^-1)的所有实例替换为X/Y。Matlab将跳过求逆运算(这很难,而且容易出错),直接计算除法。在


编辑:即使有最好的矩阵操作,有些操作是不可能的(例如导致你所描述的错误)。在

一个可能与你的问题相关的例子是,如果试图在约束条件下解决最小二乘问题,那么多重测量是完美的,100%相关的。除非在极少数退化的情况下,无论是在数学上还是在物理上,都无法做到这一点。您需要测量中的一些独立性来解释测量噪声或建模错误。例如,如果您有两个测量值,每个测量值的方差为1,并且完全相关,那么您的V矩阵如下所示:

V = [1   1; ...
     1   1];

你永远也无法适应这些数据。(这通常意味着您需要重新制定基本函数,但这是一篇较长的文章。)

然而,如果你调整你的测量方差,以允许测量之间的一些小的独立性,那么它就可以正常工作了。例如,95%的相关测量值应该是这样的

V = [1      0.95; ...
     0.95   1  ];

可以使用奇异值分解作为解算器。它会尽最大努力的。在

我通常用另一种方式来思考最小二乘法。你可以在这里读到我的想法:

http://www.scribd.com/doc/21983425/Least-Squares-Fit

看看这对你是否有用。在

我不明白大小是个问题。如果你有N个(x, y)对,你仍然只需要求解M阶多项式中的(M+1)系数:

y = a0 + a1*x + a2*x^2 + ... + am*x^m

相关问题 更多 >