This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Ɖste es un R Markdown Notebook. Cuando ejecutes el código contenido, los resultados aparecerĆ”n debajo del código.

Los archivos que se van a usar fueron descargados de datos.gov.co. Luego fueron extraĆ­dos de forma local en formato .txt y .sav.

En el vídeo se explica paso a paso la obtención de datos

  1. Cargando las librerĆ­as requeridas
library(haven)
df <- read_sav("./IEFIC_2015.sav")
head(df)
  1. Preparando el set de datos: tratando los NAs, tipo de estructura de datos.
df[df == "NaN"] <- "NA" ## Convertir todos los NaN a NA
library(data.table) ## Libreria requerida
data.table 1.10.4
  The fastest way to learn (by data.table authors): https://www.datacamp.com/courses/data-analysis-the-data-table-way
  Documentation: ?data.table, example(data.table) and browseVignettes("data.table")
  Release notes, videos and slides: http://r-datatable.com
dt <- data.table(df) # pasando del formato data frame a data table
  1. Extrayendo un subgrupo de variables: Nos vamos a quedar solamente con las que tiene que ver con productos financieros. Creamos una variable ā€œdfinancā€ que conserve las variables de la 195 a la 201, que en el vĆ­deo se explica a que corresponden.
dfinanc <- dt[, c(195:201), with = FALSE] ## seleccionando lo que tiene que ver con productos financieros
dfinanc <- sapply(dfinanc, FUN = function(x) {x <- as.numeric(x)}) ## pasando character a numeric
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
dfinanc <- as.data.table(dfinanc) ## convirtiendo de tipo matrix a datatable
summary(dfinanc) ## estadƭsticas bƔsicas de las variables
     P2966              P2967           P2968               P2969              P2970      
 Min.   :       0   Min.   :1.000   Min.   :0.000e+00   Min.   :       0   Min.   :1.000  
 1st Qu.:       8   1st Qu.:2.000   1st Qu.:1.000e+06   1st Qu.:       8   1st Qu.:2.000  
 Median :       8   Median :2.000   Median :1.000e+07   Median :       8   Median :2.000  
 Mean   :  271767   Mean   :1.992   Mean   :6.929e+07   Mean   :  261978   Mean   :2.005  
 3rd Qu.:      98   3rd Qu.:2.000   3rd Qu.:3.625e+07   3rd Qu.:      98   3rd Qu.:2.000  
 Max.   :15000000   Max.   :9.000   Max.   :4.000e+09   Max.   :24000000   Max.   :9.000  
 NA's   :18425      NA's   :709     NA's   :18372       NA's   :18300      NA's   :709    
     P2971               P2972         
 Min.   :        0   Min.   :       0  
 1st Qu.:   100000   1st Qu.:       0  
 Median :  3000000   Median :       8  
 Mean   : 18346155   Mean   : 4168208  
 3rd Qu.: 12500000   3rd Qu.:  525000  
 Max.   :300000000   Max.   :90000000  
 NA's   :18585       NA's   :18585     
  1. Entrando en el detalle de una de las variables mostradas en el resumen:

4.1. CuƔntos no perciben ingresos por el instrumento financiero o no tienen

nrow(dfinanc[is.na(P2966)])
[1] 18425

4.2. Cuantos perciben algo por el instrumento financiero o lo tienen

nrow(dfinanc[!is.na(P2966)])
[1] 199

4.3. Porcentaje de los que perciben o tienen

nrow(dfinanc[!is.na(P2966)]) / nrow(dfinanc[is.na(P2966)])
[1] 0.01080054
  1. Visualización de los datos: El analisis de los datos puede agilizarse gracias a la visualización de los mismos. Para ellos vamos a basarnos en ggplot2, una libreria de R CRAN y tendremos que hacer algunos arreglos de forma.
library(ggplot2) ## cargamos la libreria de graficos
dfinanc2 <- dfinanc ## haciendo copia de los datos
dfinanc2[is.na(dfinanc2)] <- 0 ## convirtiendo a cero todos los NAs, para visualizacion

Para poder la grƔfica de la variable que muestra ingresos por productos financieros

ggplot(data = dfinanc2, aes(x = seq(1:nrow(dfinanc2)), y = log(P2966))) + geom_point()

Y veamos ahora el grÔfico de la distribución de esta variable

ggplot(data = dfinanc2, aes(x = log(P2966))) + geom_density()

  1. Analisis de correlaciones: ā€œEn probabilidad y estadĆ­stica, la correlación indica la fuerza y la dirección de una relación lineal y proporcionalidad entre dos variables estadĆ­sticas. Se considera que dos variables cuantitativas estĆ”n correlacionadas cuando los valores de una de ellas varĆ­an sistemĆ”ticamente con respecto a los valores homónimos de la otra: si tenemos dos variables (A y B) existe correlación disminuir los valores de A lo hacen tambiĆ©n los de B y viceversa. La correlación entre dos variables no implica, por sĆ­ misma, ninguna relación de causalidadā€ ver (Wikipedia) La Ćŗltima parte sobre la no causalidad es muy muy importante.

6.1. Lo primero es graficar cada variable contra las demƔs para apreciar en cada cuadro las correlaciones

pairs(dfinanc2)

6.2. Esto mismo podemos verlo en números, donde los valores cercanos al 1.0 indican una correlación positiva (cuando los valores de una variable aumenta los de la otra también) y los cercanos a -1.0 indican una correlación negativa (cuando los valores de una variable aumentan los de la otra disminuyen -y viceversa-)

cor(dfinanc2)
              P2966         P2967        P2968         P2969        P2970         P2971
P2966  1.0000000000 -0.0100789178  0.014856870  0.0806952193  0.002710648 -0.0002659983
P2967 -0.0100789178  1.0000000000 -0.056558715 -0.0004369336  0.855897624 -0.0018933276
P2968  0.0148568700 -0.0565587147  1.000000000  0.0030866516  0.004030392  0.0027446459
P2969  0.0806952193 -0.0004369336  0.003086652  1.0000000000  0.003045413 -0.0002934361
P2970  0.0027106480  0.8558976239  0.004030392  0.0030454127  1.000000000 -0.0331238656
P2971 -0.0002659983 -0.0018933276  0.002744646 -0.0002934361 -0.033123866  1.0000000000
P2972 -0.0002003621 -0.0049559881  0.004846268 -0.0002198203 -0.024950421  0.9215707046
              P2972
P2966 -0.0002003621
P2967 -0.0049559881
P2968  0.0048462679
P2969 -0.0002198203
P2970 -0.0249504207
P2971  0.9215707046
P2972  1.0000000000

6.3. HagƔmoslo mƔs amable con la librerƭa corrplot:

library(corrplot)
corrplot(cor(dfinanc2))

corrplot(cor(dfinanc2), method = "number")

corrplot.mixed(cor(dfinanc2), lower="number", upper="circle")

  1. Finalmente, revisemos en detalle las correlaciones seƱaladas:
ggplot(data = dfinanc2, aes(x = P2971, y = P2972)) + geom_point()

ggplot(data = dfinanc2, aes(x = P2967, y = P2970)) + geom_point()

LS0tCnRpdGxlOiAiSUVGQ0lDIFIgTm90ZWJvb2siCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KClRoaXMgaXMgYW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBXaGVuIHlvdSBleGVjdXRlIGNvZGUgd2l0aGluIHRoZSBub3RlYm9vaywgdGhlIHJlc3VsdHMgYXBwZWFyIGJlbmVhdGggdGhlIGNvZGUuIAoKw4lzdGUgZXMgdW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBDdWFuZG8gZWplY3V0ZXMgZWwgY8OzZGlnbyBjb250ZW5pZG8sIGxvcyByZXN1bHRhZG9zIGFwYXJlY2Vyw6FuIGRlYmFqbyBkZWwgY8OzZGlnby4KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkxvcyBhcmNoaXZvcyBxdWUgc2UgdmFuIGEgdXNhciBmdWVyb24gZGVzY2FyZ2Fkb3MgZGUgW2RhdG9zLmdvdi5jb10oaHR0cDovL3d3dy5kYXRvcy5nb3YuY28pLiBMdWVnbyBmdWVyb24gZXh0cmHDrWRvcyBkZSBmb3JtYSBsb2NhbCBlbiBmb3JtYXRvIC50eHQgeSAuc2F2LgoKRW4gZWwgW3bDrWRlb10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj02VUxDUDdOc0lUWSkgc2UgZXhwbGljYSBwYXNvIGEgcGFzbyBsYSBvYnRlbmNpw7NuIGRlIGRhdG9zCgoxLiBDYXJnYW5kbyBsYXMgbGlicmVyw61hcyByZXF1ZXJpZGFzCmBgYHtyfQpsaWJyYXJ5KGhhdmVuKQpkZiA8LSByZWFkX3NhdigiLi9JRUZJQ18yMDE1LnNhdiIpCmhlYWQoZGYpCmBgYAoKMi4gUHJlcGFyYW5kbyBlbCBzZXQgZGUgZGF0b3M6IHRyYXRhbmRvIGxvcyBOQXMsIHRpcG8gZGUgZXN0cnVjdHVyYSBkZSBkYXRvcy4KYGBge3J9CmRmW2RmID09ICJOYU4iXSA8LSAiTkEiICMjIENvbnZlcnRpciB0b2RvcyBsb3MgTmFOIGEgTkEKbGlicmFyeShkYXRhLnRhYmxlKSAjIyBMaWJyZXLDrWEgcmVxdWVyaWRhCmR0IDwtIGRhdGEudGFibGUoZGYpICMgcGFzYW5kbyBkZWwgZm9ybWF0byBkYXRhIGZyYW1lIGEgZGF0YSB0YWJsZQpgYGAKCjMuIEV4dHJheWVuZG8gdW4gc3ViZ3J1cG8gZGUgdmFyaWFibGVzOiBOb3MgdmFtb3MgYSBxdWVkYXIgc29sYW1lbnRlIGNvbiBsYXMgcXVlIHRpZW5lIHF1ZSB2ZXIgY29uIHByb2R1Y3RvcyBmaW5hbmNpZXJvcy4gQ3JlYW1vcyB1bmEgdmFyaWFibGUgImRmaW5hbmMiIHF1ZSBjb25zZXJ2ZSBsYXMgdmFyaWFibGVzIGRlIGxhIDE5NSBhIGxhIDIwMSwgcXVlIGVuIGVsIHbDrWRlbyBzZSBleHBsaWNhIGEgcXVlIGNvcnJlc3BvbmRlbi4KCmBgYHtyfQpkZmluYW5jIDwtIGR0WywgYygxOTU6MjAxKSwgd2l0aCA9IEZBTFNFXSAjIyBzZWxlY2Npb25hbmRvIGxvIHF1ZSB0aWVuZSBxdWUgdmVyIGNvbiBwcm9kdWN0b3MgZmluYW5jaWVyb3MKZGZpbmFuYyA8LSBzYXBwbHkoZGZpbmFuYywgRlVOID0gZnVuY3Rpb24oeCkge3ggPC0gYXMubnVtZXJpYyh4KX0pICMjIHBhc2FuZG8gY2hhcmFjdGVyIGEgbnVtZXJpYwpkZmluYW5jIDwtIGFzLmRhdGEudGFibGUoZGZpbmFuYykgIyMgY29udmlydGllbmRvIGRlIHRpcG8gbWF0cml4IGEgZGF0YXRhYmxlCnN1bW1hcnkoZGZpbmFuYykgIyMgZXN0YWTDrXN0aWNhcyBiw6FzaWNhcyBkZSBsYXMgdmFyaWFibGVzCmBgYAoKNC4gRW50cmFuZG8gZW4gZWwgZGV0YWxsZSBkZSB1bmEgZGUgbGFzIHZhcmlhYmxlcyBtb3N0cmFkYXMgZW4gZWwgcmVzdW1lbjogCgo0LjEuIEN1w6FudG9zIG5vIHBlcmNpYmVuIGluZ3Jlc29zIHBvciBlbCBpbnN0cnVtZW50byBmaW5hbmNpZXJvIG8gbm8gdGllbmVuCmBgYHtyfQpucm93KGRmaW5hbmNbaXMubmEoUDI5NjYpXSkKYGBgCgo0LjIuIEN1YW50b3MgcGVyY2liZW4gYWxnbyBwb3IgZWwgaW5zdHJ1bWVudG8gZmluYW5jaWVybyBvIGxvIHRpZW5lbgpgYGB7cn0KbnJvdyhkZmluYW5jWyFpcy5uYShQMjk2NildKQpgYGAKCjQuMy4gUG9yY2VudGFqZSBkZSBsb3MgcXVlIHBlcmNpYmVuIG8gdGllbmVuCmBgYHtyfQpucm93KGRmaW5hbmNbIWlzLm5hKFAyOTY2KV0pIC8gbnJvdyhkZmluYW5jW2lzLm5hKFAyOTY2KV0pCmBgYAoKNS4gVmlzdWFsaXphY2nDs24gZGUgbG9zIGRhdG9zOiBFbCBhbmFsaXNpcyBkZSBsb3MgZGF0b3MgcHVlZGUgYWdpbGl6YXJzZSBncmFjaWFzIGEgbGEgdmlzdWFsaXphY2nDs24gZGUgbG9zIG1pc21vcy4gUGFyYSBlbGxvcyB2YW1vcyBhIGJhc2Fybm9zIGVuIGdncGxvdDIsIHVuYSBsaWJyZXJpYSBkZSBSIENSQU4geSB0ZW5kcmVtb3MgcXVlIGhhY2VyIGFsZ3Vub3MgYXJyZWdsb3MgZGUgZm9ybWEuCgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKSAjIyBjYXJnYW1vcyBsYSBsaWJyZXJpYSBkZSBncmFmaWNvcwpkZmluYW5jMiA8LSBkZmluYW5jICMjIGhhY2llbmRvIGNvcGlhIGRlIGxvcyBkYXRvcwpkZmluYW5jMltpcy5uYShkZmluYW5jMildIDwtIDAgIyMgY29udmlydGllbmRvIGEgY2VybyB0b2RvcyBsb3MgTkFzLCBwYXJhIHZpc3VhbGl6YWNpb24KYGBgCgpQYXJhIHBvZGVyIGxhIGdyw6FmaWNhIGRlIGxhIHZhcmlhYmxlIHF1ZSBtdWVzdHJhIGluZ3Jlc29zIHBvciBwcm9kdWN0b3MgZmluYW5jaWVyb3MKYGBge3J9CmdncGxvdChkYXRhID0gZGZpbmFuYzIsIGFlcyh4ID0gc2VxKDE6bnJvdyhkZmluYW5jMikpLCB5ID0gbG9nKFAyOTY2KSkpICsgZ2VvbV9wb2ludCgpCmBgYAoKWSB2ZWFtb3MgYWhvcmEgZWwgZ3LDoWZpY28gZGUgbGEgZGlzdHJpYnVjacOzbiBkZSBlc3RhIHZhcmlhYmxlCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IGRmaW5hbmMyLCBhZXMoeCA9IGxvZyhQMjk2NikpKSArIGdlb21fZGVuc2l0eSgpCmBgYAoKNi4gQW5hbGlzaXMgZGUgY29ycmVsYWNpb25lczogIkVuIHByb2JhYmlsaWRhZCB5IGVzdGFkw61zdGljYSwgbGEgY29ycmVsYWNpw7NuIGluZGljYSBsYSBmdWVyemEgeSBsYSBkaXJlY2Npw7NuIGRlIHVuYSByZWxhY2nDs24gbGluZWFsIHkgcHJvcG9yY2lvbmFsaWRhZCBlbnRyZSBkb3MgdmFyaWFibGVzIGVzdGFkw61zdGljYXMuIFNlIGNvbnNpZGVyYSBxdWUgZG9zIHZhcmlhYmxlcyBjdWFudGl0YXRpdmFzIGVzdMOhbiBjb3JyZWxhY2lvbmFkYXMgY3VhbmRvIGxvcyB2YWxvcmVzIGRlIHVuYSBkZSBlbGxhcyB2YXLDrWFuIHNpc3RlbcOhdGljYW1lbnRlIGNvbiByZXNwZWN0byBhIGxvcyB2YWxvcmVzIGhvbcOzbmltb3MgZGUgbGEgb3RyYTogc2kgdGVuZW1vcyBkb3MgdmFyaWFibGVzIChBIHkgQikgZXhpc3RlIGNvcnJlbGFjacOzbiBkaXNtaW51aXIgbG9zIHZhbG9yZXMgZGUgQSBsbyBoYWNlbiB0YW1iacOpbiBsb3MgZGUgQiB5IHZpY2V2ZXJzYS4gTGEgY29ycmVsYWNpw7NuIGVudHJlIGRvcyB2YXJpYWJsZXMgbm8gaW1wbGljYSwgcG9yIHPDrSBtaXNtYSwgbmluZ3VuYSByZWxhY2nDs24gZGUgY2F1c2FsaWRhZCIgdmVyIChbV2lraXBlZGlhXShodHRwczovL2VzLndpa2lwZWRpYS5vcmcvd2lraS9Db3JyZWxhY2klQzMlQjNuKSkgTGEgw7psdGltYSBwYXJ0ZSBzb2JyZSBsYSBubyBjYXVzYWxpZGFkIGVzIG11eSBtdXkgaW1wb3J0YW50ZS4KCjYuMS4gTG8gcHJpbWVybyBlcyBncmFmaWNhciBjYWRhIHZhcmlhYmxlIGNvbnRyYSBsYXMgZGVtw6FzIHBhcmEgYXByZWNpYXIgZW4gY2FkYSBjdWFkcm8gbGFzIGNvcnJlbGFjaW9uZXMKCmBgYHtyLCBjYWNoZT1UUlVFfQpwYWlycyhkZmluYW5jMikKYGBgCgo2LjIuIEVzdG8gbWlzbW8gcG9kZW1vcyB2ZXJsbyBlbiBuw7ptZXJvcywgZG9uZGUgbG9zIHZhbG9yZXMgY2VyY2Fub3MgYWwgMS4wIGluZGljYW4gdW5hIGNvcnJlbGFjacOzbiBwb3NpdGl2YSAoY3VhbmRvIGxvcyB2YWxvcmVzIGRlIHVuYSB2YXJpYWJsZSBhdW1lbnRhIGxvcyBkZSBsYSBvdHJhIHRhbWJpw6luKSB5IGxvcyBjZXJjYW5vcyBhIC0xLjAgaW5kaWNhbiB1bmEgY29ycmVsYWNpw7NuIG5lZ2F0aXZhIChjdWFuZG8gbG9zIHZhbG9yZXMgZGUgdW5hIHZhcmlhYmxlIGF1bWVudGFuIGxvcyBkZSBsYSBvdHJhIGRpc21pbnV5ZW4gLXkgdmljZXZlcnNhLSkKCmBgYHtyfQpjb3IoZGZpbmFuYzIpCmBgYAoKNi4zLiBIYWfDoW1vc2xvIG3DoXMgYW1hYmxlIGNvbiBsYSBsaWJyZXLDrWEgY29ycnBsb3Q6CgpgYGB7cn0KbGlicmFyeShjb3JycGxvdCkKY29ycnBsb3QoY29yKGRmaW5hbmMyKSkKY29ycnBsb3QoY29yKGRmaW5hbmMyKSwgbWV0aG9kID0gIm51bWJlciIpCmNvcnJwbG90Lm1peGVkKGNvcihkZmluYW5jMiksIGxvd2VyPSJudW1iZXIiLCB1cHBlcj0iY2lyY2xlIikKYGBgCgo3LiBGaW5hbG1lbnRlLCByZXZpc2Vtb3MgZW4gZGV0YWxsZSBsYXMgY29ycmVsYWNpb25lcyBzZcOxYWxhZGFzOgoKYGBge3J9CmdncGxvdChkYXRhID0gZGZpbmFuYzIsIGFlcyh4ID0gUDI5NzEsIHkgPSBQMjk3MikpICsgZ2VvbV9wb2ludCgpCmdncGxvdChkYXRhID0gZGZpbmFuYzIsIGFlcyh4ID0gUDI5NjcsIHkgPSBQMjk3MCkpICsgZ2VvbV9wb2ludCgpCmBgYAoKCg==