Funciones de densidad y probabilidades 1 - x/2

Rubén Pizarro Gurrola

f(x)

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

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.

Fórmula de densidad

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

¿Es función de densidad?

Para que \(f(x)\) sea una función de densidad de probabilidad legítima debe satisfacer las dos siguientes condiciones (Devore 2016):

\[ 1. f(x) \ge 0 \text{ para todas las x's, y} \]

\[ 2. \int_{-\infty}^{\infty}f(x)dx=\text{ área bajo toda la curva de f(x)} \]

Condiciones de esta función de densidad

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

\[ f(x) = 1 - \frac{x}{2}\therefore \] \[ f(x) = \begin{cases} {1 - \frac{x}{2}} & \text{:if } (0 \leq x \leq 2)\\ 0 & \text{:en cualquier otro caso} \end{cases} \]

Cargar librerías necesarias

library(ggplot2)

La función programada

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

Probar la función de densidad

f_dens(x = -3)
[1] 0
f_dens(x = -1)
[1] 0
f_dens(x = 0)
[1] 1
f_dens(x = -5)
[1] 0
f_dens(x= 2)
[1] 0

Probar con varios valores

x <- c(-4, -3, -2, -1, 0, 0.5, 0.75, 1, 2, 2.1, 3)
x
 [1] -4.00 -3.00 -2.00 -1.00  0.00  0.50  0.75  1.00  2.00  2.10  3.00
y <- f_dens(x)
y
 [1] 0.000 0.000 0.000 0.000 1.000 0.750 0.625 0.500 0.000 0.000 0.000

Construir un df con x’s e y’s

datos <- data.frame(x, y)
datos
       x     y
1  -4.00 0.000
2  -3.00 0.000
3  -2.00 0.000
4  -1.00 0.000
5   0.00 1.000
6   0.50 0.750
7   0.75 0.625
8   1.00 0.500
9   2.00 0.000
10  2.10 0.000
11  3.00 0.000

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 , 2]

min_x <- 0
max_x <- 2
datos <- cbind(datos, f = ifelse(datos$x >=0 & datos$x<=2, 'f(x)', '0'))
datos$f <- as.factor(datos$f)
datos
       x     y    f
1  -4.00 0.000    0
2  -3.00 0.000    0
3  -2.00 0.000    0
4  -1.00 0.000    0
5   0.00 1.000 f(x)
6   0.50 0.750 f(x)
7   0.75 0.625 f(x)
8   1.00 0.500 f(x)
9   2.00 0.000 f(x)
10  2.10 0.000    0
11  3.00 0.000    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 0.5 y 1 en x} \]

\[ a = 0.5 \]

\[ b = 1.0 \]

Intervalo

a <- 0.5
b <- 1.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  -4.00 0.000    0    0
2  -3.00 0.000    0    0
3  -2.00 0.000    0    0
4  -1.00 0.000    0    0
5   0.00 1.000 f(x) f(x)
6   0.50 0.750 f(x) P(x)
7   0.75 0.625 f(x) P(x)
8   1.00 0.500 f(x) P(x)
9   2.00 0.000 f(x) f(x)
10  2.10 0.000    0    0
11  3.00 0.000    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} (1 - x/2) dx \]

\[ \int_{0.5}^{1.0} (1 - x/2) 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 [0.5, 1]
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  0.5  y  1  es de  31.25 %, aproximadamente"
paste("El error absoluto es de ", resultado$abs.error)
[1] "El error absoluto es de  3.46944695195361e-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}^{2}x\cdot 1 - \frac{x}{2}dx \]

(Devore 2016)

Valor Esperado

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 :  0.6667"

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

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  0.2222"

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  0.4714"

Bibliografía

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