연속 변수와 이진 변수의 혼합을 기반으로 한 PCA 및 구성 요소 점수


13

혼합 유형 변수 (연속 및 이진)로 구성된 데이터 세트에 PCA를 적용하고 싶습니다. 절차를 설명하기 위해 아래의 R에 최소한의 재현 가능한 예를 붙여 넣습니다.

# Generate synthetic dataset
set.seed(12345)
n <- 100
x1 <- rnorm(n)
x2 <- runif(n, -2, 2)
x3 <- x1 + x2 + rnorm(n)
x4 <- rbinom(n, 1, 0.5)
x5 <- rbinom(n, 1, 0.6)
data <- data.frame(x1, x2, x3, x4, x5)

# Correlation matrix with appropriate coefficients
# Pearson product-moment: 2 continuous variables
# Point-biserial: 1 continuous and 1 binary variable
# Phi: 2 binary variables
# For testing purposes use hetcor function
library(polycor)
C <- as.matrix(hetcor(data=data))

# Run PCA
pca <- princomp(covmat=C)
L <- loadings(pca)

이제 구성 요소 점수를 계산하는 방법 (예 : 구성 요소로드에 따라 가중 된 원시 변수)이 궁금합니다. 데이터 세트가 연속 변수로 구성된 경우 로딩 행렬에 저장된 원시 데이터와 고유 벡터를 곱하여 성분 스코어를 간단히 얻습니다 (위 예에서 L). 모든 조언을 주시면 감사하겠습니다.


1
귀하의 질문을 이해하는지 잘 모르겠습니다. 이항 변수에 대해 왜 다른가요?

@ Insanodag : 데이터 매트릭스에 로딩 매트릭스를 곱할 수 있습니까?
Andrej

답변:


9

나는 Insanodag가 옳다고 생각합니다. 나는 Jollife의 주요 성분 분석을 인용한다 :

p

데이터 매트릭스에 로딩 매트릭스를 곱하면 원하는 결과가 나타납니다. 그러나 princomp()함수에 문제가 있어서 prcomp()대신 사용 했습니다.

함수의 리턴 값 중 하나 prcomp()x사용하여 활성화된다 retx=TRUE. 이 x는 R 문서에 명시된대로 데이터 매트릭스와 로딩 매트릭스를 곱한 것입니다.

    rotation: the matrix of variable
              loadings (i.e., a matrix whose columns
              contain the eigenvectors).  The function princomp returns
              this in the element loadings’.

           x: if retx is true the value of the rotated data (the centred
              (and scaled if requested) data multiplied by the rotation
              matrix) is returned.  Hence, cov(x)’ is the diagonal matrix
              diag(sdev^2)’.  For the formula method, napredict()’ is
              applied to handle the treatment of values omitted by the
              na.action’.

이것이 유용한 지 또는 추가 수정이 필요한지 알려주십시오.

-

IT Jollife. 주요 구성 요소 분석. 봄 병아리. 두번째 버전. 2002. pp 339-343.


@dees_stats : 답변 주셔서 감사합니다. prcomp () 시도하고 모든 변수를 as.numeric (); 결과는 그럴듯 ​​해 보인다. Jollife에서 페이지 번호를 알려주시겠습니까?
Andrej

@Andrej 나는 답변을 편집했습니다. 인용구는 339 페이지 13.1 항에 있습니다.
deps_stats
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.