Estadísticas en R
Prof. Cristian Bayes
1 Medidas Estadísticas en R
En esta sección se presenta una lista de funciones que calculan las principales medidas
estadísticas vistas en el curso.
Si se indica que la función está en la librería base, no es necesario instalar ninguna
librería para usarla. En caso contrario hay que instalar la librería que se indique.
Por ejemplo, si se requiere la librería DescTools se tendría que instalar y luego
cargar para usar las funciones que esta contiene.
# Instalar librería
[Link]("DescTools")
# Cargar librería
library(DescTools)
Todas la funciones presentadas en esta sección tienen como primer argumento el
vector de datos a los cuáles se va a calcular la estadística.
Asimismo todas las funciones se le puede incluir el argumento [Link]=TRUE para
que se realice el cálculo de la estadística sin considerar los valores perdidos,
denotados por NA en R.
1.1 Medidas de tendencia central
Función Librería Estadística
mean base media
median base mediana
Ejemplo en R:
# Media
mean(mtcars$mpg)
## [1] 20.09062
# Mediana
median(mtcars$mpg)
## [1] 19.2
1.2 Medidas de dispersión
Función Librería Estadística
var base varianza
sd base desviación estándar
range base rango
IQR base rango intercuartil
CoefVar DescTools coeficiente de variación
Ejemplo en R:
# Varianza
var(mtcars$mpg)
## [1] 36.3241
# Desviación estándar
sd(mtcars$mpg)
## [1] 6.026948
# Rango
diff(range(mtcars$mpg))
## [1] 23.5
# Rango intercuartil
IQR(mtcars$mpg)
## [1] 7.375
# Coeficiente de variación
CoefVar(mtcars$mpg)
## [1] 0.2999881
1.3 Medidas de forma
Función Librería Estadística
Skew DescTools coeficiente de asimetría de Fisher
Kurt DescTools coeficiente de curtosis de Fisher
Ejemplo en R:
library(DescTools)
# Coeficiente de asimetría de Fisher
Skew(mtcars$mpg)
## [1] 0.610655
# Coeficiente de curtosis de Fisher
Kurt(mtcars$mpg)
## [1] -0.372766
1.4 Cuantiles
La función quantile(x,probs), con argumentos x un vector de datos y probs el nivel del
cuantil a ser calculado.
Ejemplo en R:
# Cuantiles 0.10, 0.25, 0.50, 0.75, 0.90
quantile(mtcars$mpg,probs = c(0.10,0.25,0.50,0.75,0.90))
## 10% 25% 50% 75% 90%
## 14.340 15.425 19.200 22.800 30.090
1.5 Función summary
La función summary calcula el primer cuartil (1st Qu.), mediana (Median), tercer cuartil
(3rd Qu.), además de la media (Mean) y los valores máximo (Max.) y mínimo (Min.).
Ejemplo en R:
summary(mtcars$mpg)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.40 15.43 19.20 20.09 22.80 33.90
2 Medidas Estadísticas usando otras
librerías
Así como la función summary calcula algunas estadísticas en forma conjunta, también
existen otras funciones que permiten realizar el cálculo de las estadísticas presentadas:
2.1 Librería DescTools
La función Desc permite el calculo de todas las estadísticas revisadas anteriormente. Se
sugiere usar los siguientes argumentos:
plotit = FALSE indica que realice solo el calculo de las estadísticas y no un
gráfico.
[Link]=NA indica que no realice el cálculo de un intervalo de confianza para
la media, tema aún no visto en el curso.
maxrows = 0 indica que no imprima la tabla de frecuencias.
Ejemplo en R:
Desc(mtcars$mpg,plotit = FALSE, [Link]=NA,maxrows = 0)
## [...]
## mtcars$mpg (numeric)
##
## length n NAs unique 0s mean meanCI'
## 32 32 0 25 0 20.091 <NA>
## 100.0% 0.0% 0.0% <NA>
##
## .05 .10 .25 median .75 .90 .95
## 11.995 14.340 15.425 19.200 22.800 30.090 31.300
##
## range sd vcoef mad IQR skew kurt
## 23.500 6.027 0.300 5.411 7.375 0.611 -0.373
##
## lowest : 10.4 (2), 13.3, 14.3, 14.7, 15.0
## highest: 26.0, 27.3, 30.4 (2), 32.4, 33.9
## [...]
2.2 Librería EnvStats
La función summaryFull permite el calculo de todas las estadísticas revisadas
anteriormente.
Además esta función permite escoger que estadísticas se deben calcular.
En el cálculo de los coeficientes de asimetría y curtosis usa una definición ligeramente
diferente a la presentada en el curso. Si el número de datos es grande las diferencias son
mínimas.
Ejemplo en R:
summaryFull(mtcars$mpg,
stats=c("n","mean", "median",
"sd","iqr","range","cv",
"skew","kurtosis"))
## mtcars$mpg
## N 32.00000
## Mean 20.09000
## Median 19.20000
## Skew 0.67240
## Kurtosis -0.02201
## Range 23.50000
## Standard Deviation 6.02700
## Interquartile Range 7.38000
## Coefficient of Variation 0.30000
## [...]
3 Medidas estadística por grupos de
otra variable
3.1 Librería base
Se pueden calcular estadísticas por grupos formados por otra variable:
1. Calculando la estadística a cada subconjunto de datos.
2. Usando funciones, que permiten aplicar una función a una variable por los grupos
que forma otra variable.
o tapply(vector, index, function)
o tapply(vector, index, function)
donde
o vector: variable con la que se va a calcular las estadísticas.
o index: variable con los grupos.
o function: función a ser aplicada
Ejemplo en R:
# Método 1
mean(mtcars$mpg[mtcars$am==0])
## [1] 17.14737
mean(mtcars$mpg[mtcars$am==1])
## [1] 24.39231
# Método 2
tapply(mtcars$mpg,mtcars$am,mean)
## 0 1
## 17.14737 24.39231
by(mtcars$mpg,mtcars$am,mean)
## mtcars$am: 0
## [1] 17.14737
## ------------------------------------------------------------
## mtcars$am: 1
## [1] 24.39231
3.2 Librería DescTools
La función Desc permite el cálculo de las estadísticas agrupadas por otra variable.
El argumento verbose indica que estadísticas se van a calcular,
verbose=2 calcula media, mediana, desviación estándar y rango intercuartil
verbose=3 calcula todas las estadísticas disponibles.
Ejemplo en R:
Desc(mpg~am,data=mtcars,verbose=3,
plotit = FALSE, [Link]=NA,maxrows = 0)
## [...]
## 0 1
## mean 17.147 24.392
## median 17.300 22.800
## sd 3.834 6.167
## IQR 4.250 9.400
## n 19 13
## np 59.375% 40.625%
## NAs 0 0
## 0s 0 0
## min 10.400 15.000
## max 24.400 33.900
## Q1 14.950 21.000
## Q3 19.200 30.400
## mad 3.113 6.672
## skew 0.014 0.053
## kurt -0.803 -1.455
##
## [...]
3.3 Librería EnvStats
La función summaryFull permite el cálculo de las estadísticas agrupadas por otra variable.
En el cálculo de los coeficientes de asimetría y curtosis usa una definición ligeramente
diferente a la presentada en el curso. Si el número de datos es grande las diferencias son
mínimas.
Ejemplo en R:
summaryFull(mpg~am,data=mtcars,
stats=c("n","mean", "median",
"sd","iqr","range","cv",
"skew","kurtosis"))
## 0 1
## N 19.00000 13.00000
## Mean 17.15000 24.39000
## Median 17.30000 22.80000
## Skew 0.01646 0.06729
## Kurtosis -0.33390 -1.15900
## Range 14.00000 18.90000
## Standard Deviation 3.83400 6.16700
## Interquartile Range 4.25000 9.40000
## Coefficient of Variation 0.22360 0.25280
## [...]
4 Estadísticas con datos agrupados
Consideremos que solo tenemos la tabla de frecuencias de una variable aletoria continua.
Por ejemplo,
level freq perc cumfreq
[10,15] 6 0.1875 6
(15,20] 12 0.3750 18
(20,25] 8 0.2500 26
(25,30] 2 0.0625 28
(30,35] 4 0.1250 32
Entonces, para el cálculo de las estadísticas se considera dos casos:
Estadística basada en todos los datos: se calcula considerando que la marca de
clase se repite tantas veces como la frecuencia.
Estadística basada en cuantiles: se interpola en forma lineal el valor del cuantil.
4.1 Estadística basada en todos los datos
Media.
Varianza y Desviación estándar.
Coeficiente de variación.
Coeficiente de asimetría de Fisher.
Coeficiente de curtosis de Fisher.
En R se construye una nueva variable que repita la marca de clase tantas veces como la
frecuencia y se calculan las estadísticas a partir de esta.
Ejemplo en R:
# Marca de clase
x.j = c(12.5,17.5,22.5,27.5,32.5)
# Frecuencia absoluta
n.j = c(6,12,8,2,4)
# Nueva variable que repite x.j, n.j veces.
x = rep(x.j,times=n.j)
# Media
mean(x)
## [1] 20.3125
# Desviación estándar
sd(x)
## [1] 6.213604
# Coeficiente de variación
CoefVar(x)
## [1] 0.3059005
# Coeficiente de asimetría de Fisher
Skew(x)
## [1] 0.6434255
# Coeficiente de curtosis de Fisher
Kurt(x)
## [1] -0.5498423
4.2 Estadística basada en cuantiles
Cuantil.
Mediana.
Rango intercuartil.
En R se interpola linealmente entre los limites de los intervalos y las frecuencias
acumuladas para encontrar los cuantiles.
Ejemplo en R:
# Límites de los intervalos
L.j = c(10,15,20,25,30,35)
# Frecuencias relativas acumuladas
F.j = c(0,0.188,0.562,0.812,0.875,1)
# Cuantil 0.75
approx(F.j,L.j,0.75)
## $x
## [1] 0.75
##
## $y
## [1] 23.76
# Porcentaje de datos menor o igual a 28
approx(L.j,F.j,28)
## $x
## [1] 28
##
## $y
## [1] 0.8498
# Mediana
approx(F.j,L.j,0.5)
## $x
## [1] 0.5
##
## $y
## [1] 19.17112
# Rango intercuartil
approx(F.j,L.j,0.75)$y-approx(F.j,L.j,0.25)$y
## [1] 7.931123