Parte 01

Se carga la tabla para desarrollar el ejercicio.

library(readxl)
datos <- read_excel("~/R/proyectos/ACAACA02/DATOS.xlsx")
datos = data.frame(datos)
#Se muestran los datos
head (datos)
N EDAD HIJOS PESO_ANTES_DIETA PESO_DESPUES_DIETA INGRESO GASTOS TIEMPO_RECORRIDO GASTO_DIARIO_TRANSPORTE PERSONAS_HOGAR PERSONAS_EDAD_TRABAJAR NUMERO_PERSONAS_EDAD_TRABAJAR
1 32 3 79 67 3400 2000 20 6 5 4 2
2 33 2 58 55 4000 3100 25 10 5 5 3
3 35 0 70 65 1100 800 40 6 3 2 1
4 60 1 59 58 1600 1550 30 10 2 2 1
5 19 0 62 60 1650 1300 38 3 5 3 1
6 20 0 75 77 600 600 10 3 1 1 1

Para realizar el analisis exploratorio multivariado vamos a realizar los siguientes pasos:

1. Entender el problema

A partir de la base de datos denominda datos.xls, se realizará un análisis exploratorio multivariado que nos permitiran describir el comportamiento de las personas con respecto a las variables ingresos y gastos.

2. Analisis Exploratorio e inferencial por variable

a. Analisis Exploratorio por variable
library(dplyr)
library(ggplot2)

# Resumen estadístico de las variables
summary(datos)
##        N              EDAD           HIJOS      PESO_ANTES_DIETA
##  Min.   : 1.00   Min.   :19.00   Min.   :0.00   Min.   :40.00   
##  1st Qu.:22.75   1st Qu.:29.00   1st Qu.:1.00   1st Qu.:59.00   
##  Median :44.50   Median :38.00   Median :1.00   Median :70.00   
##  Mean   :44.50   Mean   :37.44   Mean   :1.58   Mean   :67.56   
##  3rd Qu.:66.25   3rd Qu.:45.00   3rd Qu.:2.00   3rd Qu.:75.00   
##  Max.   :88.00   Max.   :60.00   Max.   :5.00   Max.   :94.00   
##  PESO_DESPUES_DIETA    INGRESO         GASTOS     TIEMPO_RECORRIDO
##  Min.   :38.00      Min.   : 500   Min.   : 400   Min.   :10.0    
##  1st Qu.:58.00      1st Qu.: 750   1st Qu.: 700   1st Qu.:20.0    
##  Median :65.00      Median :1200   Median :1050   Median :30.0    
##  Mean   :65.57      Mean   :1705   Mean   :1448   Mean   :29.9    
##  3rd Qu.:71.00      3rd Qu.:2325   3rd Qu.:1925   3rd Qu.:40.0    
##  Max.   :90.00      Max.   :6000   Max.   :5500   Max.   :55.0    
##  GASTO_DIARIO_TRANSPORTE PERSONAS_HOGAR  PERSONAS_EDAD_TRABAJAR
##  Min.   :  3.00          Min.   :1.000   Min.   :1.000         
##  1st Qu.:  4.75          1st Qu.:3.000   1st Qu.:2.000         
##  Median :  5.50          Median :3.000   Median :2.000         
##  Mean   :  9.17          Mean   :3.534   Mean   :2.443         
##  3rd Qu.:  8.00          3rd Qu.:5.000   3rd Qu.:3.000         
##  Max.   :240.00          Max.   :5.000   Max.   :5.000         
##  NUMERO_PERSONAS_EDAD_TRABAJAR
##  Min.   :1.00                 
##  1st Qu.:1.00                 
##  Median :2.00                 
##  Mean   :1.83                 
##  3rd Qu.:2.00                 
##  Max.   :3.00
# Mostramos los nombres de variables
names(datos)
##  [1] "N"                             "EDAD"                         
##  [3] "HIJOS"                         "PESO_ANTES_DIETA"             
##  [5] "PESO_DESPUES_DIETA"            "INGRESO"                      
##  [7] "GASTOS"                        "TIEMPO_RECORRIDO"             
##  [9] "GASTO_DIARIO_TRANSPORTE"       "PERSONAS_HOGAR"               
## [11] "PERSONAS_EDAD_TRABAJAR"        "NUMERO_PERSONAS_EDAD_TRABAJAR"
# Histogramas de cada variable
hist(datos$EDAD, main = "Histograma de EDAD", xlab = "EDAD")

hist(datos$HIJOS, main = "Histograma de HIJOS", xlab = "HIJOS")

hist(datos$PESO_ANTES_DIETA, main = "Histograma de PESO_A_DIETA", xlab = "PESO_ANTES_DIETA")

hist(datos$PESO_DESPUES_DIETA, main = "Histograma de PESO_D_DIETA", xlab = "PESO_DESPUES_DIETA")

hist(datos$INGRESO, main = "Histograma de INGRESO", xlab = "INGRESO")

hist(datos$GASTOS, main = "Histograma de GASTOS", xlab = "GASTOS")

hist(datos$TIEMPO_RECORRIDO, main = "Histograma de TIEMPO_RECORRIDO", xlab = "TIEMPO_RECORRIDO")

hist(datos$GASTO_DIARIO_TRANSPORTE, main = "Histograma de GASTO_D_TRANSPORTE", xlab = "GASTO_DIARIO_TRANSPORTE")

hist(datos$PERSONAS_HOGAR, main = "Histograma de PERSONAS_HOGAR", xlab = "PERSONAS_HOGAR")

hist(datos$PERSONAS_EDAD_TRABAJAR, main = "Histograma de P_EDAD_TRABAJAR", xlab = "PERSONAS_EDAD_TRABAJAR")

hist(datos$NUMERO_PERSONAS_EDAD_TRABAJAR, main = "Histograma de N_P_EDAD_TRABAJAR", xlab = "NUMERO_PERSONAS_EDAD_TRABAJAR")

# Diagramas de caja
#par(mfrow=c(2,1))
boxplot(datos$EDAD, main = "Boxplot de EDAD")

boxplot(datos$HIJOS, main = "Boxplot de HIJOS")

boxplot(datos$PESO_ANTES_DIETA, main = "Boxplot de PESO_A_DIETA")

boxplot(datos$PESO_DESPUES_DIETA, main = "Boxplot de PESO_D_DIETA")

boxplot(datos$INGRESO, main = "Boxplot de INGRESO")

boxplot(datos$GASTOS, main = "Boxplot de GASTOS")

boxplot(datos$TIEMPO_RECORRIDO, main = "Boxplot de TIEMPO_RECORRIDO")

boxplot(datos$GASTO_DIARIO_TRANSPORTE, main = "Boxplot de GASTO_D_TRANSPORTE")

boxplot(datos$PERSONAS_HOGAR, main = "Boxplot de PERSONAS_HOGAR")

boxplot(datos$PERSONAS_EDAD_TRABAJAR, main = "Boxplot de P_EDAD_TRABAJAR")

boxplot(datos$NUMERO_PERSONAS_EDAD_TRABAJAR, main = "Boxplot de N_P_EDAD_TRABAJAR")

# Diagrama de dispersión
pairs(datos)

b. Analisis Inferencial por variable
library(Rcmdr)
library(abind, pos=20)
library(e1071, pos=21)

numSummary(datos[,c("EDAD", "GASTO_DIARIO_TRANSPORTE", "GASTOS", "HIJOS", 
  "INGRESO", "NUMERO_PERSONAS_EDAD_TRABAJAR", "PERSONAS_EDAD_TRABAJAR", 
  "PERSONAS_HOGAR", "PESO_ANTES_DIETA", "PESO_DESPUES_DIETA", 
  "TIEMPO_RECORRIDO"), drop=FALSE], statistics=c("mean", "se(mean)", "var", 
  "quantiles", "CV"), quantiles=c(0,.25,.5,.75,1))
##                                      mean     se(mean)          var        CV
## EDAD                            37.443182   1.22355602 1.317439e+02 0.3065437
## GASTO_DIARIO_TRANSPORTE          9.170455   2.67170150 6.281430e+02 2.7329923
## GASTOS                        1448.295455 114.38596481 1.151405e+06 0.7408954
## HIJOS                            1.579545   0.14064487 1.740726e+00 0.8352820
## INGRESO                       1705.340909 131.07653974 1.511933e+06 0.7210329
## NUMERO_PERSONAS_EDAD_TRABAJAR    1.829545   0.07788611 5.338297e-01 0.3993541
## PERSONAS_EDAD_TRABAJAR           2.443182   0.09944721 8.702978e-01 0.3818371
## PERSONAS_HOGAR                   3.534091   0.12409428 1.355146e+00 0.3293938
## PESO_ANTES_DIETA                67.556818   1.20895064 1.286174e+02 0.1678729
## PESO_DESPUES_DIETA              65.568182   1.11812692 1.100183e+02 0.1599703
## TIEMPO_RECORRIDO                29.897727   1.21371471 1.296331e+02 0.3808200
##                                0%    25%    50%  75% 100%  n
## EDAD                           19  29.00   38.0   45   60 88
## GASTO_DIARIO_TRANSPORTE         3   4.75    5.5    8  240 88
## GASTOS                        400 700.00 1050.0 1925 5500 88
## HIJOS                           0   1.00    1.0    2    5 88
## INGRESO                       500 750.00 1200.0 2325 6000 88
## NUMERO_PERSONAS_EDAD_TRABAJAR   1   1.00    2.0    2    3 88
## PERSONAS_EDAD_TRABAJAR          1   2.00    2.0    3    5 88
## PERSONAS_HOGAR                  1   3.00    3.0    5    5 88
## PESO_ANTES_DIETA               40  59.00   70.0   75   94 88
## PESO_DESPUES_DIETA             38  58.00   65.0   71   90 88
## TIEMPO_RECORRIDO               10  20.00   30.0   40   55 88
scatterplotMatrix(~EDAD+GASTO_DIARIO_TRANSPORTE+GASTOS+HIJOS+INGRESO+NUMERO_PERSONAS_EDAD_TRABAJAR+PERSONAS_EDAD_TRABAJAR+PERSONAS_HOGAR+PESO_ANTES_DIETA+PESO_DESPUES_DIETA+TIEMPO_RECORRIDO,
   regLine=FALSE, smooth=FALSE, diagonal=list(method="density"), data=datos)

Con la anterior información se puede analizar lo siguiente:

  1. La edad de los pertenecientes en la base de datos se encuentra entre los 19 y los 60 años de los cuales la edad promedio es 37 años.

  2. Por el histigrama y el diagrama de caja el numero de hijos disminuye a medida que aumenta el item de cantidad de numeros de hijos y existen datos atipicos (4 y 5 hijos) que se escapa del tercer cuartil ( 2 hijos)

  3. En comparacion de los promedios de pesos antes de la dieta que estaba en 67,56 kg paso a ser despues de la dieta de 65 kg y dejando de ser el dato maximo de kilogramos de 94 kg a 90 kg respectivamente po rlo cual se puede deducir que la dieta funcionó

  4. en comparación con los datos de gastos e ingresos la diferencia entre los datos es muy pequeña, es decir que explica que el restante de los ingresos y los gatos es reducido, comportandose con una igualdad promedio visualizada entre el histograma y la diagrama de caja

  5. El tiempo minimo de recorrido de las personas esta entre 10 minutos minimo y 55 minutos maximo, con un promedio de 30 minutos por recorrido

  6. En los gastos diario de tranposte volvemos encontrar datos atipicos (por encima de los 200 pesos) quedando muy por encima del tercer cuartil (8 pesos) y el promedio (9,17 pesos)

  7. el promedio de personas que viven en el hogar es de 3 personas, de las cuales una persona tiene edad para laborar

3. Asociacion entre variables

a. Correlación
## Matriz de correlacion 1
library(corrplot)
matr_corr = cor(datos)
matr_corr
##                                          N        EDAD       HIJOS
## N                              1.000000000  0.35366878  0.15260292
## EDAD                           0.353668783  1.00000000  0.56880406
## HIJOS                          0.152602917  0.56880406  1.00000000
## PESO_ANTES_DIETA              -0.034137837 -0.22116893 -0.24689279
## PESO_DESPUES_DIETA            -0.009393917 -0.18599768 -0.23420555
## INGRESO                        0.092477082  0.11178889  0.15642326
## GASTOS                         0.141355241  0.16697514  0.13304516
## TIEMPO_RECORRIDO              -0.074152475 -0.03623822 -0.20796085
## GASTO_DIARIO_TRANSPORTE        0.062965614 -0.03294995 -0.01588319
## PERSONAS_HOGAR                 0.005217659 -0.13749266  0.20027681
## PERSONAS_EDAD_TRABAJAR        -0.169039854 -0.30301771 -0.24842787
## NUMERO_PERSONAS_EDAD_TRABAJAR -0.023092180 -0.10601987 -0.03942979
##                               PESO_ANTES_DIETA PESO_DESPUES_DIETA    INGRESO
## N                                  -0.03413784       -0.009393917 0.09247708
## EDAD                               -0.22116893       -0.185997683 0.11178889
## HIJOS                              -0.24689279       -0.234205548 0.15642326
## PESO_ANTES_DIETA                    1.00000000        0.968894099 0.29131702
## PESO_DESPUES_DIETA                  0.96889410        1.000000000 0.24972971
## INGRESO                             0.29131702        0.249729711 1.00000000
## GASTOS                              0.25793618        0.237477784 0.96515750
## TIEMPO_RECORRIDO                    0.14536575        0.111850764 0.14008995
## GASTO_DIARIO_TRANSPORTE             0.05801588        0.055419068 0.37027554
## PERSONAS_HOGAR                     -0.20823095       -0.242592460 0.32866408
## PERSONAS_EDAD_TRABAJAR             -0.21154284       -0.206928079 0.04510841
## NUMERO_PERSONAS_EDAD_TRABAJAR      -0.10493621       -0.092206502 0.11502130
##                                   GASTOS TIEMPO_RECORRIDO
## N                             0.14135524      -0.07415247
## EDAD                          0.16697514      -0.03623822
## HIJOS                         0.13304516      -0.20796085
## PESO_ANTES_DIETA              0.25793618       0.14536575
## PESO_DESPUES_DIETA            0.23747778       0.11185076
## INGRESO                       0.96515750       0.14008995
## GASTOS                        1.00000000       0.15715034
## TIEMPO_RECORRIDO              0.15715034       1.00000000
## GASTO_DIARIO_TRANSPORTE       0.39437553       0.03103740
## PERSONAS_HOGAR                0.28783387       0.07094458
## PERSONAS_EDAD_TRABAJAR        0.03119168      -0.08658457
## NUMERO_PERSONAS_EDAD_TRABAJAR 0.10371866      -0.23424940
##                               GASTO_DIARIO_TRANSPORTE PERSONAS_HOGAR
## N                                          0.06296561    0.005217659
## EDAD                                      -0.03294995   -0.137492664
## HIJOS                                     -0.01588319    0.200276807
## PESO_ANTES_DIETA                           0.05801588   -0.208230951
## PESO_DESPUES_DIETA                         0.05541907   -0.242592460
## INGRESO                                    0.37027554    0.328664083
## GASTOS                                     0.39437553    0.287833874
## TIEMPO_RECORRIDO                           0.03103740    0.070944578
## GASTO_DIARIO_TRANSPORTE                    1.00000000    0.018117944
## PERSONAS_HOGAR                             0.01811794    1.000000000
## PERSONAS_EDAD_TRABAJAR                     0.15207956    0.562761121
## NUMERO_PERSONAS_EDAD_TRABAJAR              0.15099682    0.405575796
##                               PERSONAS_EDAD_TRABAJAR
## N                                        -0.16903985
## EDAD                                     -0.30301771
## HIJOS                                    -0.24842787
## PESO_ANTES_DIETA                         -0.21154284
## PESO_DESPUES_DIETA                       -0.20692808
## INGRESO                                   0.04510841
## GASTOS                                    0.03119168
## TIEMPO_RECORRIDO                         -0.08658457
## GASTO_DIARIO_TRANSPORTE                   0.15207956
## PERSONAS_HOGAR                            0.56276112
## PERSONAS_EDAD_TRABAJAR                    1.00000000
## NUMERO_PERSONAS_EDAD_TRABAJAR             0.70232278
##                               NUMERO_PERSONAS_EDAD_TRABAJAR
## N                                               -0.02309218
## EDAD                                            -0.10601987
## HIJOS                                           -0.03942979
## PESO_ANTES_DIETA                                -0.10493621
## PESO_DESPUES_DIETA                              -0.09220650
## INGRESO                                          0.11502130
## GASTOS                                           0.10371866
## TIEMPO_RECORRIDO                                -0.23424940
## GASTO_DIARIO_TRANSPORTE                          0.15099682
## PERSONAS_HOGAR                                   0.40557580
## PERSONAS_EDAD_TRABAJAR                           0.70232278
## NUMERO_PERSONAS_EDAD_TRABAJAR                    1.00000000
png("corrplot.png", width = 800, height = 800)
corrplot(matr_corr, method = "color",addCoef.col = "black")
dev.off()
## png 
##   2
knitr::include_graphics("corrplot.png")

Segun los datos de correlacion y el el mapa de calor podemos verificar quienes tienen:

Correlacion positiva:

HIJOS - EDAD = 0.57

PESO_ANTES_DIETA - PESO_DESPUES_DIETA = 0.97

GASTOS - INGRESO = 0.97

PERSONAS_EDAD_TRABAJAR - PERSONAS_HOGAR = 0.56

NUMERO_PERSONAS_EDAD_TRABAJAR - PERSONAS_EDAD_TRABAJAR = 0.7

Correlacion negativa

EDAD - PERSONAS_EDAD_TRABAJAR = -0.3

b. Tabla de contingencia

Como los datos no son categoricos no se requier hacer una tabla de contingencia

4. Disminución de dimensión

.cluster <-  KMeans(model.matrix(~-1 + EDAD + GASTO_DIARIO_TRANSPORTE + 
  GASTOS + HIJOS + INGRESO + NUMERO_PERSONAS_EDAD_TRABAJAR + 
  PERSONAS_EDAD_TRABAJAR + PERSONAS_HOGAR + PESO_ANTES_DIETA + 
  PESO_DESPUES_DIETA + TIEMPO_RECORRIDO, datos), centers = 4, iter.max = 10, 
  num.seeds = 10)
.cluster$size # Cluster Sizes
## [1] 18 22  1 47
.cluster$centers # Cluster Centroids
##   new.x.EDAD new.x.GASTO_DIARIO_TRANSPORTE new.x.GASTOS new.x.HIJOS
## 1   40.61111                      6.055556    3116.6667    2.055556
## 2   40.09091                      7.000000    1456.8182    1.318182
## 3   29.00000                    240.000000    5500.0000    1.000000
## 4   35.17021                      6.468085     719.1489    1.531915
##   new.x.INGRESO new.x.NUMERO_PERSONAS_EDAD_TRABAJAR
## 1     3622.2222                            1.944444
## 2     1863.6364                            1.727273
## 3     6000.0000                            3.000000
## 4      805.7447                            1.808511
##   new.x.PERSONAS_EDAD_TRABAJAR new.x.PERSONAS_HOGAR new.x.PESO_ANTES_DIETA
## 1                     2.500000             4.111111               71.27778
## 2                     2.318182             3.681818               68.63636
## 3                     4.000000             4.000000               76.00000
## 4                     2.446809             3.234043               65.44681
##   new.x.PESO_DESPUES_DIETA new.x.TIEMPO_RECORRIDO
## 1                 69.16667               32.88889
## 2                 65.27273               30.90909
## 3                 73.00000               35.00000
## 4                 64.17021               28.17021
.cluster$withinss # Within Cluster Sum of Squares
## [1] 8866102 4649286       0 3558703
.cluster$tot.withinss # Total Within Sum of Squares
## [1] 17074092
.cluster$betweenss # Between Cluster Sum of Squares
## [1] 214734883
biplot(princomp(model.matrix(~-1 + EDAD + GASTO_DIARIO_TRANSPORTE + GASTOS 
  + HIJOS + INGRESO + NUMERO_PERSONAS_EDAD_TRABAJAR + PERSONAS_EDAD_TRABAJAR 
  + PERSONAS_HOGAR + PESO_ANTES_DIETA + PESO_DESPUES_DIETA + TIEMPO_RECORRIDO,
   datos)), xlabs = as.character(.cluster$cluster))

remove(.cluster)

5. Inferencial multivariada

Parte 02

Un Ingeniero quiere establecer una relación lineal, en la que el valor del metro cuadrado de unos inmuebles sea explicado por las variables distancia (en metros) al centro comercial cercano y valor comercial del inmueble, con un 95% de confianza

Se carga la tabla para desarrollar el ejercicio.

columnas = c("N", "valor metro cuadrado", "distancia centro comercial", "valor comercial inmueble")

df = data.frame(matrix(ncol=length(columnas),nrow = 0))
colnames(df) = columnas

df [1,] = c(1,101423,96,49429499)
df [2,] = c(2,115277,94,51305103)
df [3,] = c(3,122570,102,51099623)
df [4,] = c(4,125809,106,50772703)

df
N valor metro cuadrado distancia centro comercial valor comercial inmueble
1 101423 96 49429499
2 115277 94 51305103
3 122570 102 51099623
4 125809 106 50772703