2011-04-08 3 views
1

저는 100 개의 변수를 가지며 변수 var15-v25를 사용하여 요인 분석을 수행하려고합니다. 먼저 변수를 다른 오브젝트 (예 : f)로 추출한 후 &을 실행 한 다음 주 구성 요소 분석을 실행합니다.원래 변수에 대한 PCA 점수의 최소 자승 적합

이제 PCA 점수를 예측 자로 사용하여 회귀 분석을 실행하기 위해 PCA 점수를 원래 데이터 집합과 병합하고 싶습니다.

아무도 나에게이 두 데이터 세트를 병합하는 방법을 제안 할 수 있습니까? 내가 사용하는 코드는 다음과 같습니다

spss_data_factor <- sqldf("SELECT Respondent_Serial,Q4_01_Q4,Q4_02_Q4,Q4_03_Q4,Q4_04_Q4,Q4_05_Q4,Q4_06_Q4,Q4_07_Q4,Q4_08_Q4,Q4_09_Q4,Q4_10_Q4 FROM spss_data_rel") 
f <- princomp(spss_data_factor1, cor = TRUE) 
summary(f, loadings=TRUE) 
f$scores[, 1:5] 
+0

은 우리에게 원본 데이터의 샘플을 표시합니다. –

+0

당신의 질문은 실제로 무엇입니까? AFAICS, 그것은 단지 FA와 관련이 있습니다. 요소 점수 표를 하나의 파일에 추가하기 만하면됩니까? 제발, 더 자세한 내용을 제공하십시오 ... – aL3xa

+0

나는 당신이 SPSS 내에서 실제로 R을 여기에서 호출하고 있다고 생각합니까? 그렇다면 두 개의 파일을 병합하는 것이 무엇을 의미합니까? SPSS 파일에서 요인에 대한 점수를 추가 변수로 사용하고 싶습니까? 어떻게해야할지 모르겠지만'write.table()'을 사용하여 파일에 기록한 다음 SPSS로 가져올 수 있습니다. 아마 더 쉬운 방법. –

답변

4

는 R의 기본 패키지에서 이름을 사용하지 않도록하십시오 - factor 종류의 예약되어 있습니다. 잘 작동하지만 개발 중 어느 시점에서 혼란 스러울 수 있습니다 ... 그리고 factor은 파일이 아니며 princomp 클래스의 R 객체입니다.

어쨌든 요인 점수가있는 회귀 모델을 예측 변수로 지정 하시겠습니까? 케이크 ...없이 병합의 조각이 필요합니다 :

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! =) 

난이 도움이되었다 희망하십시오

그래서, 당신은 이런 식으로 뭔가를 할 수 this link을 참조하십시오. William Revelle의 psych 패키지를 설치해야합니다.

0

aL3xa! 해결책의 답을 찾았습니다. 누군가가 도움이 될지도 모르겠다.

## Factor Analysis 
library(psych) 
spss_data_fac=read.csv("D:\\Arijit\\spss_data_rel_01.csv") 
fa.parallel(spss_data_fac[,40:49]) 
spss_data_fac_01=factanal(spss_data_fac[,40:49],factors=2,scores="regression",rotation="promax") 
spss_data_fac_01$scores 
## Factor Analysis factors are used for logistic regression 
spss_dat_reg=glm(spss_data_fac$Q8~spss_data_fac_01$scores+spss_data_fac$Q14) 
summary(spss_dat_reg) 

안부,