factor_analysis
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
factor_analysis [2019/11/10 12:24] – [Communality (공통성)] hkimscil | factor_analysis [2023/11/06 02:51] – [Communality (공통성)] 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 값과 (위에서 가) factor 분석에 기반한 이론 적인 variance covariance 테이블을 (위에서 나) 비교해 볼 수 있다. 이를 통해서 각 Factor의 $\beta_{ij}$ laoding 값을 유추해 볼 수 있을 것이다. Regression방법은 F1과 F2가 observed된 변인이 아니기에 할 수가 없었고, 위의 방법으로 Beta값들을 구한다면 각 **요인(factor)**에 대한 beta값을 바탕으로 변인들에 대한 regression공식을 완성할 수 있게 된다. | ||
+ | ====== Interpretation of factor loading and the rotation method ====== | ||
- | 실제 데이터에서 구한 variance covariance 값과 factor | + | 위의 |
- | ====== Interpretation of factor loading and the rotation method ====== | + | 좀 더 설명하자면 우리가 regression에서 배운 것에 의하면 |
- | + | ||
- | 위의 분석작업을 통해서 아래와 같은 regression 공식을 얻었다고 | + | |
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 439: | Line 458: | ||
| Economics | | Economics | ||
| Total | | Total | ||
+ | ===== Specificity ===== | ||
+ | | Variable | ||
+ | | Climate | ||
+ | | Housing | ||
+ | | Health | ||
+ | | Crime | ||
+ | | Transportation | ||
+ | | Education | ||
+ | | Arts | 0.754 | | | ||
+ | | Recreation | ||
+ | | Economics | ||
+ | | Total | ||
====== Methods (functions) in R ====== | ====== Methods (functions) in R ====== | ||
Line 446: | Line 477: | ||
* see [[https:// | * see [[https:// | ||
- | ====== E.g. 2 ====== | + | ===== E.g. 2 ====== |
{{: | {{: | ||
Line 492: | Line 523: | ||
factanal(x = my.data, factors = n.factors, scores = c(" | factanal(x = my.data, factors = n.factors, scores = c(" | ||
- | Uniquenesses: | + | # 각 변인이 2개의 (분석에서 2개의 factor를 추출하라고 |
+ | # 하였기때문에 2개) 팩터에 의해서 설명된 부분을 제외한 | ||
+ | # 나머지. 즉, 팩터로딩에 탑재되지 못한 부분을 | ||
+ | # Uniqueness라고 한다. | ||
+ | Uniquenesses: | ||
| | ||
0.25 0.37 0.25 0.37 0.05 0.71 | 0.25 0.37 0.25 0.37 0.05 0.71 | ||
+ | # 팩터로딩. print (fit)의 옵션으로 0.3 밑으로는 | ||
+ | # cutoff하고 sorting을 하라고 한 결과 | ||
Loadings: | Loadings: | ||
| | ||
Line 509: | Line 546: | ||
Proportion Var 0.34 0.32 | Proportion Var 0.34 0.32 | ||
Cumulative Var 0.34 0.66 | Cumulative Var 0.34 0.66 | ||
+ | |||
+ | # SS Loadings은 각 팩터에 탑재된 로딩값을 | ||
+ | # 제곱하여 모두 더한 것을 말한다. 전체 SS | ||
+ | # 값에 비례하여 본 것으로 .34와 .32 (합쳐 | ||
+ | # 서 .66)이 두 팩터에 의해서 설명된다고 | ||
+ | # 할 수 있음 | ||
+ | |||
Test of the hypothesis that 2 factors are sufficient. | Test of the hypothesis that 2 factors are sufficient. | ||
Line 530: | Line 574: | ||
> | > | ||
</ | </ | ||
+ | |||
+ | Factor scores는 각 팩터에 대한 표준화된 b값을 (베타값) 말한다. 두 개의 팩터를 각각 수학과 과학영역으로 정의하면 첫 번째 subject는 -1.9089514*수학 + -0.52366961*과학으로 구성되어 있다고 하겠다. 그러나, 위의 solution은 두 팩터를 독립화(무상관관계, | ||
+ | |||
< | < | ||
Line 717: | Line 764: | ||
< | < | ||
- | > # d = read.table(" | + | > # d <- read.table(" |
- | > d = read.table(" | + | > d <- read.table(" |
> head(d) | > head(d) | ||
Line 1029: | Line 1076: | ||
</ | </ | ||
+ | ===== 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 1037: | Line 1124: | ||
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 1052: | Line 1153: | ||
</ | </ | ||
- | 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 1107: | Line 1203: | ||
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 1372: | Line 1468: | ||
head(saq) | head(saq) | ||
</ | </ | ||
+ | |||
+ | see [[:SAQ dataset]] | ||
====== e.g., 5 ====== | ====== e.g., 5 ====== | ||
{{: | {{: | ||
Line 1466: | Line 1564: | ||
====== Reference ====== | ====== Reference ====== | ||
{{: | {{: | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | see exploratory factor analysis :: {{youtube> |
factor_analysis.txt · Last modified: 2023/11/06 02:53 by hkimscil