Está en la página 1de 4

Análisis Factorial

Utilizamos las siguientes librerias

library(tidyverse);library(broom);library(caret);library(glmnet);library(ggthemes);
library(magrittr); library(car); library(gdata); library(ggplot2); library(gridExtra); library(ggpubr);
library(readxl);library(ISLR);library(leaps);library(psych);library(dplyr);library(sandwich);
library(lmtest);library(mltools);library(tseries);library(astsa);library(GGally);library(knitr);
library(kableExtra);library(corrplot);library(class);library(texreg);library(xtable);library(MASS);
library(data.table);library(e1071);library(kernlab);library(RColorBrewer);library(tree);
library(partykit);library(rpart);library(plyr);library(rpart.plot);library(ipred);library(AICcmodavg);
library(plotly);library(gvlma);library(datarium);library(DMwR2);library(MLmetrics);
library(Metrics);library(FNN);library(rsample);library(faraway);library(mctest,REdaS);
library(psych, corrgram);library(polycor);library(ggcorrplot)

Lo que primero hacemos es llamar los dados.

> DF = read.table(file.path(getwd(),"pruebafactorial.csv"),sep = ";",dec = ",",header = TRUE)

> DF %>% head()

> DF = data.frame(DF)

> DF
Observamos que los datos están compuesto por 4 variables las cuales son (Clones, Normas,
Bloques y Rendimiento), y 3 de ellas son variables cualitativas, entonces debemos
transformarlas a variables cuantitativas.

> DF$Clones = as.numeric(DF$Clones)

> DF$Normas = as.numeric(DF$Normas)

> DF$Bloques = as.numeric(DF$Bloques)

Luego vamos a ver correlación que tiene las variables

> mat_cor = hetcor(DF)$correlations #matriz de correlación policorica


> ggcorrplot(mat_cor,type="lower",hc.order = T)

> corrgram::corrgram(DF)

> cr = cor(DF)
> corrplot(cr)

Clones Normas Bloques Rendimiento


Clones 1.0000000 0.0000000 0.0000000 0.5217106
Normas 0.0000000 1.0000000 0.0000000 -0.4162937
Bloques 0.0000000 0.0000000 1.0000000 0.03353683
Rendimiento 0.5217106 -0.4162937 0.03353683 1.0000000

Según la tabla y las gráficas anteriores, nos dice que hay una correlación correlación positiva
media entre las variables Rendimiento y Clones, y hay una correlación negativa media entre las
variables Normas y Rendimiento.
POSTERIORMENTE HAREMOS UN ANÁLISIS FACTORIAL

El resultado va estar compuesto por la variabilidad explicada por los factores explicados como
una combinación linear de un factor(communality) e la variabilidad, que no puede ser explicada
por una combinación linear de un factor (uniqueness). Escogemos un (1) factor para hacer el
análisis porqué la cantidad de variables no es superior a 4 y por tanto, la función factanal NO
permite hacer el análisis con más factores.

> df_fa = factanal(DF,factors = 1)

Call:
factanal(x = DF, factors = 1)

Uniquenesses:
Clones Normas Bloques Rendimiento
0.727 0.826 0.999 0.005

Loadings:
Factor1
Clones 0.522
Normas -0.417
Bloques
Rendimiento 0.997

Factor1
SS loadings 1.443
Proportion Var 0.361

Test of the hypothesis that 1 factor is sufficient.


The chi square statistic is 2.18 on 2 degrees of freedom.
The p-value is 0.336

Una alta uniqueness para una variable indica que el factor no responde bien por su variación.

> df_fa$uniquenesses

Clones Normas Bloques Rendimiento


0.7270300 0.8264836 0.9988766 0.0050000

Otra manera de hacer lo mismo es lo siguiente


> 1 - apply(df_fa$loadings^2,1,sum) #Uniqueness

> apply(df_fa$loadings^2,1,sum) #Communality


> df_fa$PVAL

0.3361016

Los resultados obtenidos em df_fa tiene um teste de hipótesis (p-valor)


La hipótesis nula
H0: El número de factores en el modelo, es suficiente para capturar a dimensionalidad
completa del conjunto de los datos
H1: Rechazamos H0 si el p-valor es menor a 0.05
Como nuestro valor del p-valor es 0.336, esto quiere decir que el número de factores es bien
pequeño.

MATRIZ RESIDUAL

> lambda = df_fa$loadings

> psi = diag(df_fa$uniquenesses)

> sigma = lambda %*% t(lambda) + psi

> round(cor_fa - sigma,6)

Clones Normas Bloques Rendimiento


Clones 0.000001 0.217632 -0.017514 0.000553
Normas 0.217632 0.000003 0.013964 -0.000786
Bloques -0.017514 0.013964 0.000000 0.000098
Rendimiento 0.000553 -0.000786 0.000098 -0.000004

El resultado de la matriz es chamada Matriz Residual. Si tenemos números cerca de 0 (cero),


quiere decir que nuestro modelo de factor tiene una buena representación.

No es posible hacer um Análisis Factorial em tres situaciones: sin rotación, con rotación varimax
y con rotación promax, ya que para esto necesitamos un mínimo de 2 factores y los datos no se
prestan para hacerlo

También podría gustarte