我一直在查看 Spark 的文档,但在进行线性回归后仍然找不到如何获得协方差矩阵。
给定输入训练数据,我做了一个非常简单的线性回归,类似于 this :
val lr = new LinearRegression()
val fit = lr.fit(training)
获取回归参数就像
fit.coefficients
一样简单但似乎没有关于如何获得协方差矩阵的信息。为了澄清,我正在寻找类似于
vcov
的功能在 R 中。有了这个,我应该可以做类似 vcov(fit)
的事情。得到协方差矩阵。可以帮助实现这一目标的任何其他方法也可以。编辑
详细讨论了如何从线性回归中获取协方差矩阵 here .标准偏差很容易得到,因为它由
fit.summary.meanSsquaredError
提供.但是,参数 (X'X)-1 很难获得。看看这是否可以用来以某种方式计算协方差矩阵会很有趣。
最佳答案
虽然整个协方差矩阵是 收藏 在 driver ,如果不制作自己的求解器,就不可能获得它。您可以通过复制 WLS 来做到这一点。并设置额外的“ setter/getter ”。
无需深入研究代码即可获得的最接近的信息是 lrModel.summary.coefficientStandardErrors
即 based在倒置的对角线上 matrix (A^T * W * A) 即 based在上三角矩阵(协方差)上。
我认为这还不够,所以对此感到抱歉。
关于scala - 在 Spark 线性回归中获取协方差矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48200844/