Facultad de Derecho y Ciencia Politica

Escuela de Ciencia Política

Guia de Clase de ESTADISTICA


Profesor: Dr. José Manuel MAGALLANES, Ph.D


Sesión 1:

Definiciones básicas e Introducción al R


Parte 1. Definiciones Básicas

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:

    • Texto o Cadena de caracteres.
    • Categorias Nominales.
    • Categorias Ordinales.
    • Numeros:
      • Discretos.
      • Continuos.

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.

Parte 2. Uso del R

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:

  • Cree una carpeta para el curso.
  • Cree un documento nuevo.
  • Cerciórese que la region es Estados Unidos o México.
  • Importe el archivo descargado.
  • Dele un nombre
  • Publiquelo como CSV.

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:

  1. Saber los nombres de las variables:
names(datosLeidos)
  1. Ver las primeras filas (6 filas por defecto):
head(datosLeidos) # head(datosLeidos,10) daria 10 primeras filas
  1. Ver las últimas filas (6 filas por defecto):
tail(datosLeidos) # tail(datosLeidos,10) daria 10 últimas
  1. Renombrar las variables: Si necesitas que las columnas lleven otro nombre puedes darselo. Los nombres actuales están en inglés, y todas las columnas, menos la primera y la cuarta no se entienden. Aqui están los pasos que seguiré:
# 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.

  1. Identificar Tipo de datos:
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.

  1. Resumen por variable:
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.

  1. Convertir texto a categoría
# 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.

  1. Creando subconjuntos.

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)])
  1. Operaciones Lógicas

Usamos operaciones lógicas para realizar consultas a una tabla de datos. Veamos:

  • ¿cuanto fue la propina más grande?
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"propina"] # comillas!
  • ¿En que momento del día fue la propina más grande?
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"momentoDia"] # comillas!
  • ¿Cuanto fue el pagó total más grande?
datosLeidos[datosLeidos$pagoTotal==max(datosLeidos$pagoTotal),"pagoTotal"] # comillas!
  • ¿Cuanto pagó el que dejó la propina más grande?
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"pagoTotal"] # comillas!
  • ¿De qué sexo es quien dejó la propina más grande?
datosLeidos[datosLeidos$propina==max(datosLeidos$propina),"sex"] # comillas!
  • ¿Cuál fue la máxima propina que dejó una mujer?
max(datosLeidos[datosLeidos$sex=='F','propina'])
  • ¿Cuantos dejaron menos del 10% de propina?
nrow(datosLeidos[datosLeidos$propina/datosLeidos$pagoTotal<0.10,])
  • ¿Cuantos dejaron menos del 10% de propina el fin de semana?
nrow(datosLeidos[datosLeidos$propina/datosLeidos$pagoTotal<0.10 & datosLeidos$dia%in%c('Sat','Sun'),])
  • ¿Cuantos dejaron menos del 10% de propina fuera del fin de semana?
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).