【问题标题】:Getting covariance matrix in Spark Linear Regression在 Spark 线性回归中获取协方差矩阵
【发布时间】:2018-06-20 09:58:32
【问题描述】:

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

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

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

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

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


编辑

关于如何从线性回归得到协方差矩阵的解释在here详细讨论。标准差很容易得到,因为它由fit.summary.meanSsquaredError 提供。但是,参数 (X'X)-1 很难得到。看看这是否可以用来计算协方差矩阵会很有趣。

【问题讨论】:

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


    【解决方案1】:

    虽然整个协方差矩阵是在driver收集,但如果不制作自己的求解器,就无法获得它。你可以通过复制WLS 并设置额外的“getter”来做到这一点。

    在不深入研究代码的情况下,您可以获得的最接近的是lrModel.summary.coefficientStandardErrors,即在倒置matrix (A^T * W * A) 的对角线上的based,即上三角矩阵(协方差)上的based

    我认为这还不够,所以很抱歉。

    【讨论】:

    • 我应该在 WLS 中复制代码的哪一部分?如果我必须修改代码,我可以。另外,是否可以从 coefficientStandardErrors 构造协方差矩阵?
    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2021-05-21
    • 1970-01-01
    • 2012-12-09
    相关资源
    最近更新 更多