gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:26:48 25 4
gpt4 key购买 nike

我希望能够通过提供相关性或协方差矩阵而不是 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com