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

时间:2018-01-11 06:16:55

标签: scala apache-spark linear-regression apache-spark-mllib covariance

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

鉴于输入训练数据,我做了一个非常简单的线性回归,类似于this

val lr = new LinearRegression()
val fit = lr.fit(training)

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

只是为了澄清,我正在寻找类似于R中的vcov的函数。有了这个,我应该能够像vcov(fit)这样的东西来获得协方差矩阵。任何其他有助于实现这一目标的方法也是可以的。

修改

详细讨论了如何从线性回归得到协方差矩阵的解释here。由fit.summary.meanSsquaredError提供的标准偏差很容易获得。但是,参数(X'X) -1 很难获得。看看是否可以用某种方式计算协方差矩阵将会很有趣。

1 个答案:

答案 0 :(得分:2)

尽管driver上的整个协方差矩阵已收集,但如果不制作自己的求解器,则无法获得它。您可以通过复制WLS并设置其他“getters”来实现。

最接近代码的是lrModel.summary.coefficientStandardErrors代码fh = open('text.txt','r+') fh.write('Line0\n') fh.readlines() fh.close() based在倒置matrix(A ^ T * W * A)的对角线上based Exhibition: An Adaptive OS X App上三角矩阵(协方差)。

我认为这不足以让我感到抱歉。