INTRODUCCIÓN

Los estadísticos de posición (cuantiles) son indicadores que permiten dividir un conjunto de datos en grupos (intervalos) del mismo tamaño.

Las medidas de posición más usuales son los cuartiles, los quintiles y los deciles.

Se llama cuantil \(p\) (o de orden \(p\)) (0<\(p\)<100) a aquel valor que, una vez ordenado un conjunto de datos de manera creciente, divide a la variable en \(n\) subconjuntos, dejando por debajo de él un \(p\) por ciento de los datos y por encima el 100−\(p\) por ciento. Por ejemplo, si \(p\)=50, el percentil de orden 50 corresponde a la mediana.

En R podemos recurrir a su cálculo manual o utilizando varias funciones.

x <- runif(1000,                  # Número de observaciones a ser generadas
           min = 17,              # Límite inferior de la distribución
           max = 89)             # Límite superior de la distribución

✅ **EJEMPLO*:Cálculo del percentil 38:**

  • OPCION 1.
k <- 25                     # Definimos el percentil 
N <- length(x)              # Número total de datos de la variable
round(k*N/100)              # Posción que corresponde al percentil 38.
## [1] 250
sort(x)[round(k*N/100)]     # Valor original que corresponde a esa posición
## [1] 35.58718
  • OPCION 2
length(x)
## [1] 1000
nub.longitud.ordenada <- sort(x)              # Ordenamos los datos

orden25 <- round(25*length(nub.longitud.ordenada)/100)                               
nub.longitud.ordenada[orden25]        # Q25: elemento de una lista ordenada igual o mayor igual que el 25% de los datos
## [1] 35.58718
orden50 <- round(50*length(nub.longitud.ordenada)/100)   
nub.longitud.ordenada[orden50]
## [1] 53.69472
orden75 <- round(75*length(nub.longitud.ordenada)/100)   
nub.longitud.ordenada[orden75]
## [1] 71.5951
  • Cálculo automático (los resultados pueden ser ligeramente diferentes a los obtenidos manualmente)
quantile(x, probs = 0.38)                   # Cálculo del percentil 38
##      38% 
## 44.83636
quantile(x, probs = c(0.25,0.50,0.75))      # Cálculo de los percentiles 25, 50 y 75
##      25%      50%      75% 
## 35.58744 53.73385 71.60758

También es posible obtener el valor que corresponde a un determinado percentil de un conjunto de datos. Este rango proporciona el porcentaje de valores de ese conjunto de datos cuyo valor es menor que ese citado rango.

EJEMPLO:

Creación de una función

percentile.ranked <- function(a.vector, value) {
  numerator <- length(sort(a.vector)[a.vector < value]) 
  denominator <- length(a.vector)
  round(numerator/denominator,3)*100 
}

Por ejemplo, calculamos el percentil de 63.5

value <- 63.5
percentile.ranked(x, value) 
## [1] 64.5

RANGO O INTERVALO INTERCUARTÍLICO

El rango intercuartílico que es la diferencia entre el cuartil 3º y el cuartil 1º. \(Q_{0.75}-Q_{0.25}\). También se llama a veces rango intercuartílico al intervalo intercuartílico: el intervalo \([Q_{0.25},Q_{0.75}]\).

El IQR es un parámetro muy utilizado para la identificación de datos atípicos. Se define como valor atípico leve aquel que dista 1,5 veces de el rango intercuantílico, bien por debajo de Q1 o bien por encima de Q3

q < Q1 – 1,5 · IQR o bien q > Q3 + 1,5 · IQR

y valor atípico extremo aquel que dista 3 veces el rango intercantílico por debajo de Q1 o por encima de Q3

q < Q1 – 3 · IQR o bien q > Q2 + 3 · IQR

El rango intercuartílico se calcula con la función IQR()

IQR(x)
## [1] 36.02014
Valores Quintil
Muy altos Q5
Altos Q4
Normales Q3
Bajos Q2
Muy bajos Q1

EJEMPLO:

Otro problema típico derivado de los valores tan diferentes de precipitación es la definición de sequía y de años anómalos. Ambos fenómenos pueden solventarse mediante el cálculo de los quintiles y del IQR. Un período temporal se considera:

  • muy seco cuando el valor de precipitación total se sitúa entre el 20% de los valores más bajos (Q1),

  • seco cuando se encuentra en el tramo del siguiente 20% de valores (20-40%),

  • normal cuando se sitúa en el tramo del 20% de valores intermedios,

  • húmedo en el siguiente tramo del 20%,

  • muy húmedo en el intervalo del 20% de los valores más elevados de la serie.

De nuevo recurrimos a las precipitaciones anuales de Santiago de Compostela-Labacolla, Bilbao-Sondica y Murcia-Alcantarilla.

precipitaciones <- read.csv2("http://personales.unican.es/rasillad/docencia/G2040/TEMA_5/precipitaciones_mensuales.csv")

# Cambio en el nombre de la variable
names(precipitaciones)[1] <- "AÑOS"

A partir de las series, podemos calcular los quintiles correspondientes a la precipitación de Santiago-Labacolla

quantile(precipitaciones$SANTIAGO, probs = c(0.20,0.40,0.60,0.80))
##     20%     40%     60%     80% 
## 15154.2 16890.4 18640.0 21343.2
min(precipitaciones$SANTIAGO)
## [1] 10205
max(precipitaciones$SANTIAGO)
## [1] 27613

Con la función cut() se aplican esos quintiles a los datos originales de precipitación para clasificar cada uno de los años en una categoría.

clasificacion_años_SANTIAGO <- cut(precipitaciones$SANTIAGO, 
                                   breaks = c(min(precipitaciones$SANTIAGO),
                                              quantile(precipitaciones$SANTIAGO, probs = c(0.20,0.40,0.60,0.80)),
                                              Inf),  
                                   right = FALSE, 
                                   labels = c("Muy seco", "Seco", "Normal", "Lluvioso", "Muy lluvioso"))
clasificacion_años_SANTIAGO
##  [1] Muy lluvioso Normal       Muy lluvioso Muy seco     Normal      
##  [6] Muy lluvioso Seco         Normal       Muy lluvioso Normal      
## [11] Seco         Lluvioso     Muy seco     Muy lluvioso Seco        
## [16] Lluvioso     Muy lluvioso Muy lluvioso Muy lluvioso Seco        
## [21] Normal       Normal       Lluvioso     Normal       Lluvioso    
## [26] Normal       Muy lluvioso Seco         Seco         Muy seco    
## [31] Normal       Muy seco     Lluvioso     Lluvioso     Muy lluvioso
## [36] Normal       Normal       Seco         Lluvioso     Muy lluvioso
## [41] Muy lluvioso Lluvioso     Normal       Muy seco     Seco        
## [46] Lluvioso     Muy seco     Muy seco     Lluvioso     Seco        
## [51] Muy seco     Muy seco     Lluvioso     Lluvioso     Muy seco    
## [56] Seco         Muy seco     Muy seco     Seco         Seco        
## Levels: Muy seco Seco Normal Lluvioso Muy lluvioso
santiago <- cbind(precipitaciones$SANTIAGO, precipitaciones$ZSANTIAGO, clasificacion_años_SANTIAGO)
santiago
##             clasificacion_años_SANTIAGO
##  [1,] 21888                           5
##  [2,] 17176                           3
##  [3,] 23104                           5
##  [4,] 14494                           1
##  [5,] 17422                           3
##  [6,] 26535                           5
##  [7,] 16417                           2
##  [8,] 18578                           3
##  [9,] 22273                           5
## [10,] 16991                           3
## [11,] 16846                           2
## [12,] 20281                           4
## [13,] 15087                           1
## [14,] 21356                           5
## [15,] 16278                           2
## [16,] 19999                           4
## [17,] 27613                           5
## [18,] 23210                           5
## [19,] 23952                           5
## [20,] 16388                           2
## [21,] 17496                           3
## [22,] 16963                           3
## [23,] 18873                           4
## [24,] 17834                           3
## [25,] 20236                           4
## [26,] 17724                           3
## [27,] 22713                           5
## [28,] 16622                           2
## [29,] 16677                           2
## [30,] 13982                           1
## [31,] 16920                           3
## [32,] 14586                           1
## [33,] 18691                           4
## [34,] 20525                           4
## [35,] 21862                           5
## [36,] 18161                           3
## [37,] 18606                           3
## [38,] 15542                           2
## [39,] 19135                           4
## [40,] 23193                           5
## [41,] 22085                           5
## [42,] 19649                           4
## [43,] 17923                           3
## [44,] 13521                           1
## [45,] 15171                           2
## [46,] 21340                           4
## [47,] 10927                           1
## [48,] 14619                           1
## [49,] 18728                           4
## [50,] 15850                           2
## [51,] 10205                           1
## [52,] 11846                           1
## [53,] 21037                           4
## [54,] 19333                           4
## [55,] 12148                           1
## [56,] 15298                           2
## [57,] 10519                           1
## [58,] 13761                           1
## [59,] 16225                           2
## [60,] 15240                           2

Para identificar si hay años extremos, se puede crear una nueva variable, denominada atipicos recodificando aquellos valores que se cumplan las condiciones señaladas

Q1_SANTIAGO <- quantile(precipitaciones$SANTIAGO, probs = 0.25)
Q3_SANTIAGO <- quantile(precipitaciones$SANTIAGO, probs = 0.75)
IQR_SANTIAGO <- IQR(precipitaciones$SANTIAGO)
atipico_superior_SANTIAGO <- Q3_SANTIAGO + IQR_SANTIAGO * 1.5
atipico_inferior_SANTIAGO <- Q1_SANTIAGO - 1.5 * IQR_SANTIAGO 

Finalmente, sólo quedar recodificar los diferentes años

precipitaciones$atipicos_SANTIAGO[precipitaciones$SANTIAGO <= atipico_inferior_SANTIAGO | precipitaciones$SANTIAGO >= atipico_superior_SANTIAGO] <- 1
precipitaciones$atipicos_SANTIAGO[precipitaciones$SANTIAGO > atipico_inferior_SANTIAGO & precipitaciones$SANTIAGO < atipico_superior_SANTIAGO] <- 0

📝 ACTIVIDAD DE EVALUACIÓN CONTINUA: :

ACTIVIDAD 1. A partir de los datos de precipitación de las estaciones de Bilbao-Sondica y Murcia-Alcantarilla.

  • Calcula los quintiles correspondientes a cada estación, y compáralos con los de Santiago-Labacolloa.
quintiles_santiago <- quantile(precipitaciones$SANTIAGO, probs = c(0.20,0.40,0.60,0.80))
quintiles_bilbao <- quantile(precipitaciones$BILBAO, probs = c(0.20,0.40,0.60,0.80))
quintiles_murcia <- quantile(precipitaciones$MURCIA, probs = c(0.20,0.40,0.60,0.80))
tabla_quintiles <- cbind(quintiles_santiago, quintiles_bilbao, quintiles_murcia)
  • Clasifica las series de precipitaciones anuales en años muy secos, secos, normales, lluviosos o muy lluviosos
clasificacion_años_BILBAO <- cut(precipitaciones$BILBAO, 
                                   breaks = c(min(precipitaciones$BILBAO),
                                              quantile(precipitaciones$BILBAO, probs = c(0.20,0.40,0.60,0.80)),
                                              Inf),  
                                   right = FALSE, 
                                  labels = c("Muy seco", "Seco", "Normal", "Lluvioso", "Muy lluvioso"))
clasificacion_años_BILBAO

bilbao <- cbind(precipitaciones$BILBAO, precipitaciones$ZBILBAO, clasificacion_años_BILBAO)
bilbao
clasificacion_años_MURCIA <- cut(precipitaciones$MURCIA, 
                                   breaks = c(min(precipitaciones$MURCIA),
                                              quantile(precipitaciones$MURCIA, probs = c(0.20,0.40,0.60,0.80)),
                                              Inf),  
                                   right = FALSE, 
                                   labels = c("Muy seco", "Seco", "Normal", "Lluvioso", "Muy lluvioso"))
clasificacion_años_MURCIA

murcia <- cbind(precipitaciones$BILBAO, precipitaciones$ZMURCIA, clasificacion_años_MURCIA)
murcia

ACTIVIDAD 2. El fichero cuencas_precipitacion.csv contiene los datos anuales de precipitación en cada una de las cuencias hidrográficas de la Península Ibérica. A partir de esos datos:

  • Calcula los quintiles correspondientes a cada cuenca, y crea un tabla con todos ellos.
quintiles_santiago <- quantile(precipitaciones$SANTIAGO, probs = c(0.20,0.40,0.60,0.80))
tabla_quintiles <- cbind(quintiles_santiago, quintiles_bilbao, quintiles_murcia)
  • Crea un dataframe con la serie de años clasificados en muy secos, secos, normales, lluvisoso y muy lluviosos. ¿Existe algún tipo de comportamiento común entre alguna de las cuencas?

5 números de Tukey

Consiste en cinco números que resumen los estadísticos más importantes para resumir un conjunto de datos, informando sobre su amplitud, su dispersión y el promedio. Además, el resumen de estos cinco números también se puede representar de forma gráfica, lo cual facilita la visualización de estas características de un conjunto de datos,

Los cinco números son:

fivenum(x)
## [1] 17.02461 35.58735 53.73385 71.62005 88.94982

La función summary() proporciona además la mediana.

summary(x)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   17.02   35.59   53.73   53.52   71.61   88.95
rm(list=ls())