[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;/* 요인분석 결과를 데이터로 저장 */
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)