Пожалуйста, избегайте использования имен из базовых пакетов R - factor
является зарезервированным.Он будет работать просто отлично, но он может сбить вас с толку в какой-то момент разработки ... И ваш factor
- это не файл, это объект R класса princomp
.
В любом случае, вы хотитеопределить модель регрессии с показателями факторов в качестве предикторов?Кусок пирога ... и объединение не требуется:
fa <- princomp(mtcars, cor=TRUE)
fa_scores <- fa$scores
fit <- lm(mtcars$hp ~ fa_scores)
summary(fit)
Call:
lm(formula = mtcars$hp ~ fa_scores)
Residuals:
Min 1Q Median 3Q Max
-2.521e-14 -7.825e-15 -2.416e-15 5.622e-15 4.329e-14
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.467e+02 2.862e-15 5.125e+16 <2e-16 ***
fa_scoresComp.1 -2.227e+01 1.113e-15 -2.000e+16 <2e-16 ***
fa_scoresComp.2 -1.679e+01 1.758e-15 -9.549e+15 <2e-16 ***
fa_scoresComp.3 9.449e+00 3.614e-15 2.614e+15 <2e-16 ***
fa_scoresComp.4 -4.567e+00 5.513e-15 -8.285e+14 <2e-16 ***
fa_scoresComp.5 -3.644e+01 6.055e-15 -6.019e+15 <2e-16 ***
fa_scoresComp.6 -4.821e+00 6.222e-15 -7.747e+14 <2e-16 ***
fa_scoresComp.7 -1.010e-01 7.783e-15 -1.297e+13 <2e-16 ***
fa_scoresComp.8 1.501e+01 8.164e-15 1.838e+15 <2e-16 ***
fa_scoresComp.9 -3.886e+01 1.031e-14 -3.768e+15 <2e-16 ***
fa_scoresComp.10 1.672e+01 1.255e-14 1.333e+15 <2e-16 ***
fa_scoresComp.11 -1.731e+01 1.928e-14 -8.979e+14 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.619e-14 on 20 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 5.053e+31 on 11 and 20 DF, p-value: < 2.2e-16
Вы также можете преобразовать исходный набор данных в матрицу, чтобы выполнить ncol(mtcars)
регрессии для каждого столбца матрицы ответа.Функция lm
поддерживает формулу response ~ terms
, где response
может быть матрицей.См. ?lm
:
Если ответ представляет собой матрицу, линейная модель подбирается наименьшими квадратами отдельно для каждого столбца матрицы.
Итак, вы можете сделатьчто-то вроде этого:
fit2 <- lm(as.matrix(mtcars) ~ fa_scores)
summary(fit2) # handle with care! =)
Я надеюсь, что это было полезно ...
В любом случае, если вы хотите выполнить факторный анализ, см. эту ссылку .Вам следует установить пакет psych
Уильяма Ревелла.