4. Estadísticas descriptivas y tablas de frecuencias
Ya hemos visto que la función summary() permite obtener algunas estadísticas descriptivas de una variable, o de todas las variables en una base de datos. Aquí voy a mostrarles cómo obtener otras estadísticas comunes y tablas simples.
Entre las funciones disponibles en R para análisis descriptivos se encuentran las siguientes:
Estadística | Función |
Media | mean( ) |
Mediana | median( ) |
Desviación estándar | sd( ) |
Varianza | var( ) |
Correlación | cor( , ) |
Covarianza | cov( , ) |
Tablas | table( ) o table( , ) |
El siguiente ejemplo ilustra cómo utilizar estas funciones haciendo uso de variables en la base de datos mtcars. La lista de comandos a ejecutar es:
- data(mtcars)
- attach(mtcars)
- mean(mpg)
- median(mpg)
- sd(mpg)
- cor(mpg,hp)
El resultado presentado en la consola será:
> mean(mpg)
[1] 20.09062
> median(mpg)
[1] 19.2
> sd(mpg)
[1] 6.026948
> cor(mpg,hp)
[1] -0.7761684
Para preparar una tabla de frecuencias sencilla, puede utilizar la función table(). En el siguiente ejemplo prepararemos una tabla de frecuencias para el número de cilindros de los automóviles:
> table(cyl)
cyl
4 6 8
11 7 14
La primera línea de la tabla contiene los valores de la variable ‘cyl’, y la segunda presenta las frecuencias. Es decir, hay 11 vehiculos de 4 cilindros, 7 de 6 cilindros y 14 de 8 cilindros. Si desea proporciones en vez de frecuencias puede aplicarle a la función anterior la función proportions( ):
> proportions(table(cyl))
cyl
4 6 8
0.34375 0.21875 0.43750
Recuerde que puede hacer uso de la función round() para controlar el número de dígitos decimales en el resultado:
> round(proportions(table(cyl)),2)
cyl
4 6 8
0.34 0.22 0.44
La función table() también sirve para preparar tablas de contingencia: solo basta con incluir la lista de variables dentro de los paréntesis, separadas por una coma:
> table(cyl,gear)
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
Puede aplicar la función proportions() aquí también para obtener proporciones en vez de frecuencias:
> proportions(table(cyl,gear))
gear
cyl 3 4 5
4 0.03125 0.25000 0.06250
6 0.06250 0.12500 0.03125
8 0.37500 0.00000 0.06250
Finalmente presentaremos la tabla a dos sitios decimales:
> round(proportions(table(cyl,gear),2)
gear
cyl 3 4 5
4 0.03 0.25 0.06
6 0.06 0.12 0.03
8 0.38 0.00 0.06