r - 主成分回归?什么是因变量?
问题描述
我正在执行一个PCA
尝试清除高度相关的变量实系数。我有一个非常大的数据集,但会尝试在这里简化。我有公式:
lm(y~x1+x2+x3...x55) -> reg_linear_model
我遇到的问题x1:x4
是所有这些都非常相关,因此其中一些是负面的。当我尝试执行pca时,我会得到组件列表及其值。我想测试要使用哪些组件,但依赖 Y 是按周分解的三年数据,所以它是y1, y2, y3, y4, ....y156. 156 weeks
。我遇到的问题是我无法将组件回归到 y 因为长度不同。我是否需要以某种方式转换 Y 以使其适合作为组件的行数?很难找到答案。许多 PCR 解释只是说将组件回归到 y 但 Y 不在pca中。
感谢您对此的任何帮助!
解决方案
通常你这样做,我们可以使用 iris 数据集,让我们将 Sepal.Length 设置为依赖变量,其他独立变量。
首先,依赖的 Petal.Width 和 Petal.Length 之间存在相关性:
cor(iris[,2:4])
Sepal.Width Petal.Length Petal.Width
Sepal.Width 1.0000000 -0.4284401 -0.3661259
Petal.Length -0.4284401 1.0000000 0.9628654
Petal.Width -0.3661259 0.9628654 1.0000000
就像你说的,如果我们进行回归,我们会看到其中一个变为负数:
summary(lm(Sepal.Length ~ .,data=iris[,1:4]))
Call:
lm(formula = Sepal.Length ~ ., data = iris[, 1:4])
Residuals:
Min 1Q Median 3Q Max
-0.82816 -0.21989 0.01875 0.19709 0.84570
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.85600 0.25078 7.401 9.85e-12 ***
Sepal.Width 0.65084 0.06665 9.765 < 2e-16 ***
Petal.Length 0.70913 0.05672 12.502 < 2e-16 ***
Petal.Width -0.55648 0.12755 -4.363 2.41e-05 ***
我们做一个主成分分析,并得到主成分,它位于$x
:
pca=prcomp(iris[,2:4])
cor(iris[,"Sepal.Length"],pca$x)
PC1 PC2 PC3
[1,] 0.8619141 -0.279587 0.1937703
data = data.frame(
Sepal.Length=iris[,"Sepal.Length"],
pca$x)
summary(lm(Sepal.Length ~ .,data=data))
Call:
lm(formula = Sepal.Length ~ ., data = data)
Residuals:
Min 1Q Median 3Q Max
-0.82816 -0.21989 0.01875 0.19709 0.84570
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.84333 0.02568 227.519 < 2e-16 ***
PC1 0.37123 0.01340 27.697 < 2e-16 ***
PC2 -0.58457 0.06506 -8.984 1.22e-15 ***
PC3 0.86983 0.13969 6.227 4.80e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
PC 组件不相关,您可以将它们用于回归。如果你有很多变量,你也可以像上面一样通过与目标变量的相关性来选择。
推荐阅读
- android - 将自定义布局添加到生物识别提示
- java - 在另一个模块中获取资源的 URL
- php - 我们可以在谷歌云 ubuntu vm 实例中使用 xampp 作为在线服务器吗
- python - 如何在 python 中访问 numpy 结构化数组中的多个列值?
- java - 如何以 [%thread] 日志格式而不是 https-jsse-nio-9005-exec-2 添加其余调用]
- r - 为什么我的 dplyr 百分位数计算不适用于 tidy 评估?
- android - 当内容增大、固定宽度时防止表格列的扩展
- php - nginx服务器突然没有运行php文件的问题
- html - 如何将 HTML 文件添加到 HTML 代码中,这样我就不必为网站中的每个选项卡重新键入所有代码?
- c - 错误:指针之前的预期 unqualified-id