728x90

[SAS]

SAS에서 요인분석을 하려면 PROC FACTOR을 사용합니다.

DATA a1;INPUT x1 x2 ;CARDS;
 4  15
 6  16   
 7  11
 8  10  
 9   6
 11  8
 12 10
 13 14   
;
PROC FACTOR ;VAR x1 x2;RUN;      /* 가장 기본적인 요인분석 실행*/          
PROC FACTOR MEHTOD=PRINIPAL;VAR x1 x2;RUN; /* 디폴트로 principal */

PROC FACTOR NFACTORS=2 ;VAR x1 x2;RUN;  /* 요인 갯수 지정  */
PROC FACTOR MINEIGEN=0 ;VAR x1 x2;RUN;  /* 고유값의 하한값 지정  */
PROC FACTOR NFACTORS=2 EIGENVECTORS;VAR x1-x2; RUN; /* 고유벡터를 구함 */
PROC FACTOR NFACTORS=2 EIGENVECTORS SCORES;VAR x1-x2; RUN; /* 요인점수를 구함 */
RUN; 
PROC FACTOR MEHTOD=ML;VAR x1 x2;RUN; /* 요인분석 초기치 지정  */
PROC FACTOR NFACTORS=2 ROTATE=VARIMAX;VAR x1-x2;RUN; /* 요인의 회전 */      
PROC FACTOR NFACTORS=2 OUT=out1 OUTSTAT=out2; VAR x1-x2;RUN;/* 요인분석 결과를 데이터로 저장 */

s_fac_fac_01


PROC PRINT DATA=out1;RUN;
PROC PRINT DATA=out2;RUN;

 

[R]

R에서 요인분석을 하려면 factoranal 을 사용합니다. 변수가 2개인 경우는 에러가 발생합니다.

패키지 factanal 이용
x1 <- c( 4,  6,  7,  8, 9, 11, 12, 13);
x2 <- c(15, 16, 11, 10, 6,  8, 10, 14);
(dataf01 <- data.frame(x1,x2))
factanal(dataf01,factors=2) 
factanal(dataf01,factors=2,rotation="none") 

패키지 psych 를 이용

install.packages("psych")
# package ‘tmvnsim’ successfully unpacked and MD5 sums checked
# package ‘mnormt’ successfully unpacked and MD5 sums checked
# package ‘psych’ successfully unpacked and MD5 sums checked
library(psych)
principal(dataf01,2,scores=TRUE)

[Python]

import pandas as pd
df = pd.read_csv("d:/sas_class/iris.csv")  # iris 데이터 불러오기
df
df.head()
X=df.drop(['species'],axis=1)
X.head()
# pip install factor_analyzer : factror_analyzer 가 설치되지 않은 경우, 설치함
from factor_analyzer import FactorAnalyzer
fa=FactorAnalyzer(method="principal", n_factors=3,rotation="varimax").fit(X) # varimax로 회전
pd.DataFrame(fa.loadings_,index=X.columns)
ev, v=fa.get_eigenvalues()
ev

fa.transform(X)

+ Recent posts