Vamos a ver algunos detalles de procesamiento de nuestra base de datos

setwd("/Users/mau/Dropbox/Cursos mau/Maestria CEI")
data<-read.csv("BaseIP.csv",header=TRUE)

¿que hacemos si no estamos seguros de que tipo de variable es nuestra variable?

str(data$s2)
##  Factor w/ 81 levels "18","19","20",..: 4 7 6 4 7 7 10 1 11 10 ...
str(data$p1)
##  Factor w/ 6 levels "Algo","Mucho",..: 1 5 1 1 2 6 1 1 1 5 ...

Primero vamos a tratar de convertir s2 a numerica sin perder la informacion original Para eso vamos a crear una nueva variable “duplicando” s2

data$edad<-data$s2
str(data$edad)
##  Factor w/ 81 levels "18","19","20",..: 4 7 6 4 7 7 10 1 11 10 ...
table(data$edad)
## 
##    18    19    20    21    22    23    24    25    26    27    28    29 
##   277   255   253   226   241   240   252   226   185   213   241   237 
##    30    31    32    33    34    35    36    37    38    39    40    41 
##   285   154   228   212   191   204   244   216   248   218   335   135 
##    42    43    44    45    46    47    48    49    50    51    52    53 
##   299   207   178   280   165   185   274   200   274   147   228   192 
##    54    55    56    57    58    59    60    61    62    63    64    65 
##   184   151   200   167   177   139   174    95   126   119    85   135 
##    66    67    68    69    70    71    72    73    74    75    76    77 
##    85    87   110    53   117    45    69    53    61    56    64    36 
##    78    79    80    81    82    83    84    85    86    87    88    89 
##    39    36    47    15    14    27    23    15     9    12     5     7 
##    90    91    92    93    94    96    97    98 NS/NC 
##     5     3     2     1     2     2     1     1     1

Si transformamos de manera directa perdemos informacion valiosa

data$edad<-as.numeric(data$edad)
str(data$edad)
##  num [1:11000] 4 7 6 4 7 7 10 1 11 10 ...
table(data$edad)
## 
##   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18 
## 277 255 253 226 241 240 252 226 185 213 241 237 285 154 228 212 191 204 
##  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36 
## 244 216 248 218 335 135 299 207 178 280 165 185 274 200 274 147 228 192 
##  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54 
## 184 151 200 167 177 139 174  95 126 119  85 135  85  87 110  53 117  45 
##  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72 
##  69  53  61  56  64  36  39  36  47  15  14  27  23  15   9  12   5   7 
##  73  74  75  76  77  78  79  80  81 
##   5   3   2   1   2   2   1   1   1

Tenemos que indicar a R que las etiquetas realmente representan valores numericos para eso tenemos que usar otra funcion

data$edad<-data$s2
data$edad<-as.numeric(as.character(data$edad))
## Warning: NAs introducidos por coerci'on
str(data$edad)
##  num [1:11000] 21 24 23 21 24 24 27 18 28 27 ...
table(data$edad)
## 
##  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35 
## 277 255 253 226 241 240 252 226 185 213 241 237 285 154 228 212 191 204 
##  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53 
## 244 216 248 218 335 135 299 207 178 280 165 185 274 200 274 147 228 192 
##  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71 
## 184 151 200 167 177 139 174  95 126 119  85 135  85  87 110  53 117  45 
##  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89 
##  69  53  61  56  64  36  39  36  47  15  14  27  23  15   9  12   5   7 
##  90  91  92  93  94  96  97  98 
##   5   3   2   1   2   2   1   1

Asi pudimos mantener los valores originales

Ahora, vamos a “jugar” con p1

is.factor(data$p1)
## [1] TRUE
table(data$p1)
## 
##  Algo Mucho    NC    NS  Nada  Poco 
##  2588   492    19    95  3532  4274

Basta con decirle a R el orden en que queremos salgan las categorias

data$p1a<-factor(data$p1,levels=c("Poco","Nada","Algo","Mucho"))

Hasta el momento hemos estado trabajando con la muestra. Sin embargo, esta muestra fue diseniada para representar a una poblacion

Para eso debemos decirle a R que la base de datos cuenta con un disenio

Vamos a usar la biblioteca “survey” recuerden que por primera vez debemos usar install.packages(“survey”)

library(survey)
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart
design<-svrepdesign(weights=~ponde,
                    data=data,
                    repweights = data[,388:487],
                    scale=1,
                    type="bootstrap",
                    strata=estrato_s,
                    cluster=conglomerado)

Ahora podemos obtener algunos totales, pero hay que usar comandos un poco diferentes

table(data$s1)
## 
## Hombre  Mujer 
##   4858   6142
svytotal(~s1,design)                  
##             total      SE
## s1Hombre 41932167 9010819
## s1Mujer  44644300 7661208

Para las medias

summary(data$edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   18.00   29.00   41.00   42.72   54.00   98.00       1
svymean(~edad,design, na.rm=T)
##        mean     SE
## edad 41.288 4.0957

Ahora con una variable tipo factor

table(data$p1a)
## 
##  Poco  Nada  Algo Mucho 
##  4274  3532  2588   492
prop.table(table(data$p1a))
## 
##       Poco       Nada       Algo      Mucho 
## 0.39261437 0.32445343 0.23773654 0.04519566
svytable(~p1a,design=design)
## p1a
##     Poco     Nada     Algo    Mucho 
## 32709603 24977519 25024742  3864603
prop.table(svytable(~p1a,design=design))
## p1a
##       Poco       Nada       Algo      Mucho 
## 0.37781170 0.28850241 0.28904785 0.04463803
svytable(~p1a+s1,design=design)
##        s1
## p1a       Hombre    Mujer
##   Poco  16456995 16252608
##   Nada  11610933 13366587
##   Algo  12088420 12936322
##   Mucho  1795173  2069430
prop.table(svytable(~p1a+s1,design=design),margin=2)
##        s1
## p1a         Hombre      Mujer
##   Poco  0.39228601 0.36420453
##   Nada  0.27677025 0.29953171
##   Algo  0.28815214 0.28988991
##   Mucho 0.04279160 0.04637385