Funciones de densidad y probabilidades 1/360

Rubén Pizarro Gurrola

f(x)

\[ f(x) = \frac{1}{360} \]

Objetivo

Generar gráficas de densidad y encontrar la probabilidad de una función de densidad para un intervalo determinado [a, b], calcular el valor esperado, la varianza y desviación estándar de la función de densidad.

Descripción

Fórmula de densidad

\[ f(x) = \frac{1}{360} \]

Condiciones de esta función de densidad

X debe estar entre un intervalo de 0 y 360 para generar una probabilidad; para todo valor diferente de este intervalo la probabilidad es cero.

\[ P(0 \le x \le 360) \]

Cargar librerías necesarias

library(ggplot2)

La función programada

f_dens <- function(x) {
  ifelse(0 <= x & x <= 360, 1/360, 0) }

Probar la función de densidad

f_dens(x = -45)
[1] 0
f_dens(x = -30)
[1] 0
f_dens(x = 0)
[1] 0.002777778
f_dens(x = 90)
[1] 0.002777778
f_dens(x= 180)
[1] 0.002777778
f_dens(x= 270)
[1] 0.002777778
f_dens(x= 360)
[1] 0.002777778
f_dens(x= 400)
[1] 0

Probar con varios valores

x <- c(-45, -30, 0, 90, 180, 270, 360, 400)
x
[1] -45 -30   0  90 180 270 360 400
y <- f_dens(x)
y
[1] 0.000000000 0.000000000 0.002777778 0.002777778 0.002777778 0.002777778
[7] 0.002777778 0.000000000

Construir un df con x’s e y’s

datos <- data.frame(x, y)
datos
    x           y
1 -45 0.000000000
2 -30 0.000000000
3   0 0.002777778
4  90 0.002777778
5 180 0.002777778
6 270 0.002777778
7 360 0.002777778
8 400 0.000000000

Gráfica de puntos

g <- ggplot(data = datos) +
  geom_point(aes(x = x, y = y), color = 'red')
g

Unir los puntos con linea (Polígono)

g <- g + geom_line(aes(x = x, y = y), color='blue')
g

Área de acuerdo a la f(x)

Valores de cuando el valor de la función está en el rango [0 , 360]

min_x <- 0
max_x <- 360
datos <- cbind(datos, f = ifelse(datos$x >=min_x & datos$x <= max_x, 'f(x)', '0'))
datos$f <- as.factor(datos$f)
datos
    x           y    f
1 -45 0.000000000    0
2 -30 0.000000000    0
3   0 0.002777778 f(x)
4  90 0.002777778 f(x)
5 180 0.002777778 f(x)
6 270 0.002777778 f(x)
7 360 0.002777778 f(x)
8 400 0.000000000    0

Área

g <- ggplot(datos, aes(x = x, y = y)) + 
    geom_area(aes(fill = f), alpha = 0.5) +
    scale_fill_manual(values = c("white", "pink")) +
    ggtitle("F(x) = 1") +
    xlab("x") +
    ylab("f(x)")

Área

Probabilidad [a, b]

Definir un intervalo entre a y b

\[ P(a \le x \le b) \] \[ \text{intervalo entre 90.0 y 180.0 en x} \]

\[ a = 90.0 \]

\[ b = 180.0 \]

Intervalo

a <- 90.0
b <- 180.0
datos <- cbind(datos, p = ifelse(datos$x >= a & datos$x <= b & datos$f == 'f(x)', 'P(x)', as.character(datos$f)))
datos$p <- as.factor(datos$p)

datos
    x           y    f    p
1 -45 0.000000000    0    0
2 -30 0.000000000    0    0
3   0 0.002777778 f(x) f(x)
4  90 0.002777778 f(x) P(x)
5 180 0.002777778 f(x) P(x)
6 270 0.002777778 f(x) f(x)
7 360 0.002777778 f(x) f(x)
8 400 0.000000000    0    0

Probabilidad [a, b]

g <- ggplot(datos, aes(x = x, y = y, fill = p)) + 
  geom_area(alpha = 0.5, position = "identity") +
  scale_fill_manual(values = c("white", "pink", "blue")) +
  ggtitle("F(X) = 1; P(a <= x <= b)") +
  xlab("x") +
  ylab("f(x)")

Probabilidad [a, b]

Cuestionamientos

  • ¿Cuanto vale el área en color azul si toda el área en color rosa vale 1.0?

  • ¿Cual es la probabilidad de que el valor de x esté entre a y b, es decir entre 0.5 y 1?

\[ P(a \leq x \leq b) = \int_{a}^{b} f(x) dx = \int_{a}^{b} f(x)\frac{1}{360} dx \]

\[ \int_{90}^{180} f(x)\frac{1}{360} dx \]

integrate()

La función integrate() en R, utiliza un algoritmo numérico para aproximar la integral, y la aproximación puede tener un cierto grado de error.

El grado de error depende del algoritmo numérico utilizado, así como de los límites de integración y la función en sí. Por lo tanto, es posible que el valor obtenido mediante integrate() sea ligeramente diferente al valor calculado de forma analítica.

En general, se espera que el valor obtenido mediante integrate() sea una buena aproximación del valor real de la integral.

Función integrate() en acción

# Se calcula la integral de f(x) en el intervalo [90, 180]
resultado <- integrate(f = f_dens, a, b)

# Se obtiene la probabilidad P(x) en el intervalo [a, b]
probabilidad <- round(resultado$value * 100, 4)
paste("La probabilidad de que x esté entre ", a , " y ", b, " es de ", probabilidad, "% aproximadamente")
[1] "La probabilidad de que x esté entre  90  y  180  es de  25 % aproximadamente"
paste("El error absoluto es de ", resultado$abs.error)
[1] "El error absoluto es de  2.77555756156289e-15"

Valor Esperado

El valor esperado o valor medio de una variable aleatoria continua X con función de densidad de probabilidad f(x) es el valor que se espera que se de en promedio:

\[ \mu_{x} = VE(x) = \int_{-\infty}^{\infty}x\cdot f(x)dx \therefore \\ \mu_{x} = VE(x) = \int_{0}^{360}x\cdot \frac{1}{360}dx \]

(Devore 2016)

Valor Esperado

Pendiente Desarrollo de la integral

Valor Esperado

f_valor_esperado <- function(f_densidad) {
  resultado <- integrate(function(x) x * f_densidad(x), 
                        lower = -Inf, 
                        upper = Inf)
  
  resultado$value
}

VE <- round(f_valor_esperado(f_densidad = f_dens), 4)

paste("El valor esperado de x en esta función es aproximadamente de : ", VE)
[1] "El valor esperado de x en esta función es aproximadamente de :  180.0006"

Varianza

Es una medida de dispersión, se representa con \(\sigma^2\) o \(V(X)\). La varianza de una variable aleatoria continua X con función de densidad de probabilidad \(f(x)\) y valor medio \(\mu\) está dada por:

\[ varianza = \sigma^2=V(x)=\int_{-\infty}^{\infty}(x - \mu)^2\cdot f(x) dx \]

ó

\[ varianza = \sigma^2=V(x)=\int_{-\infty}^{\infty}x^2\cdot f(x)dx - \mu^2 \]

Varianza

Pendiente alguna imagen del desarrollo de la integral

Varianza

f_varianza <- function(f_densidad, VE) {
  resultado <- integrate(f = function(x) (x - VE)^2 * f_densidad(x), lower = -Inf, upper = Inf)
  
  resultado$value
}

varianza <- round(f_varianza(f_densidad = f_dens, VE = VE), 4)
paste("La varianza de x de la función de densidad es aproximadamente de ", varianza)
[1] "La varianza de x de la función de densidad es aproximadamente de  10799.9658"

Desviación estándar

Es medida de dispersión representada por \(\sigma\) y es la raíz cuadrada de la varianza.

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

desv.std <- round(sqrt(varianza), 4)
paste("La desviación estándar de x de la función de densidad es aproximadamente de ", desv.std)
[1] "La desviación estándar de x de la función de densidad es aproximadamente de  103.9229"

Bibliografía

Devore, Jay L. 2016. Fundamentos de Probabilidad y Estadística. Primera Edición. CENGAGE.