r - 如何使用相关或协方差矩阵而不是使用 R 的数据框获得回归系数和模型拟合?

标签 r regression linear-regression lm

我希望能够通过提供相关性或协方差矩阵而不是 data.frame 来从多元线性回归中回归系数。我意识到您丢失了一些与确定截距等相关的信息,但即使是相关矩阵也应该足以解释标准化系数和方差估计。

例如,如果您有以下数据

# get some data
library(MASS)
data("Cars93")
x <- Cars93[,c("EngineSize", "Horsepower", "RPM")]

您可以按如下方式运行回归:
lm(EngineSize ~ Horsepower + RPM, x)

但是如果你有相关矩阵或协方差矩阵而不是数据呢:
corx <- cor(x)
covx <- cov(x)
  • R 中的什么函数允许您基于相关或协方差矩阵运行回归?理想情况下,它应该类似于 lm这样您就可以轻松获得 r 平方、调整后的 r 平方、预测值等内容。据推测,对于其中一些事情,您还需要提供样本大小和可能的均值向量。但这也没关系。

  • 即,类似于:
    lm(EngineSize ~ Horsepower + RPM, cov = covx) # obviously this doesn't work
    

    请注意,此答案位于 Stats.SE提供了为什么可能的理论解释,并提供了一些用于计算系数的自定义 R 代码的示例?

    最佳答案

    使用 lavaan 您可以执行以下操作:

    library(MASS)
    data("Cars93")
    x <- Cars93[,c("EngineSize", "Horsepower", "RPM")]
    
    lav.input<- cov(x)
    lav.mean <- colMeans(x)
    
    library(lavaan)
    m1 <- 'EngineSize ~ Horsepower+RPM'
    fit <- sem(m1, sample.cov = lav.input,sample.nobs = nrow(x), meanstructure = TRUE, sample.mean = lav.mean)
    summary(fit, standardize=TRUE)
    

    结果是:
    Regressions:
                       Estimate    Std.Err  Z-value  P(>|z|)   Std.lv    Std.all
      EngineSize ~                                                              
        Horsepower          0.015    0.001   19.889    0.000      0.015    0.753
        RPM                -0.001    0.000  -15.197    0.000     -0.001   -0.576
    
    Intercepts:
                      Estimate    Std.Err  Z-value  P(>|z|)   Std.lv    Std.all
       EngineSize          5.805    0.362   16.022    0.000      5.805    5.627
    
    Variances:
                      Estimate    Std.Err  Z-value  P(>|z|)   Std.lv    Std.all
        EngineSize          0.142    0.021    6.819    0.000      0.142    0.133
    

    关于r - 如何使用相关或协方差矩阵而不是使用 R 的数据框获得回归系数和模型拟合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38558278/

    相关文章:

    machine-learning - 对于既不完全分类也不完全回归的事物,正确的术语是什么?

    r - 在R中使用texreg进行分位数回归时如何设置se=boot?

    python - PyMC 多元线性回归

    r - 在 Redhat 7.5 上向 R 中的 Plumber API 端点发送主体尺寸较大的 POST 请求时出现问题

    R 使用来自另一个变量的名称的 rbind

    python - Pandas 数据框的线性回归

    python - 为什么参数的数量与分类变量的数量不同?

    r - Shinydashboard: 'restoreInput' 不是从 'namespace:shiny' 导出的对象

    r - 如何创建带有大量连续x变量的geom_boxplot

    python - LinearRegression() 中的 coef_ 值代表什么?