Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Datos en RStudio
2020
El análisis exploratorio comprende una variedad de técnicas y métodos para
maximizar la comprensión de los conjuntos de datos, desde descubrir su estructura y
detectar fallas como outlayers o valores atípicos, hasta comprobar suposiciones y
desarrollar modelos. El análisis exploratorio de inicio comprende gráficas estadísticas
que ayudan a precisar y afinar las preguntas de investigación (Ramón, 2018).
¿Por qué utilizar gráficas? Teniendo como base que una imagen puede resumir
y explicar un fenómeno mejor que describiéndolo con palabras. Las gráficas estadísticas
son unas de las herramientas mas importantes a la hora de apoyar un proceso de
análisis de datos. Con ellas se puede transmitir información de forma rápida y con un
lenguaje de fácil interpretación. Previo a la realización de análisis estadísticos, es
necesario conocer las características de los datos, que pueden ser proporcionadas
mediante las gráficas estadísticas. Convirtiéndose en una herramienta útil que simplifica
el razonamiento critico de los datos (Ramón, 2018).
Partiremos del hecho de que los datos pueden ser definidos como información
que representa atributos cualitativos y cuantitativos de una variable o conjunto de
variables. En estadística los datos se clasifican en datos no agrupados y datos
agrupados. Un dato que es registrado, medido, recopilado de manea inicial corresponde
a un dato no agrupado por ejemplo: la longitud corporal de una hormiga, el área basal
de un árbol o el número de especies de un área especifica (Ramón, 2018).
Tablas de frecuencia
Las tablas de frecuencia surgen como una herramienta para agrupar grandes
cantidades de datos, con el objetivo de simplificar el cálculo de análisis descriptivos o
inferenciales. Una propiedad de las tablas de frecuencia es que cuando se trata de
variables cuantitativas continuas con valores grandes, esos valores se agrupan en
intervalos de clase con la misma amplitud y mutuamente excluyentes. Una regla
empírica establece que deben ser entre 6 y 15 intervalos para obtener un resumen
adecuado, con una misma amplitud. Para establecer la amplitud, una regla a seguir es
la generación de 5 o 10 unidades (si esta en escala de 0 y 1, las amplitudes serian 0.05,
0.10….), siendo el limite inferior del primer intervalo, menor o igual al valor mínimo de la
variable; análogamente, el limite superior del intervalo, debe ser mayor o igual al máximo
valor de la variable.
Como ejemplo, vamos a construir una tabla con 5 columnas. Las columnas están
conformadas por: intervalos de clases, frecuencias absolutas, frecuencias relativas, y
frecuencias acumuladas:
El archivo sobre el cual vamos a trabajar corresponde a datos sobre la calidad
del aire: “Calidad_aire_1.txt”
Tenga en cuenta que para la lectura de archivos, RStudio trabaja con la dirección
de ubicación del archivo. Se sugiere crear una carpeta (Estadística) en el escritorio de
su ordenador. En el interior de esta carpeta almacene el archivo “Calidad_aire_1.txt”.
Sobre esta carpeta se establecerá la dirección de trabajo, se almacenará el RScript y
las gráficas generadas.
str(calidad_aire)
Si se desea observar con mejor detalle las variables de la hoja de datos, con la
función View() lo podemos hacer. Esta función devuelve un visor de datos de la hoja de
datos:
View(calidad_aire)
Vamos a concentrarnos en resumir la variable temperatura ‘Temp’ de la hoja de
datos calidad_aire:
range(temperatura)
[1] 56 97
clases=seq(56,97,4.1)
clases
[1] 56.0 60.1 64.2 68.3 72.4 76.5 80.6 84.7 88.8 92.9 97.0
H=hist(temperatura,breaks=clases)
$breaks
[1] 56.0 60.1 64.2 68.3 72.4 76.5 80.6 84.7 88.8 92.9 97.0
breaks corresponde a los limites de intervalo de clases (cada 4.1)
$counts
[1] 8 8 13 10 22 24 29 20 12 7
counts corresponde a las frecuencias de cada clase (F)
$mids
[1] 58.05 62.15 66.25 70.35 74.45 78.55 82.65 86.75 90.85 94.95
mids representa los puntos medios de cada clase.
5. Si es de interés, se puede calcular las frecuencias relativas de la siguiente
manera:
Fr=H$counts /length(temperatura)
Donde ‘length(temperatura)’ es el tamaño de la muestra (n = 153)
Fr
[1] 0.05228758 0.05228758 0.08496732 0.06535948 0.14379085
0.15686275
[7] 0.18954248 0.13071895 0.07843137 0.04575163
Fa= cumsum(H$counts)
Fa
[1] 8 16 29 39 61 85 114 134 146 153
Fa es igual a la suma sucesiva de las frecuencias de cada clase
Fra= cumsum(H$counts/length(temperatura))
Fra
[1] 0.05228758 0.10457516 0.18954248 0.25490196 0.39869281
0.55555556
[7] 0.74509804 0.87581699 0.95424837 1.00000000
Fra es igual a la suma sucesiva de la división de las frecuencias de cada clase divididas para el tamaño de
la muestra.
distrib.frec<-function(datos,n.clases){
datos<-na.omit(datos)
ac=(range(datos)[2]-range(datos)[1])/n.clases
clases=seq(range(datos)[1],range(datos)[2],ac)
H=hist(datos,breaks=clases)
F=H$counts
Fa=cumsum(H$counts)
n=length(datos)
Fr= H$counts/n
Fra= cumsum(H$counts/n)
C=1:n.clases
tabla.frec=cbind(C,F,Fa,Fr,Fra)
print(tabla.frec)
}
distrib.frec(temperatura,10)
La consola devolverá la tabla de frecuencias (Figura 1). Así como también, una
gráfica de la distribución de frecuencias (Figura 1)
La variable Ozone está dada en partes por billón (ppb). Similar al ejemplo de la
temperatura, ahora va a crear una nueva variable ‘ozono’, tenga en cuenta que esta
nueva variable tiene datos incompletos o faltantes, que aparecen como “NA”, antes de
avanzar con los cálculos, deberá omitir los datos faltantes, de la siguiente manera:
escriba las siguientes líneas de código:
ozono<-airquality$Ozone
ozono<-na.omit(ozono)
Gráficas en RStudio
Diagrama Circular
Ejemplo:
wind.cat=cut(calidad_aire$Wind,
breaks=c(0,5,15,Inf),labels=c("baja","media","alta"))
Con la función ‘cut()’ creamos la variable ‘wind.cat’, que es una variable categórica con
valores de ‘baja’, ‘media’, y ‘alta’. La instrucción ‘breaks=c(0,5,15,Inf)’ indica que los datos
numéricos de la variable ‘Wind’ van a se reemplazados por un valor categórico.
Si los datos de ‘Wind’ están entre 0 y 5, serán reemplazados por el valor categórico ‘baja’ en la
nueva variable ‘wind.cat’.
Si los datos de ‘Wind’ están entre 5 y 15 se les asignara, serán reemplazados por el valor
categórico ‘media’ en la nueva variable ‘wind.cat’.
Si los datos de ‘Wind’ están entre 15 e Inf (infinito) se les asignara, serán reemplazados por el
valor categórico ‘baja’ en la nueva variable ‘wind.cat’.
2. Se puede observar la variable creada:
Wind.cat
t=table(wind.cat)
t
wind.cat
baja media alta
10 133 10
wind.cat contiene 153 valores categóricos: 10 valores categóricos ‘baja’, 133 valores categóricos ‘media’, y
10 valores categóricos ‘alta’, almacenados en ‘t’.
colores<-heat.colors(3)
Se especifica el número de colores (3) en relación a los valores categóricos.
p=round(t/sum(t) * 100, 1)
p
wind.cat
baja media alta
6.5 86.9 6.5
En ‘p’ almacenamos el producto de la multiplicación de la división de los valores almacenados en ‘t’
(10,133,10) para la suma de ‘t’ (153), por 100. Y con la función ‘round()’ establecemos un solo numero
decimal.
7. Y generamos el diagrama:
pie(t,col=colores,labels=p,cex=1.5)
Con la función ‘pie()’ generamos la gráfica circular, con las frecuencias almacenadas en ‘t’, los colores
almacenados en ‘colores’, con las etiquetas almacenadas en ‘p’ y con un tamaño de letra de ‘cex=1.5’.
8. Creamos una leyenda para indicar lo que representa cada color:
Diagramas de Barras
Ejemplo:
Histogramas
Ejemplo:
clases = seq(55,100,9)
3. Para crear las clases es necesario tres valores: un valor inicial (55), este valor
puede ser un valor anterior al mínimo (56); un valor final (100), que puede ser un
valor superior al máximo (97) y el tercer valor que será el cociente entre la
diferencia entre el máximo y el mínimo (100-55), dividido para el numero de
clases deseado (45/5=9) y será tomado como el ancho de cada clase.
A manera de observación se puede resaltar que una distribución con mayor número
de clases es más susceptible de identificar sesgos o asimetrías. La pregunta que suele
presentarse en esta situación es ¿Cuál es el número óptimo de clases?, no hay una
regla exacta, sino que la literatura sugiere un número entre 5 y 12 clases, dependiendo
del conjunto de datos.
Diagrama de cajas
Ejemplo:
1. Vamos a representar la velocidad del viento (millas por hora) de la hoja de datos:
calidad_aire$Wind (variable cuantitativa continua), mediante un diagrama de
cajas:
Por ahora nos limitaremos a decir que el valor central de la velocidad está
alrededor de 10millas/hora, y que hay presencia de valores atípicos de la velocidad,
ubicados por arriba del límite superior. Estos atípicos corresponden a valores muy altos
de la velocidad (días con viento muy fuerte). Otro aspecto importante es que los límites
(inferior y superior) no siempre van a coincidir con los valores mínimo y máximo de la
variable. El cálculo de los límites se realiza mediante las siguientes relaciones:
Ejemplo:
2. Creamos una nueva variable ‘mes’ únicamente con los datos de ‘Month’ de la
hoja de datos calidad_aire:
mes<-calidad_aire$Month
mes
[1] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
5 6 6 6 6 6 6
[38] 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7
7 7 7 7 7 7 7
[75] 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8
[112] 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 9 9 9 9 9
[149] 9 9 9 9 9
Diagrama de dispersión
Ejemplo:
Como primer paso creamos las variables de las cuales vamos a analizar su
relación: temperatura, radiación y velocidad:
temperatura<-calidad_aire$Temp
radiacion<-calidad_aire$Solar.R
velocidad<-calidad_aire$Wind
plot(radiacion,temperatura,pch=20,cex=2,cex.axis=1.3,
xlab="Radiación (A)",ylab="Temperatura (oF)",cex.lab=1.5)
Hay una ligera (leve) relación positiva entre la temperatura del ambiente y la
radiación solar, sin embargo si se observa con detalle, la tendencia parece ser
cuadrática (forma parabólica.
Hay una clara diferencia entre los dos diagramas, el segundo (temperatura -
velocidad) muestra una relación más definida que el primero (temperatura - radiación).
Esta fuerza de relación puede ser cuantificada mediante un coeficiente de correlación
(que se revisará en clases posteriores).
Bibliografía: