Objetivo

Fudamento Teórico

Concepto

Muchos de las situaciones de las ciencias en términos de probabilidad pueden resolverse con la distribución normal y estandarizada Z, sin embargo, exiten situaciones especiales en donde resulta necesario conocer y aplicar otras distribuciones como lo es la distribución exponencial. [@devore2016][@devore2016]

De cuerdo Anderson (2018) la distribución de probabilidad exponencial se aplica a variables como las llegadas de automóviles a un centro de lavado de autos, los tiempos requeridos para cargar un camión, las distancias entre dos averías en una carretera, entre otras situaciones[@anderson_estadistica_2008].

Otros contextos para tratar con distribución exponencial ptiene que ver con la cantidad de tiempo que transcurre hasta que se produce algún evento específico. Por ejemplo, la cantidad de tiempo (que comienza ahora) hasta que se produzca un terremoto tiene una distribución exponencial. Otros ejemplos son la duración, en minutos, de las llamadas telefónicas de larga distancia comerciales y la cantidad de tiempo, en meses, que dura la batería de un automóvil. También se puede demostrar que el valor del cambio que se tiene en el bolsillo o en el monedero sigue una distribución exponencial aproximadamente. [@openstax] [@openstax][@openstax]

Por otra parte la representación visual de la densidad de una distribución exponencial significa que hay valores de densidad altos a valores de \(x\) pequeños y viceversa, hay valores de densidad bajo a grandes valores de \(x\).

La distribución exponencial es una distribución de probabilidad continua que se utiliza para modelar el tiempo o espacio entre eventos en un proceso y tiene relación directa con la distribución discreta de Poisson.

La distribución exponencial es la distribución de probabilidad del tiempo o espacio entre dos eventos en un proceso de Poisson, donde los eventos ocurren de manera continua e independiente a una tasa constante \(\lambda\) llamado lambda.

\(\lambda\) lambda representa una tasa constante (valor constante) sobre la ocurrencia de eventos de manera continua e independiente.

En R existen las funciones estadísticas para tratar con distribución expnencial que se obervarán en este caso:

  • dexp() para densidad,

  • pexp() para probabilidad acumulada

  • qexp para devolver valores de x de acuerdo a probabilidades acumuladas. Es la inversa de pexp()

  • rexp() para generación de valores aleatorios de x.

Función de Densidad

\[ f(x) = \lambda \cdot e^{-\lambda\cdot x} \]

  • La función de densidad en R se obtiene con dexp()

  • Se requiere el valor de lambda \(\lambda\) taza constante y continua y/o valor de media a la inversa. Si se tiene la media de la distribución, entonces \(\lambda = 1/\mu\) que es la inversa de la media.

  • Se requiere el valor de \(e =2.718282\)

  • Se requiere el valor de la variable aleatoria continua \(x\)

Función acumulada

\[ F(x) = P(X\le x) = 1 - e^{-\lambda\cdot x} \text{ si x } \ge 0 \]

La función acumulada de probabilidad en R se obtiene con pexp()

Valor esperado

\[ \frac{1}{\lambda} = \mu \]

Varianza y desviación estándar

\[ Varianza = \sigma^{2}= \frac{1}{\lambda^{2}} \]

\[ Desv.Std = \sigma = \sqrt{\sigma^{2}} \]

Descripción

Desarrollo

Cargar librerías

{r message=FALSE, warning=FALSE} library(dplyr) # Para filtros entre otros library(mosaic) # Para gráficos library(ggplot2) # Para gráficos library(cowplot) # Imágenes en el mismo renglón library(visualize) # Para gráficos options(scipen=999) # Notación normal

Cargar funciones precodificadas

{r message=FALSE, warning=FALSE} source("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/2023/funciones/funciones%20para%20disribuciones%20de%20probabilidad.R")

Establecer semilla para valores aleatorios

set.seed(2023)

Visualización de densidad de una distribución Exponencial

Inicializar variables

Se crea una secuencia de valores de x desde 0 hasta 10 de saltos 0.2 en .2 para generar 50 valores continuos.

La constante lambda vale 1 \(1/\mu = 1/1=1\) que representa el parámetro de tasa (inversa de la media) en la distribución exponencial de acuerdo a la fórmula de densidad y de la probabilidad acumulada de la distribución exponencial.

La densidad a un valor de x

Calcular la densidad de acuerdo a la fórmula de densidad de la distribución exponencial: \(densidad = f(x) = \lambda \cdot e^{-\lambda\cdot x}\) y usando la función dexp() respectivamente. Los valores de densidad deben salir igual por cualquiera de las dos alternativas.

media = 1
lambda = 1/media
e = exp(1)
x=0.5

# Densidad conforme a la fórmula
densidad = lambda * e ^(-lambda*x)
densidad

# Densidad usando dexp()
dexp(x = x, rate = lambda)

La probabilidad acumulada de un valor de x

Ahora calculando probabilidades acumuladas con la fórmula \(Prob. Acumulada = F(x) = 1 - e^{-\lambda\cdot x}\) y con la función pexp(). Deben salir los valores calculados exactamente iguales. Por defecto la probabilidad acumulada es cola a la izquierda, si se cola a la derecha hay que restarle la probabilidad a 1 que representa el 100%.

print("Por medio de la fórmula")
prob.acum = 1 - e^(-lambda * x)
prob.acum

print("Usando la función pexp()")
pexp(q = x, rate = lambda)


Por defecto la probabilidad acumulada es cola a la izquierda, si se probabilidad mayor que x, significa cola a la derecha, por lo que hay que restarle la probabilidad a 1 que representa el 100%. Se utiliza el argumento lower.tail = FALSE en la función pexp() para indicarle que es cola a la derecha o que la probabilidad es mayor o igual al valor de \(x\) especificado.

# Probabilidad a la derecha F(x>0.5)
1 - prob.acum

# Probabilidad cola a la derecha con pexp()
pexp(q = x, rate = lambda, lower.tail = FALSE)

Ahora construyendo una serie de densidades y probabilidades acumuladas a partir de una secuencia de 0 a 10 con saltos de 0.2 en 0.2.

# media = 1
# lambda = 1/media
x = seq(from = 0, to= 10, by=0.2)

# Densidad
print("Densidad")
densidad <- round(dexp(x = x, rate = lambda), 6)
densidad

# Acumulada
print("Probabilidad Acumulada")
acumulada <- round(pexp(q = x, rate =  lambda), 6)
acumulada




Presentar los datos

datos <- data.frame(x = x, f.x = densidad, F.x = acumulada)
datos

Visualizar los datos

Usando ggplot

ggplot(data = datos, aes(x = x, y = f.x)) + 
  geom_point(color = 'blue') + 
  geom_line(color = 'red')
  

Aquí otra forma de representar curvas de densidad de una distribución exponencial [@rubio][@rubio]

curve(dexp(x, rate = 1.0), from=0, to=10, col='blue')
curve(dexp(x, rate = 1.5), from=0, to=10, col='red', add=TRUE)
curve(dexp(x, rate = 2.0), from=0, to=10, col='purple', add=TRUE)

legend("topright", 
       legend=c("rate=1.0", "rate=1.5", "rate=2.0"),
       col = c("blue", "red", "purple"), 
       lty=1, cex=1.2)

También se puede usar visualize() y plotDist() para visualizar gráficas de distribuciones en este caso de la distribución exponencial, esta se muestra más adelante su uso.

Cálculo de probabilidades

Siguiendo con el ejercicio inicial de lambda = 1 con valores desde 0 hasta 10 de 0.2 en 0.2.

¿cuál es la probabilidad a la izquierda cuando x sea 0.5 o menor?

\(f(x\le0.5)\)

Entonces :

prob = round(pexp(q = 0.5, rate = lambda), 6)
paste("La probabilida área bajo la curva es ...", prob, " aproximadamente " , prob * 100, "%")

Visualización de área bajo la curva

Usando la función visualize.exp() de la librería visualize

visualize.exp(stat = 0.5, theta = lambda, section = "lower")

Visualizando con plotDist() de la librería mosaic

El área de color rosa representa aproximadamente el 39% del total del área bajo la curva.

plotDist(dist = "exp", media = lambda, type="h",xlab ="Valores de la variable continua X", ylab = "Densidad" , groups = x <= 0.5, xlim = c(0:5), ylim=c(0,1), main=paste("F(x ≤ 0.5):", prob),  sub= paste('Lambda =', lambda))

Usando la función pre codificada f_exponencial_all() previamente cargada. La función recibe tres argumento en los tres parámetros que deben recibir: El valor de la media, el intervalo que puede ser empezar en 0 y terminar en un valor mayor que 0 y el tipo qe puede ser 1 cola a la izquierda, 2 cola a la derecha y 3 intervalo intermedio con valores a y b.

Esta primera opción es cola a la izquierda con valor tipo == 1

resultado <- f_exponencial_all(media = media, intervalo = c(0, 0.5), tipo = 1)
resultado$g_curva

¿cuál es la probabilidad del intervalo entre 0.5 y 2?

\(P(0.5 \le X \le 2)\)

prob = round(pexp(q = 2, rate = lambda) - pexp(q = 0.5, rate = lambda), 6)
paste("La probabilidad del área bajo la curva es ...", prob, " aproximadamente " , prob * 100, "%")

Visualización de área bajo la curva

Nuevamente usando la función visualize.exp() de la librería visualize

visualize.exp(stat = c(0.5, 2), theta = lambda, section = "bounded")

Nuevamente usando la función distPlot() de la librería mosaic

plotDist(dist = "exp", media = lambda, type="h",xlab ="Valores de la variable continua X", ylab = "Densidad" , groups = x >= 0.5 & x<= 2, xlim = c(0:5), ylim=c(0,1), main=paste("F(0.5 ≤ x ≤ 2):", prob),  sub= paste('Lambda =', lambda))

Esta segunda opción es un intervalo con valor tipo == 3

resultado <- f_exponencial_all(media = media, intervalo = c(0.5, 2), tipo = 3)
resultado$g_curva

¿cuál es la probabilidad a partir de 2 hacia la derecha?

\(P(X \ge 2)\)

prob = round(pexp(q = 2, rate = lambda, lower.tail = FALSE), 6)
paste("La probabilida área bajo la curva es ...", prob, " aproximadamente " , prob * 100, "%")

Visualización de área bajo la curva

Nuevamente usando la función visualize.exp() de la librería visualize

visualize.exp(stat = 2, theta = lambda, section = "upper")

Ahora usando plotDist()

plotDist(dist = "exp", media = lambda, type="h",xlab ="Valores de la variable continua X", ylab = "Densidad" , groups = x >= 2, xlim = c(0:5), ylim=c(0,1), main=paste("F(x ≥ 2):", prob),  sub= paste('Lambda =', lambda))

Esta tercera opción usando la función f_exponencial_all() es cola a la derecha, es decir, tipo == 2

resultado <- f_exponencial_all(media = media, intervalo = c(0, 2), tipo = 2)
resultado$g_curva

Valor esperado

De acuerdo a la fórmula arriba presentada:

VE = 1 / lambda
paste ("El valor esperado es ...", VE)

Varianza y desviación

De acuerdo a la fórmula arriba presentada:

varianza = round(1 / lambda^2, 6)
desv.std = round(sqrt(varianza), 6)

paste("Varianza = ", varianza, "Desv.Std = ", desv.std)

Valores de x a partir de q

¿Cuál es el valor de x a una probabilidad acumulada de 39.2469%?

x = qexp(p = 0.393469, rate = lambda)
paste("Muy cercano al valor de x = ", x)

Valores aleatorios

aleatorios = rexp(n = 10, rate = lambda)
aleatorios

Desarrollo

Se presentan varios ejercicios extraídos de la literatura

El tiempo de revisión del motor

Ejercicio extraído de: [@probafácil]. El tiempo de revisión del motor de un avión sigue una distribución exponencial con media 22 minutos. Encontrar y resolver algunas probabilidades:

Probabilidad de \(F(X\le 10)\)

Encontrar la probabilidad de que el tiempo de revisión sea menor o igual a 10 minutos. \(F(X\le 10)\)

media <- 22
lambda <- 1/media
x <- 10
prob = round(pexp(q = x, rate = lambda), 6)
paste("La probabilidad es ...", prob, " aproximadamente " , prob * 100, "%")

Visualizar probabilidad

Se presenta la gráfica con la función visualize()

visualize.exp(stat = x, theta = lambda, section = "lower")

Se visualiza con la función plotDist() de librería mosaic.

plotDist(dist = "exp", media = lambda, type="h",xlab ="Valores de la variable continua X", ylab = "Densidad" , groups = x<=10, xlim = c(0:22), ylim=c(0,1), main=paste("F(x<=10):", prob),  sub= paste('Lambda =:', lambda))

Ahora se presenta la misma gráfica pero usando la función f_exponencial_all(), cola a la izquierda.

Se envía parámetro tipo == 1 es cola a la derecha

resultado <- f_exponencial_all(media = media, intervalo = c(0, 10), tipo = 1)
resultado$g_curva

Probabilidad de \(F(X\ge 10)\)

Encontrar la probabilidad de que el tiempo de revisión sea mayor o igual a 10 minutos. \(F(X\ge 10)\)

Se envía parámetro tipo == 2 es cola ala derecha

resultado <- f_exponencial_all(media = media, intervalo = c(10, 10), tipo = 2)
resultado$g_curva

Probabilidad de \(F(5 \le X\ge 10)\)

Encontrar la probabilidad de que el tiempo de revisión sea mayor o igual 5 y menor o igual a 10 minutos. \(F(X\le 10)\)

Se envía parámetro tipo == 3 es ambas colas

resultado <- f_exponencial_all(media = media, intervalo = c(5, 10), tipo = 3)
resultado$g_curva

Valor esperado VE y desviación estándar

El valor esperado

resultado$VE

Varianza y desviación estándar

resultado$varianza; resultado$desv.std

Se espera que haya un tiempo esperado medio de 22 minutos con una variación en igual medida de acuerdo a la desviación estándar de 22.

Bibliografía

Norton, Matthew; Khokhlov, Valentyn; Uryasev, Stan (2019). «Calculating CVaR and bPOE for common probability distributions with application to portfolio optimization and density estimation». Annals of Operations Research (Springer) 299 (1- 2): 1281-1315. doi:10. 1007/s10479-019-03373-1 |doi= incorrecto (ayuda). Consultado el 27 de febrero de 2023. Park, Sung Y.; Bera, Anil K. (2009). «Modelo de heteroscedasticidad condicional autorregresiva de entropía máxima». Journal of Econometrics (Elsevier) 150 (2): 219-230. Archivado desde el original el 7 de marzo de 2016. Consultado el 2 de junio de 2011. Michael, Lugo. «The expectation of the maximum of exponentials». Archivado desde el original el 20 de diciembre de 2016. Consultado el 13 de diciembre de 2016. Cumfreq, a free computer program for cumulative frequency analysis and probability distribution fitting. [1] Ritzema (ed.), H.P. (1994). Frequency and Regression Analysis. Chapter 6 in: Drainage Principles and Applications, Publication 16, International Institute for Land Reclamation and Improvement (ILRI), Wageningen, The Netherlands. pp. 175-224. ISBN 90-70754-33-9.

Easy fit Archivado el 23 de febrero de 2018 en Wayback Machine., “data analysis & simulation” MathWorks Benelux (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). ModelRisk, “risk modelling software” Ricci distributions, fitting distrubutions with R , Vito Ricci, 2005 Risksolver, automatically fit distributions and parameters to samples StatSoft distribution fitting Archivado el 30 de agosto de 2012 en Wayback Machine. CumFreq [2] , libre sin costo, incluye intervalos de confianza a base de la distribución binomial.