data <- read.csv("https://raw.githubusercontent.com/VictorGuevaraP/Mineria-de-datos-2020/master/PEA.csv", sep = ";")
head(data)
## departamento X1 X2 X3 X4 X8 X18 X20
## 1 Amazonas 290 1 2571 1737 1623 181 76285
## 2 Ancash 9018 3 6920 9904 15625 4937 102156
## 3 Apurímac 3049 2 1779 1431 1808 2062 54696
## 4 Arequipa 11243 0 13390 17503 28868 18404 76675
## 5 Ayacucho 7143 2 2639 3134 4166 4963 87986
## 6 Cajamarca 15355 6 9930 7112 7346 6572 242243
boxplot(data[,2:8])
#install.packages("VIM")
library(VIM)
miss <- aggr(data, col=c('green', 'red'),
ylab = c("Histograma de NAs", "Patrón"))
En el cuadro de proporcion de missings podemos observar que la data no cuenta con NA’s.
Capar los valores extremos, es decir, localizar todo lo que cayera fuera del bigote más arriba o más abajo de 1,5 veces de el rango intercuartilico. Y decidir capar dichas obsevaciones sustituyendolas con el percentil número 5. En el caso de los que están debajo del bigote inferior y con el percentil 95 con los que están por encima del bigote superior.
replace_outliers <- function(x, removeNA = TRUE){
qrts <- quantile(x, probs = c(0.25, 0.75), na.rm = removeNA)
caps <- quantile(x, probs = c(.05, 0.95), na.rm = removeNA)
iqr <- qrts[2]-qrts[1]
h <- 1.5*iqr
x[x<qrts[1]-h] <- caps[1]
x[x>qrts[2]+h] <- caps[2]
x
}
data$X1 <- replace_outliers(data$X1)
data$X2 <- replace_outliers(data$X2)
data$X3 <- replace_outliers(data$X3)
data$X4 <- replace_outliers(data$X4)
data$X8 <- replace_outliers(data$X8)
data$X18 <- replace_outliers(data$X18)
data$X20 <- replace_outliers(data$X20)
new_data <- data[,2:8]
library(corrplot)
cor(new_data)
## X1 X2 X3 X4 X8 X18 X20
## X1 1.0000000 0.42023242 0.8811135 0.8335464 0.7722891 0.3669709 0.59018104
## X2 0.4202324 1.00000000 0.3624677 0.4225862 0.5248052 0.1655256 0.04644673
## X3 0.8811135 0.36246771 1.0000000 0.9146756 0.8738325 0.4199897 0.43712478
## X4 0.8335464 0.42258617 0.9146756 1.0000000 0.9796396 0.4828907 0.27636475
## X8 0.7722891 0.52480516 0.8738325 0.9796396 1.0000000 0.4844363 0.17347806
## X18 0.3669709 0.16552555 0.4199897 0.4828907 0.4844363 1.0000000 0.41516730
## X20 0.5901810 0.04644673 0.4371248 0.2763647 0.1734781 0.4151673 1.00000000
corrplot(cor(new_data))
En la gráfica, se puede interpretar lo siguiente:
En la barra vertical que se muestra en el gráfico. En el caso de -1 de color rojo representa una baja correlación entre las variables, por otro lado en 1 de color azúl representa una alta correlación entre las variables.
a. Existe correlación en las variables X1 con X3, X4 y X8. Por otro lado una mediana correlación con la variable X20.
b. En el caso de la variable X2 tiene una mediana correlación con la variable X8 y una baja correlación con las variables X3 y X4, con el resto de variables muestra una mediana correlación.
c. En el caso de la variable X3 existe una alta correlación con las variables X4 y X8 con X3, X4 y X8. Por otro lado una mediana correlación con la variable X20.
d. En el caso de la variable X18 muestra que existe poca correlación con el resto de variables.
library(PerformanceAnalytics)
chart.Correlation(new_data)
Nos muestra de manera porcentual la correlación que hay entre las variables.
set.seed(2018)
1ra Prueba
Formulación de hipótesis:
a. Ho: Matriz de correlación iguales de cero
b. H1: Matriz de correlación diferente de cero
#install.packages("psych")
library(psych)
Evaluamos el p-valor y este tiene que ser < al nivel de significancia, el cual equivale a 0.05. Siendo así, se interpretaría que se rechaza a Ho.
cortest(new_data)
## Tests of correlation matrices
## Call:cortest(R1 = new_data)
## Chi Square value 367.05 with df = 21 with probability < 5.9e-65
Se tiene: 5.9e-65 < 0.05. Entonces, se cumple, por lo tanto se rechazo Ho. Es decir, que existe correlaciones significativas entre las variables estudiadas
2da Prueba
bartlett.test(new_data)
##
## Bartlett test of homogeneity of variances
##
## data: new_data
## Bartlett's K-squared = 679.19, df = 6, p-value < 2.2e-16
Se tiene: 2.2e-16 < 0.05. Entonces, se cumple, por lo tanto se rechaza Ho Esto quiere decir que la matriz de correlaciones es distinta a la de la matriz de identidad (Se prueba este supuesto)
3ra Prueba
Ahora realizamos la prueba de KMO - Kaiser Meyer Olkin, el cual nos permite evaluar si se justifica el uso de PCA.
Se tiene la siguiente regla, si ell valor del KMO es mayor o igual que 0.5. Entonces, se cumple la justificación del uso de PCA
KMO(new_data)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = new_data)
## Overall MSA = 0.67
## MSA for each item =
## X1 X2 X3 X4 X8 X18 X20
## 0.78 0.40 0.92 0.66 0.62 0.62 0.49
Overall MSA = 0.67 >= 0.5, se cumple. Por lo tanto de justifica el PCA.
Se cumplen las pruebas preliminares, entonces procedemos a la realización de PCA.
pca <- prcomp(new_data)
pca
## Standard deviations (1, .., p=7):
## [1] 65058.871656 13293.483310 4740.326541 1825.114572 1530.372750
## [6] 790.130150 3.881705
##
## Rotation (n x k) = (7 x 7):
## PC1 PC2 PC3 PC4 PC5
## X1 4.409677e-02 -0.2477014495 0.2599848785 0.5510399297 0.746236890
## X2 5.270690e-06 -0.0002415337 0.0001001481 -0.0006605317 0.001085605
## X3 3.545698e-02 -0.3190920372 0.1899392024 0.6363274943 -0.661121042
## X4 2.582382e-02 -0.4147088554 0.0698576975 -0.0497550246 -0.014310118
## X8 3.080092e-02 -0.7921050583 0.0241070535 -0.4666576918 0.022898073
## X18 3.655590e-02 -0.1824479806 -0.9437581012 0.2636637336 0.071859463
## X20 9.969184e-01 0.0642112258 0.0137967692 -0.0409676878 -0.012466325
## PC6 PC7
## X1 0.092692700 9.449254e-04
## X2 0.004452111 -9.999892e-01
## X3 0.137303592 -4.304644e-04
## X4 -0.905413715 -3.906417e-03
## X8 0.390820762 2.266999e-03
## X18 -0.003830554 -1.634586e-04
## X20 0.002535605 1.594291e-05
scree(new_data)
De acuerdo al gráfico, interpretamos que con solo usar 2 variables podremos obtener un nuevo conjunto de dartos, con variables reducidas
sum(pca$sdev)
## [1] 87242.18
prop.table(pca$sdev)*100
## [1] 74.572725195 15.237449598 5.433525966 2.092009345 1.754166091
## [6] 0.905674461 0.004449344
data_new <- cbind(new_data[,1:2],data[1])
write.csv(data_new, file = "dataFinal.csv")
getwd()
## [1] "D:/VII CICLO/MINERIA DE DATOS/E3"
Se visualiza el conjunto de datos, con las variables resumidas: https://raw.githubusercontent.com/cnahuina/data-mineria/master/data-pca-caso1.csv