factor_analysis
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
factor_analysis [2019/11/10 16:57] – [E.g. 2] hkimscil | factor_analysis [2022/12/06 08:36] – [Reference] hkimscil | ||
---|---|---|---|
Line 14: | Line 14: | ||
* '' | * '' | ||
- | {{: | + | {{: |
+ | * 컴퓨터 사용에 대한 태도 | ||
+ | * 통계에 (statistics) 태도 | ||
+ | * 수학에 대한 태도 | ||
+ | * 통계페키지 프로그램에 (SPSS) 대한 태도 | ||
+ | |||
+ | 얼뜻 눈으로 이 4개의 요인을 (혹은 단면, 측면, dimensions) 뽑아냈지만 응답자들의 응답에 섞인 상관관계에 기초하여 이런 요인들을 추출해 낼 수 있다면 좋겠는데 이것이 요인분석이 (factor analysis) 하는 일이다. 어떤 응답자가 수학이 싫은면 수학과 관련된 어떤 질문들에 대해서 비슷한 (상관관계가 높게) 답변을 할 것이니 가능한 것이다. | ||
<WRAP box> | <WRAP box> | ||
Line 46: | Line 52: | ||
* **자료의 요약**: 여러 개의 변인들을 몇 개의 공통된 집단으로 묶음으로써 자료의 복잡성 줄이고 정보를 요약하는데 이용 | * **자료의 요약**: 여러 개의 변인들을 몇 개의 공통된 집단으로 묶음으로써 자료의 복잡성 줄이고 정보를 요약하는데 이용 | ||
- | * 아이디어, | + | * 아이디어, |
* 불필요한 **변인의 제거**: 변인군으로 묶이지 않은 변인을 제거함으로써 중요하지 않은 변인 선별가능 | * 불필요한 **변인의 제거**: 변인군으로 묶이지 않은 변인을 제거함으로써 중요하지 않은 변인 선별가능 | ||
* 측정도구의 **타당성 검증**: 동일한 개념을 측정한 변인들이 동일한 요인으로 묶이는지 여부 확인함으로써 측정도구 타당성을 검증하는데 이용 | * 측정도구의 **타당성 검증**: 동일한 개념을 측정한 변인들이 동일한 요인으로 묶이는지 여부 확인함으로써 측정도구 타당성을 검증하는데 이용 | ||
Line 79: | Line 85: | ||
\end{equation} | \end{equation} | ||
- | 위 식 [1]에서 | + | 위 식 $(1)$에서 |
- | 한편, $\beta_{ij}$ 는 표준화된 correlation coefficient 값을 말한다 (regression에서 beta값) -- factor analysis에서는 흔히 factor loading이라고 부른다. beta를 해석하는 방법과 마찬가지로 factor loading 값은 F1이나 F2의 인자가 finance (혹은 다른 변인 점수) 점수에 얼마나 기여하는지를 나타내 주는 지표라고 하겠다. | + | 한편, $\beta_{ij}$ 는 표준화된 correlation coefficient 값을 말한다 (regression에서 beta값) -- factor analysis에서는 흔히 factor loading이라고 부른다. beta를 해석하는 방법과 마찬가지로 factor loading 값은 F1이나 F2의 인자가 finance (혹은 다른 변인 점수, $Y_{i}$) 점수에 얼마나 기여하는지를 나타내 주는 지표라고 하겠다. |
- | 상식을 이용해서 문제를 살펴보면, | + | 상식을 이용해서 문제를 살펴보면, |
< | < | ||
Line 108: | Line 114: | ||
$$Y_{i} = \beta_{i0} + \beta_{i1}F_{1} + \beta_{i2}F_{2} + (1) e_{i} $$ | $$Y_{i} = \beta_{i0} + \beta_{i1}F_{1} + \beta_{i2}F_{2} + (1) e_{i} $$ | ||
- | \begin{eqnarray*} | + | \begin{align*} |
- | Var(Y_i) &=& \beta^2_{i1}Var(F1) + \beta^2_{i2}Var(F2) + (1)^2Var(e_i) \\ | + | Var(Y_i) & = \beta^2_{i1}Var(F1) + \beta^2_{i2}Var(F2) + (1)^2Var(e_i) \\ |
- | &=& \underbrace{ \beta^2_{i1} + \beta^2_{i2} }_\text{communality} \: + \: \underbrace{ \sigma^2_{i} }_\text{specific variance} | + | & = \underbrace{ |
- | \end{eqnarray*} | + | \end{align*} |
Variance 성질에 따라서 우리는 다음을 도출할 수 있다. | Variance 성질에 따라서 우리는 다음을 도출할 수 있다. | ||
* $\beta_{i0}$는 상수(constant)이므로 0, | * $\beta_{i0}$는 상수(constant)이므로 0, | ||
- | * F1, F2 의 분산값은 1이고, coefficient값은 F1 요인에 곱한 상수이므로 분산을 구하기 위해서는 제곱을 해야 한다. 따라서, F1 F2에 해당하는 분산값은 각각 $\beta^2_{i1} + \beta^2_{i2}$ | + | * $F1$, $F2$ 의 분산값은 1이고, coefficient값은 |
* error term의 분산값은 위 가정에서 언급된 것처럼 $\sigma^2_{i}$ | * error term의 분산값은 위 가정에서 언급된 것처럼 $\sigma^2_{i}$ | ||
* 이를 해석하자면, | * 이를 해석하자면, | ||
- | * fiance (혹은 다른 시험) 점수의 총 분산값은 F1과 F2의 coefficient(loading)값을 각각 제곱해서 더한 것에 | + | * fiance (혹은 다른 시험) 점수의 총 분산값은 |
* 에러의 분산값을 더한 것과 같다. | * 에러의 분산값을 더한 것과 같다. | ||
* 여기서 loading 제곱의 합은 regression으로 설명되는 부분이고 | * 여기서 loading 제곱의 합은 regression으로 설명되는 부분이고 | ||
* 에러의 분산값은 어느 factor에도 기여를 하지 못하는 나머지 부분이다. | * 에러의 분산값은 어느 factor에도 기여를 하지 못하는 나머지 부분이다. | ||
- | * 즉, fiance의 분산값은 F1, F2가 기여하는 부분과 이 둘에 포함되지 않는 나머지로 나눌 수 있다. 이는 regression에서 explained(regression) variance와 unexplained variance를 이야기 하는 것과 같은 이치이다. | + | * 즉, fiance의 분산값은 |
- | * 앞의 두 coefficient(계수 혹은 factor loading)을 communality라고 부른다. 이 이름이 자연스러운 것은 Y의 총분산 중 두 요인(F1, F2)이 __공통적으로__ 기여하는 부분의 분산이기 때문이다. | + | * 앞의 두 coefficient(계수 혹은 factor loading)을 |
- | * 따라서, 마지막 에러텀에 해당하는 분산은 specific variance라고 이름을 붙히는 것이 자연스럽다. 즉, Y의 총 분산 중 어느 요인에게도 영향을 받지 않는 나머지 즉, 공통적(communality)인 것에서 specific한 분산의 부분이다. | + | * 따라서, 마지막 에러텀에 해당하는 분산은 specific variance라고 이름을 붙히는 것이 자연스럽다. 즉, Y의 총 분산 중 어느 요인에게도 영향을 받지 않는 나머지 즉, 공통적(communality)인 것에서 |
이를 covariance matrix에 정리하자면 아래와 같다. | 이를 covariance matrix에 정리하자면 아래와 같다. | ||
Line 138: | Line 144: | ||
한편, 두 변인 (가령, fiance점수와 marketing점수) 간의 covariance를 구하는 것과 관련해서는: | 한편, 두 변인 (가령, fiance점수와 marketing점수) 간의 covariance를 구하는 것과 관련해서는: | ||
- | \begin{eqnarray*} | + | \begin{align*} |
- | Y_{i} =& \beta_{i0} + \beta_{i1}F1 + \beta_{i2}F2 + (1)e_{i} + (0)e_{j} \\ | + | Y_{i} |
- | Y_{j} =& \beta_{j0} + \beta_{j1}F1 + \beta_{j2}F2 + (0)e_{i} + (1)e_{j} | + | Y_{j} |
- | \end{eqnarray*} | + | Cov(Y_{i}, Y_{j}) & = \beta_{i1}\beta_{j1}Var(F1) + \beta_{i2}\beta_{j2}Var(F2) + (1)(0)Var(e_{i}) + (0)(1)Var(e_{i}) \\ |
- | + | & = \beta_{i1} \beta_{j1} + \beta_{i2} \beta_{j2} | |
- | \begin{eqnarray*} | + | \end{align*} |
- | Cov(Y_{i}, Y_{j}) &=& \beta_{i1}\beta_{j1}Var(F1) + \beta_{i2}\beta_{j2}Var(F2) + (1)(0)Var(e_{i}) + (0)(1)Var(e_{i}) \\ | + | |
- | &=& \beta_{i1}\beta_{j1} + \beta_{i2}\beta_{j2} | + | |
- | \end{eqnarray*} | + | |
위에서 | 위에서 | ||
Line 182: | Line 185: | ||
| Y3 | $S_{31}$ | | Y3 | $S_{31}$ | ||
- | 실제 데이터에서 구한 variance covariance table은 아래와 같다. | + | 실제 데이터에서 구한 variance covariance table은 아래와 같다((편의상 여기 분산값은 n으로 (n-1이 아닌) 나눠 준 것)). |
| Variable | | Variable | ||
Line 188: | Line 191: | ||
| Y2 | -0.36 | 5.04 | 3.84 | | | Y2 | -0.36 | 5.04 | 3.84 | | ||
| Y3 | 0.44 | 3.84 | 3.04 | | | Y3 | 0.44 | 3.84 | 3.04 | | ||
+ | |||
+ | |||
+ | 실제 데이터로 구한 covariance matrix (가). | ||
+ | < | ||
+ | ## 예를 들어 | ||
+ | fd <- read.csv(" | ||
+ | fd <- fd[, -1] # 처음 id 컬럼 지우기 | ||
+ | cov(fd) | ||
+ | |||
+ | </ | ||
$$ | $$ | ||
Line 197: | Line 210: | ||
$$ | $$ | ||
+ | 아래는 설명한 것과 같이 이론적으로 구한 covariance matrix 이다 (나). | ||
$$ | $$ | ||
\begin{pmatrix} | \begin{pmatrix} | ||
Line 205: | Line 219: | ||
$$ | $$ | ||
- | + | 실제 데이터에서 구한 variance covariance 값과 | |
- | + | ||
- | 실제 데이터에서 구한 variance covariance 값과 factor 분석에 기반한 이론 적인 variance covariance 테이블을 비교해 볼 수 있다. 이를 통해서 각 Factor의 $\beta_{ij}$ laoding 값을 유추해 볼 수 있을 것이다. Regression방법은 F1과 F2가 observed된 변인이 아니기에 할 수가 없었고, 위의 방법으로 Beta값들을 구한다면 각 **요인(factor)**에 대한 beta값을 바탕으로 변인들에 대한 regression공식을 완성할 수 있게 된다. | + | |
====== Interpretation of factor loading and the rotation method ====== | ====== Interpretation of factor loading and the rotation method ====== | ||
- | 위의 분석작업을 통해서 아래와 같은 regression 공식을 얻었다고 가정하자. 아래 공식의 문제점은 F1과 F2의 loading값이 골고루 퍼져 있어서, finance 점수에 영향을 주는 것이 F1인지 F2인지 이야기하기기 어렵다는 점이다. 즉, factor loadings are not unique하다는 것이다. | + | 위의 분석작업을 통해서 아래와 같은 regression 공식을 얻었다고 가정하자 |
+ | |||
+ | 좀 더 설명하자면 우리가 regression에서 배운 것에 의하면 아래는 $Y_{1}$ 은 F1이 0.5만큼 F2가 0.5만큼 설명한다고 하겠다. 이것을 팩터로딩이 팩터 간에 독립적으로 나타나지 않는다고 이야기 한다는 뜻이다. 그러나 우리가 factor analysis 를 하는 이유는 Factor 중의 하나가 $Y_{1}$에 온전히 기여를 하고 나머지는 기여를 하지 않는 구조를 가지는가를 보기 위해서다. 이를 위해서 아래의 해는 로테이션이라는 과정을 한번 더 거치게 된다 (바로 아래 문장 참조 - " | ||
Model A | Model A | ||
Line 221: | Line 235: | ||
위의 공식을 토대로 아래와 같은 variance covariance matrix를 구해 볼 수 있다. 이는 | 위의 공식을 토대로 아래와 같은 variance covariance matrix를 구해 볼 수 있다. 이는 | ||
- | | + | \begin{align*} |
- | * Covariance(Y1, Y2) = (0.5)(0.3) + (0.5)(0.3) = 0.3 | + | \text{Var}_\text{(Y1)} & = (0.5)^2 + (0.5)^2 + \sigma^2_{1} |
+ | & = 0.5 + \sigma^2_{1} | ||
+ | \text{Cov}_\text{(Y1, Y2)} & = (0.5)(0.3) + (0.5)(0.3) | ||
+ | & = 0.3 | ||
+ | \end{align*} | ||
과 같은 방법으로 구한 것이다. | 과 같은 방법으로 구한 것이다. | ||
Line 228: | Line 246: | ||
< | < | ||
| Variable | | Variable | ||
- | | Y1 | 0.5 + $\sigma^2_{1}$ | + | | Y1 | 0.5 + $\sigma^2_{1}$ |
- | | Y2 | 0.3 | 0.18 + $\sigma^2_{2}$ | + | | Y2 | 0.3 | 0.18 + $\sigma^2_{2}$ |
- | | Y3 | 0 | 0 | 0.5 + $\sigma^2_{3}$ | + | | Y3 | 0.5 | 0.3 | 0.5 + $\sigma^2_{3}$ |
</ | </ | ||
한편 아래의 공식에서 또한 이론적인 variance covariance matrix를 구해볼 수 있는데, 이는 위의 theoretical variance covariance 매트릭스와 동일한 것이다. | 한편 아래의 공식에서 또한 이론적인 variance covariance matrix를 구해볼 수 있는데, 이는 위의 theoretical variance covariance 매트릭스와 동일한 것이다. | ||
Model B | Model B | ||
- | \begin{eqnarray*} | + | \begin{align*} |
- | Y_{1} =& (\sqrt2/2) F1 + 0 F2 + e_{1} \\ | + | Y_{1} & = (\sqrt{2}/{2}) F1 + 0 F2 + e_{1} \\ |
- | Y_{2} =& (0.3\sqrt2) F1 + 0 F2 + e_{2} \\ | + | Y_{2} & = (0.3\sqrt{2}) F1 + 0 F2 + e_{2} \\ |
- | Y_{3} =& 0 F1 - (\sqrt2/2) F2 + e_{3} \\ | + | Y_{3} & = 0 F1 - (\sqrt{2}/2) F2 + e_{3} \\ |
- | \end{eqnarray*} | + | \end{align*} |
즉, | 즉, | ||
- | | + | \begin{align*} |
- | * $Cov(Y_{1}, Y_{2}) = (\sqrt2/2) * (0.3\sqrt2) = 0.3 $ | + | Var(Y_{1}) & = ({\sqrt2}/ |
+ | Cov(Y_{1}, Y_{2}) | ||
+ | \end{align*} | ||
등을 통해서 구한 matrix는 위의 theoretical variance covariance 매트릭스와 동일한 내용을 같는다. | 등을 통해서 구한 matrix는 위의 theoretical variance covariance 매트릭스와 동일한 내용을 같는다. | ||
Line 253: | Line 273: | ||
====== Factor solution among many . . . ====== | ====== Factor solution among many . . . ====== | ||
- | Principal component factor analysis | ||
| Variable, \\ Y< | | Variable, \\ Y< | ||
Line 304: | Line 323: | ||
| Variable, \\ Y< | | Variable, \\ Y< | ||
| (1) | (2) | $F_{1}, b_{i1}$ \\ (3) | $F_{2}, b_{i2}$ \\ (4) | (5) | (6) = 100 x (5)/ | | (1) | (2) | $F_{1}, b_{i1}$ \\ (3) | $F_{2}, b_{i2}$ \\ (4) | (5) | (6) = 100 x (5)/ | ||
- | | Finance, $Y_{1}$ | + | | Finance, $Y_{1}$ |
| Marketing, $Y_{2}$ | | Marketing, $Y_{2}$ | ||
| policy, $Y_{3}$ | | policy, $Y_{3}$ | ||
- | | Overall \\ SS loadings | + | | Overall \\ SS loadings |
| | | 55.1% \\ (10) / (9) = | 44.7% \\ (11) / (9) = | | | | | | | | 55.1% \\ (10) / (9) = | 44.7% \\ (11) / (9) = | | | | | ||
Line 314: | Line 333: | ||
각주 1) -> finance = 수학능력 = F1 | 각주 1) -> finance = 수학능력 = F1 | ||
각주 2), 3) -> marketing, policy = 언어능력 = F2 | 각주 2), 3) -> marketing, policy = 언어능력 = F2 | ||
- | 각주 | + | 각주 |
< | < | ||
Line 395: | Line 414: | ||
===== Eigenvalue (고유값) ===== | ===== Eigenvalue (고유값) ===== | ||
- | 특정요인의 모든 요인적재량(factor loadings)을 제곱하여 합한 값이다. 특정요인이 설명하는 총분산을 의미한다. | + | 특정요인의 모든 요인적재량(factor loadings)을 제곱하여 합한 값이다. 특정요인이 |
| | | | ||
| Variable | | Variable | ||
Line 414: | Line 433: | ||
===== Communality (공통성) ===== | ===== Communality (공통성) ===== | ||
특정변수의 모든 요인적재량을 제곱하여 합한 값이다. 아래에서 변인 climate의 변량에 대해서 추출된 세 요인이 기여하는 분산량의 정도를 의미한다. 이는 $ \hat{h_1} = 0.286^2 + 0.076^2 + 0.841^2 = 0.795 $ 와 같이 표현할 수 있다. 만약 세 요인(factor)을 이용해서 변인 Climate에 multiple regression을 한다면 구할 수 있는 R< | 특정변수의 모든 요인적재량을 제곱하여 합한 값이다. 아래에서 변인 climate의 변량에 대해서 추출된 세 요인이 기여하는 분산량의 정도를 의미한다. 이는 $ \hat{h_1} = 0.286^2 + 0.076^2 + 0.841^2 = 0.795 $ 와 같이 표현할 수 있다. 만약 세 요인(factor)을 이용해서 변인 Climate에 multiple regression을 한다면 구할 수 있는 R< | ||
- | | | + | | |
| Variable | | Variable | ||
| Climate | | Climate | ||
Line 427: | Line 446: | ||
이렇게 각 변인의 communality값을 구해보면 아래와 같은 테이블을 구할 수 있는데, 요인분석 모델은 Climate, Health, Arts, 그리고 economics의 변량을 가장 잘 설명한다고 하겠다. | 이렇게 각 변인의 communality값을 구해보면 아래와 같은 테이블을 구할 수 있는데, 요인분석 모델은 Climate, Health, Arts, 그리고 economics의 변량을 가장 잘 설명한다고 하겠다. | ||
- | |< 300px 30% - >| | + | |
| Variable | | Variable | ||
| Climate | | Climate | ||
Line 544: | Line 563: | ||
</ | </ | ||
- | Factor scores는 각 팩터에 대한 표준화된 b값을 (베타값) 말한다. 두 개의 팩터를 각각 수학과 과학영역으로 정의하면 첫 번째 subject는 -1.9089514*수학 + -0.52366961*과학으로 구성되어 있다고 하겠다. | + | Factor scores는 각 팩터에 대한 표준화된 b값을 (베타값) 말한다. 두 개의 팩터를 각각 수학과 과학영역으로 정의하면 첫 번째 subject는 -1.9089514*수학 + -0.52366961*과학으로 구성되어 있다고 하겠다. 그러나, 위의 solution은 두 팩터를 독립화(무상관관계, |
Line 733: | Line 752: | ||
< | < | ||
- | > # d = read.table(" | + | > # d <- read.table(" |
- | > d = read.table(" | + | > d <- read.table(" |
> head(d) | > head(d) | ||
Line 1045: | Line 1064: | ||
</ | </ | ||
+ | ===== communality ===== | ||
+ | < | ||
+ | > fa.sort(data.frame(d.fa.so$communality)) | ||
+ | d.fa.so.communality order | ||
+ | outgoin | ||
+ | disorgn | ||
+ | organiz | ||
+ | quiet | ||
+ | tense | ||
+ | withdrw | ||
+ | sociabl | ||
+ | talkatv | ||
+ | relaxed | ||
+ | friendl | ||
+ | worryin | ||
+ | contrar | ||
+ | anxious | ||
+ | shy | ||
+ | lazy 0.5771937 | ||
+ | respnsi | ||
+ | hardwrk | ||
+ | carelss | ||
+ | kind 0.5251513 | ||
+ | discipl | ||
+ | laidbck | ||
+ | harsh | ||
+ | distant | ||
+ | coopera | ||
+ | opposng | ||
+ | agreebl | ||
+ | persevr | ||
+ | givinup | ||
+ | easygon | ||
+ | criticl | ||
+ | approvn | ||
+ | lax | ||
+ | > | ||
+ | </ | ||
===== eigenvalues ===== | ===== eigenvalues ===== | ||
+ | 위의 아웃풋에서 (d.fa.so) | ||
+ | SS loadings (eigenvalue 라고 부른다) | ||
< | < | ||
SS loadings | SS loadings | ||
Line 1053: | Line 1112: | ||
Cumulative Proportion 0.25 0.43 0.60 0.75 0.88 1.00 | Cumulative Proportion 0.25 0.43 0.60 0.75 0.88 1.00 | ||
- | SS total = 32.14286 | ||
SS loadings = eigenvalues for each factor (MR1, . . . ) | SS loadings = eigenvalues for each factor (MR1, . . . ) | ||
</ | </ | ||
+ | |||
SS loadings | SS loadings | ||
- | Proportion Var | + | <code> |
+ | # SS total = 각 변인들의 분산을 (variation) 1 로 보았을 때 SS loading 값을 구한 것이므로 | ||
+ | # SS total 값은 각 변인들의 숫자만큼이 된다. 이 경우는 총 32개 문항이 존재하므로 32가 SS total | ||
+ | ss.tot = 32 | ||
+ | </code> | ||
+ | SS total <fc # | ||
+ | $\frac {4.5}{32} = 0.14$ | ||
+ | Proportion Var <fc # | ||
eigenvalues for factor 1 | eigenvalues for factor 1 | ||
- | < | + | |
- | d.fa.s.loadings.f1 <- d.fa.s$loadings[, | + | | SS loadings \\ eigenvalue |
- | ev_fa1 <- sum(data.frame(d.fa.s.loadings.f1)^2) | + | | | $\frac {4.5}{32}$ |
+ | | Proportion Var | 0.14 | 0.10 | 0.09 | 0.08 | 0.07 | 0.07 | | ||
+ | | Cumulative Var | 0.14 | 0.24 | 0.33 | 0.41 | 0.48 | 0.55 | | ||
+ | |||
+ | 아래는 loading값 중 첫번 째 팩터의 합을 (eigenvalue) | ||
+ | < | ||
+ | d.fa.so.loadings.f1 <- d.fa.so$loadings[, | ||
+ | ev_fa1 <- sum(data.frame(d.fa.so.loadings.f1)^2) | ||
# this value should be matched with SS loadings for MR1 | # this value should be matched with SS loadings for MR1 | ||
ev_fa1 | ev_fa1 | ||
Line 1068: | Line 1141: | ||
</ | </ | ||
- | What is the total variance of all variables? | + | < |
- | \begin{eqnarray*} | + | > (4.50+3.19+2.97+2.55+2.31+2.16)/32 |
- | 4.5 : 0.14 =& x : 1.00 \\ | + | [1] 0.5525 |
- | x =& 4.5 / .14 \\ | + | |
- | =& 32.14286 | + | |
- | \end{eqnarray*} | + | |
- | + | ||
- | Proportion of Factor 1's contribution | + | |
- | < | + | |
- | [1] 0.1406331 | + | |
- | ></ | + | |
+ | > or | ||
+ | sum(d.fa.so.loadings^2)/ | ||
+ | </ | ||
===== specific variance ===== | ===== specific variance ===== | ||
1 - communality | 1 - communality | ||
Uniqueness | Uniqueness | ||
< | < | ||
- | data.frame(d.fa.s$uniquenesses) | + | data.frame(d.fa.so$uniquenesses) |
- | d.fa.s.uniquenesses | + | d.fa.so.uniquenesses |
outgoin | outgoin | ||
quiet | quiet | ||
Line 1123: | Line 1191: | ||
uniqueness for variable 1 (v1) | uniqueness for variable 1 (v1) | ||
- | < | + | < |
- | > d.fa.s.communality.v1 <- sum(d.fa.s.loadings.v1^2) | + | > d.fa.so.communality.v1 <- sum(d.fa.so.loadings.v1^2) |
- | > d.fa.s.uniqeness.v1 <- 1 - d.fa.s.communality.v1 | + | > d.fa.so.uniqeness.v1 <- 1 - d.fa.so.communality.v1 |
- | > d.fa.s.communality.v1 | + | > d.fa.so.communality.v1 |
[1] 0.737626 | [1] 0.737626 | ||
- | > d.fa.s.uniqeness.v1 | + | > d.fa.so.uniqeness.v1 |
[1] 0.262374 | [1] 0.262374 | ||
> </ | > </ | ||
- | > d.fa.s.communality.v1 | + | > d.fa.so.communality.v1 |
- | > d.fa.s.uniqeness.v1 | + | > d.fa.so.uniqeness.v1 |
===== plotting ===== | ===== plotting ===== | ||
intronductory | intronductory | ||
< | < | ||
- | load12 <- d.fa.s$loadings[, | + | load12 <- d.fa.so$loadings[, |
plot(load12, | plot(load12, | ||
- | text(load12, | + | text(load12, |
</ | </ | ||
< | < | ||
- | load23 <- d.fa.s$loadings[, | + | load23 <- d.fa.so$loadings[, |
plot(load23, | plot(load23, | ||
- | text(load23, | + | text(load23, |
</ | </ | ||
< | < | ||
- | load123 <- d.fa.s$loadings[, | + | load123 <- d.fa.so$loadings[, |
plot(load123, | plot(load123, | ||
- | text(load123, | + | text(load123, |
</ | </ | ||
====== E.g., 4 ====== | ====== E.g., 4 ====== | ||
Line 1388: | Line 1456: | ||
head(saq) | head(saq) | ||
</ | </ | ||
+ | |||
+ | see [[:SAQ dataset]] | ||
====== e.g., 5 ====== | ====== e.g., 5 ====== | ||
{{: | {{: | ||
Line 1482: | Line 1552: | ||
====== Reference ====== | ====== Reference ====== | ||
{{: | {{: | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | see exploratory factor analysis :: {{youtube> |
factor_analysis.txt · Last modified: 2023/11/06 02:53 by hkimscil