El estudio de la estadística trae consigo la necesidad de familiarizarse con una serie de conceptos:
POBLACION. Todos los estudios estadísticos se hacen tratando de aproximarse al conocimiento de una población. En ese sentido, se asume que los miembros de una población tienen ciertas caracteríticas comunes pero variables (no son constantes). Esa variabilidad es lo que amerita el estudio estadístico. Durante el estudio estadístico, se puede encontrar que la población no se definió bien, lo que perjudicó el proceso de muestreo.
MUESTRA. La muestra es parte de la población. Se habla de muestra representativa si esta es producto de un proceso que ha respetado principios de selección probabilísticos; de caso contrario, se le denomina muestra de conveniencia. Sólo la representativa permite generalización.
PARAMETRO y ESTADIGRAFO. Los valores que describen una población se denominan parámetros. Siendo las poblaciones tan grandes, se suele usar la muestra para estimar los parámetros. Los valores que describen la muestra son los estadígrafos.
TIPO de dato. Los datos son de diverso tipo. Los programas de análisis estadístico no siempre identifican de manera adecuada esos tipos. Si tomamos una hoja de cálculo como referencia, una columna debe tener un sólo tipo de dato. En general los tipos se clasifican en:
Identificar cada tipo de manera correcta es trabajo del analista. Una vez identificado, se puede proceder a elegir la técnica adecuada para su tratamiento.
No todas la columnas son variables de estudio. Algunas de ellas son los identificadores, valores que sirven para identificar cada fila o unidad de análisis; estos valores suelen ser de tipo texto.
R es un poderoso y amigable programa para el análisis estadístico, tanto para usuarios básicos como avanzados.
En nuestro curso usaremos RStudio, o RStudioCloud (una versión de R que puede utilizarse desde la web sin necesidad de instalar nada en la computadora). Si tiene buena señal de internet, abra su cuenta de correo unmsm.edu.pe y en otra pestaña del browser vaya al link: https://rstudio.cloud/; vaya al login de RStudio y diga que usará su cuenta google, cuando se lo solicite seleccione el la cuenta de la UNMSM.
Yo usaré RStudio Cloud para crear un proyecto nuevo, y dentro de este proyecto escribiremos códigos en un Notebook.
Para mostrar lo básico de R, usare un archivo que tengo en GoogleDrive. R puede abrir archivos que estén en GoogleDrive en formato CSV (valores separados por comas). Uno debe usar el link con el que Google puede publicar esos archivos.
Para este caso, descargue y dele una mirada a este archivo (también disponible en GoogleClassroom). Este archivo n se puede analizar sino se sabe qué tiene. Cada fila es un cliente que paga en un restaurant, y ha sido recogido para saber cuanta propina dejan los comensales. Ahora sigue mis instrucciones:
Abajo, el link generado lo pondré entre comillas simples y lo asigno a un objeto de R que se llamrá LINK. Los objetos de R sirven para guardar valores simples o compuestos, y uno decide que nombre darles, mientras que no se usan caracteres especiales ni comiencen con un número.
LINK=''
El objeto solo guarda el texto del link, no la data. Ese objeto lo usaré en una función de R:
datosLeidos=read.csv(LINK,stringsAsFactors = F)
Toda la información ha sido ‘transferida’ usando el simbolo = (también se puede utilizar <-) a otro objeto: datosLeidos. El comando read.csv se utilizó pues corresponde al tipo de archivo original en GoogleDrive. Un archivo de este tipo es similar a un archivo en Excel, de hecho puedes abrirlo en Excel fácilmente.
Veamos algunas funciones básicas de R:
names(datosLeidos)
head(datosLeidos) # head(datosLeidos,10) daria 10 primeras filas
tail(datosLeidos) # tail(datosLeidos,10) daria 10 últimas
# posicion de las columnas que quiero cambiar
posicionesCambiar=c(2,3,5,6,7,8)
# nombres a utilizar
nuevosNombres=c('pagoTotal','propina','zonaFumador','dia','momentoDia', 'tamañoGrupo')
# renombrando: reemplazo valores
names(datosLeidos)[posicionesCambiar]=nuevosNombres
El comando c() es muy utilizado pues sirve para concatenar valores en un vector. Justo hemos visto cómo sirve para crear dos vectores de datos posicionesCambiar y nuevosNombres. Note el uso de los ‘brackets’: [ ]. Con ellos indicamos qué elementos cambiar.
str(datosLeidos)
Un int almacena numeros sin decimales, un num numeros con decimales, y chr almacena texto. R tiene además los tipos factor y ordered para las nominales y ordinales; asi tambi´n el tipo logic.
summary(datosLeidos)
Las variables categóricas están guardadas como texto (char), por lo que R no entrega estadisticos de ellas. Si le pedimos a R que las convierta en categorias, el resumen será diferente.
# una variable:
datosLeidos$sex=as.factor(datosLeidos$sex)
# veamos:
summary(datosLeidos)
Hice sólo un cambio, y R me entrega para esa variable el conteo de cada modalidad o nivel.
# para varios
# [filas,columnas]
datosLeidos[,c(5:7)]=lapply(datosLeidos[,c(5:7)], as.factor)
# veamos:
summary(datosLeidos)
Note el uso de la función lapply, que aplica una función a varias columnas. La función a aplicar es as.factor, que puede convertir numeros o texto en categorias o factores en el jerga del R.
Cuando escribimos datosLeidos[,c(5:7)] hemos llamada a un subconjunto de los datos. Esto se debe entender así. Las variables que queriamos transformar están en las columnas de la 5 a la 7 del objeto datosLeidos.
Si uno escribe datosLeidos[1,1] R devuelve una celda (primera fila, primera columna). Si escribimos datosLeidos[,4] devuelve todas las filas de la columna 4.
Pero escribir datosLeidos[,4,5,6,7] seria un error. Por lo que hay que concatenar los valores cuando hay más de una columna. Esto se hace con el comando c().
El subconjunto pudo haber sido datosLeidos[,c(5,6,7)]; pero el comando c() acepta c(5:7) como una secuencia.
En general, podemos crear una secuencia así:
1:10
Pero si queremos secuencias mas complejas podemos usar:
seq(3,20,3)
Si quisieramos ver una variable, podemos seleccionarla usando el simbolo ‘$’:
summary(datosLeidos$pagoTotal)
Si queremos lo mismo para dos, podemos usar nombres:
summary(datosLeidos[,c('pagoTotal','momentoDia')])
…o posiciones:
summary(datosLeidos[,c(2,7)])
Usamos operaciones lógicas para realizar consultas a una tabla de datos. Veamos:
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"propina"] # comillas!
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"momentoDia"] # comillas!
datosLeidos[datosLeidos$pagoTotal==max(datosLeidos$pagoTotal),"pagoTotal"] # comillas!
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"pagoTotal"] # comillas!
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"sex"] # comillas!
max(datosLeidos[datosLeidos$sex=='F','propina'])
nrow(datosLeidos[datosLeidos$propina/datosLeidos$pagoTotal<0.10,])
nrow(datosLeidos[datosLeidos$propina/datosLeidos$pagoTotal<0.10 & datosLeidos$dia%in%c('Sat','Sun'),])
nrow(datosLeidos[datosLeidos$propina/datosLeidos$pagoTotal<0.10 & !datosLeidos$dia%in%c('Sat','Sun'),])
Practique y pase a resolver estos [ejercicios]https://rpubs.com/EstadisticaCP_unmsm/s1_introR_ej).