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
- Cargando las librerĆas requeridas
library(haven)
df <- read_sav("./IEFIC_2015.sav")
head(df)
- 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
- 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
- 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
- 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()

- 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")

- 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==