User Tools

Site Tools


factor_analysis_examples

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
factor_analysis_examples [2019/12/06 14:01] hkimscilfactor_analysis_examples [2022/05/05 15:02] (current) – [2] hkimscil
Line 180: Line 180:
 Proportion Explained  0.27 0.24 0.17 0.16 0.16 Proportion Explained  0.27 0.24 0.17 0.16 0.16
 Cumulative Proportion 0.27 0.51 0.68 0.84 1.00 Cumulative Proportion 0.27 0.51 0.68 0.84 1.00
 +</code>
 +
 +====== 2 ======
 +<code>
 +food <- read.csv("http://commres.net/wiki/_media/r/food-texture.csv",
 +                 row.names = "X")
 +str(food)
 +</code>
 +
 +<code>
 +food.ini <- fa(food)
 +food.ini$e.values  # we decide to get two factors based on eigenvalues
 +</code>
 +
 +<code>
 +food.fa <- factanal(food, factors = 2)
 +food.fa
 +food.fa$uniquenesses
 +apply(food.fa$loadings^2,1,sum) # communality
 +1 - apply(food.fa$loadings^2,1,sum) # 1 - communality = uniq
 +</code>
 +
 +<code>
 +Lambda <- food.fa$loadings
 +Psi <- diag(food.fa$uniquenesses)
 +S <- food.fa$correlation
 +Sigma <- Lambda %*% t(Lambda) + Psi
 +</code>
 +
 +<code>
 +round(S - Sigma, 6)
 +</code>
 +
 +<code>
 +food.fa.none <- factanal(food, factors = 2, rotation = "none")
 +food.fa.varimax <- factanal(food, factors = 2, rotation = "varimax")
 +food.fa.promax <- factanal(food, factors = 2, rotation = "promax")
 +
 +par(mfrow = c(1,3))
 +plot(food.fa.none$loadings[,1], 
 +     food.fa.none$loadings[,2],
 +     xlab = "Factor 1", 
 +     ylab = "Factor 2", 
 +     ylim = c(-1,1),
 +     xlim = c(-1,1),
 +     main = "No rotation")
 +abline(h = 0, v = 0)
 +
 +plot(food.fa.varimax$loadings[,1], 
 +     food.fa.varimax$loadings[,2],
 +     xlab = "Factor 1", 
 +     ylab = "Factor 2", 
 +     ylim = c(-1,1),
 +     xlim = c(-1,1),
 +     main = "Varimax rotation")
 +
 +text(food.fa.varimax$loadings[,1]-0.08, 
 +     food.fa.varimax$loadings[,2]+0.08,
 +      colnames(food),
 +      col="blue")
 +abline(h = 0, v = 0)
 +
 +plot(food.fa.promax$loadings[,1], 
 +     food.fa.promax$loadings[,2],
 +     xlab = "Factor 1", 
 +     ylab = "Factor 2",
 +     ylim = c(-1,1),
 +     xlim = c(-1,1),
 +     main = "Promax rotation")
 +abline(h = 0, v = 0)
 +
 +par(mfrow = c(1,1))
 </code> </code>
factor_analysis_examples.1575608466.txt.gz · Last modified: 2019/12/06 14:01 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki