Spark线性回归中获取协方差矩阵

Alg*_*man 5 scala covariance linear-regression apache-spark apache-spark-mllib

我一直在研究 Spark 的文档,但仍然找不到如何在进行线性回归后获取协方差矩阵。

给定输入训练数据,我做了一个非常简单的线性回归,与类似:

val lr = new LinearRegression()
val fit = lr.fit(training)
Run Code Online (Sandbox Code Playgroud)

获取回归参数很简单fit.coefficients,但似乎没有关于如何获取协方差矩阵的信息。

为了澄清一下,我正在寻找类似于vcovR 中的函数。有了这个,我应该能够做一些类似vcov(fit)获取协方差矩阵的事情。任何其他有助于实现这一目标的方法也都可以。


编辑

这里详细讨论如何从线性回归得到协方差矩阵。标准差很容易获得,因为它是由 提供的fit.summary.meanSsquaredError。然而,参数(X'X) -1很难得到。看看这是否可以用来以某种方式计算协方差矩阵,这将是很有趣的。

Den*_*soi 3

尽管整个协方差矩阵是在驱动程序上收集的,但如果不制作自己的求解器,就不可能获得它。您可以通过复制WLS并设置其他“getter”来做到这一点。

无需深入代码即可获得的最接近的是lrModel.summary.coefficientStandardErrors基于矩阵(A^T * W * A)的对角线该矩阵基于上三角矩阵(协方差)。

我认为这还不够,所以对此感到抱歉。