\[Y=ln(X)\]
\[f(x;\mu, \sigma )=\frac{1}{x\sigma \sqrt{2\pi }}*e^{-\frac{(lnx-\mu)^{2} }{2\sigma ^{2}}}, x> 0\]
## Warning: package 'knitr' was built under R version 4.5.3
## Warning: package 'kableExtra' was built under R version 4.5.3
| Símbolo | Significado |
|---|---|
| x | Variable aleatoria continua (valores de precios siempre > 0) |
| μ | Media de los logaritmos de los datos (escala logarítmica) |
| σ | Desviación estándar de los logaritmos (volatilidad) |
| e | Constante matemática base de los logaritmos naturales |
library(knitr)
library(kableExtra)
precios_acciones <- data.frame(
"Día" = 1:5,
"Precio (X)" = c(50, 55, 53, 60, 65),
"ln(X)" = c(3.91, 4.01, 3.97, 4.09, 4.17)
)
precios_acciones %>%
kbl(caption = "Precios Diarios y Transformación Logarítmica",
align = "c") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "bordered", "condensed"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, border_right = TRUE) %>%
column_spec(2, border_right = TRUE)
| Día | Precio..X. | ln.X. |
|---|---|---|
| 1 | 50 | 3.91 |
| 2 | 55 | 4.01 |
| 3 | 53 | 3.97 |
| 4 | 60 | 4.09 |
| 5 | 65 | 4.17 |
library(knitr)
library(kableExtra)
df_funciones <- data.frame(
Función = c("dlnorm()", "plnorm()", "qlnorm()", "rlnorm()"),
Propósito = c("Densidad de probabilidad",
"Probabilidad acumulada",
"Función de cuantiles",
"Generación aleatoria"),
Aplicación_Financiera = c(
"Calcula la probabilidad relativa de que la acción alcance un precio específico.",
"Calcula el riesgo de que el precio caiga por debajo de un umbral (ej. p < $50).",
"Determina el precio asociado a un nivel de confianza (útil para el VaR - Value at Risk).",
"Simula escenarios futuros de precios (Simulaciones de Monte Carlo)."
)
)
df_funciones %>%
kbl(caption = "Análisis Lognormal: Funciones en R Studio",
booktabs = TRUE,
align = "cll") %>% # Centra la primera columna, izquierda las demás
kable_styling(bootstrap_options = c("bordered", "striped", "condensed"),
full_width = F,
position = "center") %>%
column_spec(1, bold = TRUE, border_right = TRUE) %>%
column_spec(2, border_right = TRUE) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76")
| Función | Propósito | Aplicación_Financiera |
|---|---|---|
| dlnorm() | Densidad de probabilidad | Calcula la probabilidad relativa de que la acción alcance un precio específico. |
| plnorm() | Probabilidad acumulada | Calcula el riesgo de que el precio caiga por debajo de un umbral (ej. p < $50). |
| qlnorm() | Función de cuantiles | Determina el precio asociado a un nivel de confianza (útil para el VaR - Value at Risk). |
| rlnorm() | Generación aleatoria | Simula escenarios futuros de precios (Simulaciones de Monte Carlo). |
dlnorm() de R Studio.x <- 60
meanlog <- 4
sdlog <- 0.2
resultado_manual <- (1 / (x * sdlog * sqrt(2*pi))) *
exp(-((log(x) - meanlog)^2) / (2 * sdlog^2))
print(resultado_manual)
## [1] 0.02974464
resultado_r <- dlnorm(x, meanlog, sdlog)
print(resultado_r)
## [1] 0.02974464
precios <- c(50, 55, 53, 60, 65)
log_precios <- log(precios)
media_log <- mean(log_precios)
desv_log <- sd(log_precios)
x <- seq(40, 80, length.out = 200)
densidad <- dlnorm(x, meanlog = media_log, sdlog = desv_log)
plot(
x, densidad,
type = "l",
lwd = 2,
col = "blue",
main = "Distribución Lognormal de Precios de una Acción",
xlab = "Precio (X)",
ylab = "Densidad de probabilidad"
)
polygon(x, densidad, col = rgb(0.2, 0.6, 1, 0.3), border = NA)
points(precios, dlnorm(precios, meanlog = media_log, sdlog = desv_log),
col = "red", pch = 19)
library(knitr)
library(kableExtra)
dt <- data.frame(
"Día" = 1:5,
"Precio (X)" = c(50, 55, 53, 60, 65),
"ln(X)" = c(3.91, 4.01, 3.97, 4.09, 4.17),
"Densidad f(x)" = c(0.0395, 0.0681, 0.0609, 0.0534, 0.0229),
"Prob. Acumulada F(x)" = c("12.42%", "40.72%", "27.68%", "72.73%", "91.57%")
)
dt %>%
kbl(align = "c", caption = "Resultados del Análisis de Distribución Lognormal") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
position = "center",
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, border_right = TRUE) %>%
column_spec(3, border_right = TRUE) %>%
column_spec(4, border_right = TRUE)
| Día | Precio..X. | ln.X. | Densidad.f.x. | Prob..Acumulada.F.x. |
|---|---|---|---|---|
| 1 | 50 | 3.91 | 0.0395 | 12.42% |
| 2 | 55 | 4.01 | 0.0681 | 40.72% |
| 3 | 53 | 3.97 | 0.0609 | 27.68% |
| 4 | 60 | 4.09 | 0.0534 | 72.73% |
| 5 | 65 | 4.17 | 0.0229 | 91.57% |
Para comprobar nuevamente el funcionamiento de la distribución
lognormal, se calculan las densidades de probabilidad tanto manualmente
como utilizando la función dlnorm() de R Studio.
precios <- c(50, 55, 53, 60, 65)
media_log <- mean(log(precios))
desv_log <- sd(log(precios))
densidad_manual <- (1 / (precios * desv_log * sqrt(2*pi))) *
exp(-((log(precios) - media_log)^2) / (2 * desv_log^2))
print(densidad_manual)
## [1] 0.03953586 0.06807858 0.06094127 0.05343369 0.02294903
Posteriormente, se calculan los mismos valores utilizando la función integrada de R:
densidad_r <- dlnorm(precios,
meanlog = media_log,
sdlog = desv_log)
print(densidad_r)
## [1] 0.03953586 0.06807858 0.06094127 0.05343369 0.02294903
Finalmente, se organiza la información en una tabla comparativa:
library(knitr)
library(kableExtra)
tabla <- data.frame(
"Precio" = precios,
"Cálculo Manual" = round(densidad_manual, 5),
"Función dlnorm" = round(densidad_r, 5)
)
tabla %>%
kbl(align = "c",
caption = "Validación: Cálculo Manual vs. Función dlnorm()") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, border_right = TRUE) %>%
column_spec(2, border_right = TRUE, bold = TRUE, color = "#2e86c1")
| Precio | Cálculo.Manual | Función.dlnorm |
|---|---|---|
| 50 | 0.03954 | 0.03954 |
| 55 | 0.06808 | 0.06808 |
| 53 | 0.06094 | 0.06094 |
| 60 | 0.05343 | 0.05343 |
| 65 | 0.02295 | 0.02295 |
\[f(x) = \frac{1}{\sigma \sqrt{2\pi}} \, e^{-\frac{1}{2}\left(\frac{x - \mu}{\sigma}\right)^2}\]
library(knitr)
library(kableExtra)
dtgaussiana <- data.frame(
"Símbolo" = c("x", "μ", "σ", "e", "π"),
"Significado" = c(
"Valor de la Variable aleatoria",
"Media o valor esperado (centro de la distribución)",
"Desviación estándar (dispersión o variabilidad)",
"Número o constante de Euler (≈ 2.71828)",
"Constante matemática Pi (≈ 3.14159)"
)
)
dtgaussiana %>%
kbl(align = "cl", caption = "Símbolos y Significados de la Distribución Gaussiana (Normal)") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE)
| Símbolo | Significado |
|---|---|
| x | Valor de la Variable aleatoria |
| μ | Media o valor esperado (centro de la distribución) |
| σ | Desviación estándar (dispersión o variabilidad) |
| e | Número o constante de Euler (≈ 2.71828) |
| π | Constante matemática Pi (≈ 3.14159) |
\[ z=\frac{x-\mu }{\sigma }\]
library(knitr)
library(kableExtra)
funciones_gauss <- data.frame(
"Función_en_R" = c("dnorm()", "pnorm()", "qnorm()", "rnorm()"),
"Propósito" = c("Densidad de probabilidad", "Probabilidad acumulada", "Cuantiles", "Simulación aleatoria"),
"Aplicación_Salud" = c(
"Calcula la probabilidad puntual en x = 135 mmHg.",
"Calcula el % de pacientes por debajo de un nivel de presión.",
"Encuentra el valor de presión para un percentil dado.",
"Genera datos sintéticos para estudios de simulación."
)
)
funciones_gauss %>%
kbl(align = "cll", caption = "Análisis Normal: Funciones en R Studio") %>%
kable_styling(bootstrap_options = c("striped", "hover", "bordered"),
full_width = FALSE, font_size = 18) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE)
| Función_en_R | Propósito | Aplicación_Salud |
|---|---|---|
| dnorm() | Densidad de probabilidad | Calcula la probabilidad puntual en x = 135 mmHg. |
| pnorm() | Probabilidad acumulada | Calcula el % de pacientes por debajo de un nivel de presión. |
| qnorm() | Cuantiles | Encuentra el valor de presión para un percentil dado. |
| rnorm() | Simulación aleatoria | Genera datos sintéticos para estudios de simulación. |
\[f(135) = \frac{1}{15 \sqrt{2\pi}} \, e^{-\frac{1}{2}\left(\frac{135- 120}{15}\right)^2}= 0.01613\] Comparación entre la fórmula manual y la función de R
dnorm() de R Studio.densidad_manual <- function(x){
mu <- 120
sigma <- 15
resultado <- (1 / (sigma * sqrt(2*pi))) *
exp(-0.5 * ((x - mu) / sigma)^2)
return(resultado)
}
resultado_manual <- densidad_manual(135)
print(resultado_manual)
## [1] 0.01613138
resultado_r <- dnorm(135,
mean = 120,
sd = 15)
print(resultado_r)
## [1] 0.01613138
library(knitr)
library(kableExtra)
mu <- 120
sigma <- 15
x <- 135
z <- (x - mu) / sigma
fx <- (1 / (sigma * sqrt(2 * pi))) * exp(-0.5 * z^2)
tabla <- data.frame(
"Parámetro" = c("Media (μ)", "Desviación estándar (σ)", "Valor de x",
"Puntuación Z", "Densidad f(x)"),
"Valor" = c(mu, sigma, x, round(z, 2), round(fx, 4))
)
tabla %>%
kbl(align = "cl",
caption = "Cálculo de la Densidad de Probabilidad Normal (x = 135 mmHg)") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE) %>%
row_spec(5, bold = TRUE, color = "#001b76", background = "#ebf5fb")
| Parámetro | Valor |
|---|---|
| Media (μ) | 120.0000 |
| Desviación estándar (σ) | 15.0000 |
| Valor de x | 135.0000 |
| Puntuación Z | 1.0000 |
| Densidad f(x) | 0.0161 |
x_vals <- seq(60, 180, 0.1)
y_vals <- dnorm(x_vals, mean = mu, sd = sigma)
plot(x_vals, y_vals, type = "l", lwd = 2, col = "blue",
main = "Gráfica Distribución Normal (μ = 120, σ = 15)",
xlab = "Presión arterial (mmHg)",
ylab = "Densidad de probabilidad")
abline(v = x, col = "red", lty = 2, lwd = 2)
points(x, fx, col = "red", pch = 19, cex = 1.5)
text(x + 2, fx, labels = paste("f(135) =", round(fx, 4)),
col = "red", cex = 1)
\[X=Z_{1}^{2}+Z_{2}^{2}+....+Z_{k}^{2}\]
\[Z_{i}^{2}\sim N(0,1)\]
\[X\sim X^{2}(k)\]
\[ f(x;k)=\frac{1}{2^{\frac{k}{2}}\Gamma (k/2)}x^{(k/2)-1}e^{-x/2}, x> 0\]
library(knitr)
library(kableExtra)
dt_distribucion <- data.frame(
"Símbolo" = c("χ", "f(x; k)", "k", "Γ(k/2)"),
"Significado" = c(
"Variable aleatoria Chi-Cuadrado.",
"Función de densidad de probabilidad para k grados de libertad.",
"Grados de libertad (determina la forma de la curva).",
"Función Gamma (extensión del factorial para números reales)."
)
)
dt_distribucion %>%
kbl(align = "cl", caption = "Símbolos y Significados de la Distribución Chi-Cuadrado") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
position = "center",
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE,)
| Símbolo | Significado |
|---|---|
| χ | Variable aleatoria Chi-Cuadrado. |
| f(x; k) | Función de densidad de probabilidad para k grados de libertad. |
| k | Grados de libertad (determina la forma de la curva). |
| Γ(k/2) | Función Gamma (extensión del factorial para números reales). |
library(knitr)
library(kableExtra)
tabla_chi <- data.frame(
"Propiedad" = c("Dominio", "Media (μ)", "Varianza (σ²)", "Forma", "Usos comunes"),
"Descripción" = c(
"x > 0 (Solo valores positivos)",
"k (Igual a los grados de libertad)",
"2k (El doble de los grados de libertad)",
"Asimétrica positiva (se normaliza al aumentar k)",
"Pruebas de independencia, bondad de ajuste y ANOVA."
),
stringsAsFactors = FALSE
)
tabla_chi %>%
kbl(align = "cl", caption = "Propiedades de la Distribución Chi-cuadrado") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE)
| Propiedad | Descripción |
|---|---|
| Dominio | x > 0 (Solo valores positivos) |
| Media (μ) | k (Igual a los grados de libertad) |
| Varianza (σ²) | 2k (El doble de los grados de libertad) |
| Forma | Asimétrica positiva (se normaliza al aumentar k) |
| Usos comunes | Pruebas de independencia, bondad de ajuste y ANOVA. |
library(knitr)
library(kableExtra)
funciones_chisq <- data.frame(
"Función_en_R" = c("dchisq()", "pchisq()", "qchisq()", "rchisq()"),
"Propósito" = c("Densidad de probabilidad",
"Probabilidad acumulada",
"Función de cuantiles",
"Generación aleatoria"),
"Aplicación en el Artículo" = c(
"Calcula la 'altura' de la curva para un valor de x dado.",
"Fundamental para hallar el p-valor en pruebas de independencia.",
"Calcula el valor crítico para determinar regiones de rechazo.",
"Simula datos para pruebas de bondad de ajuste."
)
)
funciones_chisq %>%
kbl(align = "cll", caption = "Funciones de Distribución Chi-Cuadrado en R Studio") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE) %>%
column_spec(2, border_right = TRUE)
| Función_en_R | Propósito | Aplicación.en.el.Artículo |
|---|---|---|
| dchisq() | Densidad de probabilidad | Calcula la ‘altura’ de la curva para un valor de x dado. |
| pchisq() | Probabilidad acumulada | Fundamental para hallar el p-valor en pruebas de independencia. |
| qchisq() | Función de cuantiles | Calcula el valor crítico para determinar regiones de rechazo. |
| rchisq() | Generación aleatoria | Simula datos para pruebas de bondad de ajuste. |
\[f(3;4)=\frac{1}{2^{\frac{4}{2}}\Gamma (4/2)}3^{(4/2)-1}e^{-3/2}= 0.1673\] Comparación entre la fórmula manual y la función de R
dchisq() de R Studio.densidad_chi_manual <- function(x){
k <- 4
resultado <- (1 / (2^(k/2) * gamma(k/2))) *
x^((k/2)-1) *
exp(-x/2)
return(resultado)
}
resultado_manual <- densidad_chi_manual(3)
print(resultado_manual)
## [1] 0.1673476
resultado_r <- dchisq(3, df = 4)
print(resultado_r)
## [1] 0.1673476
library(knitr)
library(kableExtra)
x <- 3
k <- 4
gamma_val <- gamma(k/2)
exponencial <- exp(-x/2)
fx <- (1 / (2^(k/2) * gamma_val)) * x^((k/2)-1) * exponencial
tabla_chi <- data.frame(
"Parámetro" = c("Valor de x", "Grados de libertad (k)", "Función Γ(k/2)",
"Parte exponencial e^(-x/2)", "Densidad f(x; k)"),
"Valor" = c(x, k, round(gamma_val, 3), round(exponencial, 4), round(fx, 4))
)
tabla_chi %>%
kbl(align = "cl",
caption = "Cálculo de la Función de Densidad Chi-cuadrado (x = 3, k = 4)") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE) %>%
row_spec(5, bold = TRUE, color = "#001b76", background = "#ebf5fb")
| Parámetro | Valor |
|---|---|
| Valor de x | 3.0000 |
| Grados de libertad (k) | 4.0000 |
| Función Γ(k/2) | 1.0000 |
| Parte exponencial e^(-x/2) | 0.2231 |
| Densidad f(x; k) | 0.1673 |
x_vals <- seq(0, 10, 0.1)
y_vals <- dchisq(x_vals, df = k)
plot(x_vals, y_vals, type = "l", lwd = 2, col = "blue",
main = paste("Distribución Chi-cuadrado con", k, "grados de libertad"),
xlab = expression(chi^2), ylab = "Densidad de probabilidad")
abline(v = x, col = "red", lty = 2, lwd = 2)
points(x, fx, col = "red", pch = 19, cex = 1.5)
text(x + 0.6, fx, labels = paste("f(3;4) =", round(fx, 4)), col = "red", cex = 1)
\[P(X=k)=\frac{e^{\lambda}\lambda ^{k}}{k!}\]
library(knitr)
library(kableExtra)
dt_poisson <- data.frame(
"Símbolo" = c("P(X = k)", "λ", "e", "k!"),
"Significado" = c(
"Probabilidad de observar exactamente k eventos.",
"Tasa media de ocurrencia (promedio de eventos por intervalo).",
"Constante de Euler (base del logaritmo natural ≈ 2.71828).",
"Factorial de k (producto de todos los enteros desde 1 hasta k)."
)
)
dt_poisson %>%
kbl(align = "cl", caption = "Símbolos y Significados de la Distribución de Poisson") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
position = "center",
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE)
| Símbolo | Significado |
|---|---|
| P(X = k) | Probabilidad de observar exactamente k eventos. |
| λ | Tasa media de ocurrencia (promedio de eventos por intervalo). |
| e | Constante de Euler (base del logaritmo natural ≈ 2.71828). |
| k! | Factorial de k (producto de todos los enteros desde 1 hasta k). |
library(knitr)
library(kableExtra)
propiedades_poisson <- data.frame(
Propiedad = c("Tipo de variable", "Dominio", "Media (μ)", "Varianza (σ²)", "Forma", "Parámetro"),
Descripción = c(
"Discreta (conteos de eventos)",
"k ∈ {0, 1, 2, 3, ...}",
"λ (lambda)",
"λ (lambda)",
"Sesgada a la derecha (se normaliza si λ aumenta)",
"λ (único parámetro de la distribución)"
)
)
propiedades_poisson %>%
kbl(align = "cl", caption = "Propiedades Clave de la Distribución de Poisson") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
position = "center",
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE)
| Propiedad | Descripción |
|---|---|
| Tipo de variable | Discreta (conteos de eventos) |
| Dominio | k ∈ {0, 1, 2, 3, …} |
| Media (μ) | λ (lambda) |
| Varianza (σ²) | λ (lambda) |
| Forma | Sesgada a la derecha (se normaliza si λ aumenta) |
| Parámetro | λ (único parámetro de la distribución) |
library(knitr)
library(kableExtra)
aplicaciones_poisson <- data.frame(
"Área" = c(
"Salud pública",
"Telecomunicaciones",
"Industria",
"Tránsito y transporte",
"Finanzas y seguros",
"Ciencias naturales",
"Atención al cliente"
),
"Aplicación Práctica" = c(
"Pacientes en urgencias por hora o detección de enfermedades raras.",
"Flujo de llamadas o mensajes recibidos en un servidor.",
"Defectos en piezas producidas o fallos en maquinaria por semana.",
"Vehículos en un peaje o llegada de buses a una estación.",
"Frecuencia de reclamos de seguros o detección de fraudes.",
"Mutaciones genéticas o avistamiento de especies en un área.",
"Solicitudes de soporte o clientes en fila por intervalo de tiempo."
)
)
aplicaciones_poisson %>%
kbl(align = "cl", caption = "Aplicaciones de la Distribución de Poisson en Diversos Sectores") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
position = "center",
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE, width = "5cm") %>%
column_spec(2, width = "12cm")
| Área | Aplicación.Práctica |
|---|---|
| Salud pública | Pacientes en urgencias por hora o detección de enfermedades raras. |
| Telecomunicaciones | Flujo de llamadas o mensajes recibidos en un servidor. |
| Industria | Defectos en piezas producidas o fallos en maquinaria por semana. |
| Tránsito y transporte | Vehículos en un peaje o llegada de buses a una estación. |
| Finanzas y seguros | Frecuencia de reclamos de seguros o detección de fraudes. |
| Ciencias naturales | Mutaciones genéticas o avistamiento de especies en un área. |
| Atención al cliente | Solicitudes de soporte o clientes en fila por intervalo de tiempo. |
library(knitr)
library(kableExtra)
funciones_poisson <- data.frame(
"Función_en_R" = c("dpois()", "ppois()", "qpois()", "rpois()"),
"Propósito" = c("Probabilidad puntual",
"Probabilidad acumulada",
"Función de cuantiles",
"Generación aleatoria"),
"Aplicación" = c(
"Calcula la probabilidad de que ocurra un número exacto de eventos (k).",
"Calcula la probabilidad de que ocurran 'k' eventos o menos.",
"Encuentra el número de eventos necesario para alcanzar una probabilidad dada.",
"Simula datos de conteo (ej. llegada de pacientes) para modelos predictivos."
)
)
funciones_poisson %>%
kbl(align = "cll", caption = "Funciones de la Distribución de Poisson en R Studio") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE) %>%
column_spec(2, border_right = TRUE)
| Función_en_R | Propósito | Aplicación |
|---|---|---|
| dpois() | Probabilidad puntual | Calcula la probabilidad de que ocurra un número exacto de eventos (k). |
| ppois() | Probabilidad acumulada | Calcula la probabilidad de que ocurran ‘k’ eventos o menos. |
| qpois() | Función de cuantiles | Encuentra el número de eventos necesario para alcanzar una probabilidad dada. |
| rpois() | Generación aleatoria | Simula datos de conteo (ej. llegada de pacientes) para modelos predictivos. |
\[P(X=6)=\frac{e^{-4}4 ^{2}}{2!}=0.1041\] Comparación entre la fórmula manual y la función de R
dpois() de R Studio..factorial_manual <- function(x) {
f <- 1
for(i in 1:x) {
f <- f * i
}
return(f)
}
poisson_manual <- function(lambda, k) {
p <- (exp(-lambda) * lambda^k) / factorial_manual(k)
return(p)
}
lambda <- 4
k <- 6
resultado <- poisson_manual(lambda, k)
print(resultado)
## [1] 0.1041956
resultado_r <- dpois(k, lambda)
print(resultado_r)
## [1] 0.1041956
lambda <- 4
x <- 0:12
probabilidades <- dpois(x, lambda)
datos <- data.frame(
clientes = x,
probabilidad = probabilidades
)
x_cont <- seq(0, 12, length.out = 500)
densidad_suave <- spline(x, dpois(x, lambda), xout = x_cont)$y
plot(
x_cont, densidad_suave,
type = "l",
lwd = 2,
col = "blue",
main = "Distribución Poisson (Clientes por hora - Tienda El Jardín, Palmira)",
xlab = "Número de clientes (X)",
ylab = "Probabilidad P(X = x)"
)
points(datos$clientes, datos$probabilidad,
col = "red", pch = 19)
p_x6 <- dpois(6, lambda)
points(6, p_x6, col = "darkred", pch = 19, cex = 1.5)
text(6, p_x6 + 0.015, paste0("P(X=6) = ", round(p_x6, 3)), col = "darkred")
\[f(x)=\lambda e^{-\lambda x}, x> 0\]
library(knitr)
library(kableExtra)
dt_exponencial <- data.frame(
"Símbolo" = c("f(x)", "x", "λ (Lambda)", "e"),
"Significado" = c(
"Función de densidad de probabilidad.",
"Tiempo o distancia entre eventos (variable continua x > 0).",
"Tasa de ocurrencia (inverso del tiempo promedio).",
"Constante de Euler (base del decaimiento exponencial ≈ 2.71828)."
)
)
dt_exponencial %>%
kbl(align = "cl", caption = "Símbolos y Significados de la Distribución Exponencial") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
position = "center",
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE, width = "3cm")
| Símbolo | Significado |
|---|---|
| f(x) | Función de densidad de probabilidad. |
| x | Tiempo o distancia entre eventos (variable continua x > 0). |
| λ (Lambda) | Tasa de ocurrencia (inverso del tiempo promedio). |
| e | Constante de Euler (base del decaimiento exponencial ≈ 2.71828). |
\[f(x)=\frac{1}{\mu }e^{-\lambda x}\]
library(knitr)
library(kableExtra)
funciones_exponencial <- data.frame(
"Función_n_R" = c("dexp()", "pexp()", "qexp()", "rexp()"),
"Propósito" = c("Densidad de probabilidad",
"Probabilidad acumulada",
"Función de cuantiles",
"Generación aleatoria"),
"Aplicación" = c(
"Calcula la 'altura' de la curva de decaimiento para un tiempo x.",
"Calcula la probabilidad de que un evento ocurra antes de un tiempo límite.",
"Determina el intervalo de tiempo necesario para una probabilidad dada.",
"Simula tiempos de espera entre eventos (ej. tiempo entre clientes)."
)
)
funciones_exponencial %>%
kbl(align = "cll", caption = "Funciones de la Distribución Exponencial en R Studio") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "bordered"),
full_width = FALSE,
font_size = 18
) %>%
row_spec(0, bold = TRUE, color = "white", background = "#001b76") %>%
column_spec(1, bold = TRUE, border_right = TRUE) %>%
column_spec(2, border_right = TRUE)
| Función_n_R | Propósito | Aplicación |
|---|---|---|
| dexp() | Densidad de probabilidad | Calcula la ‘altura’ de la curva de decaimiento para un tiempo x. |
| pexp() | Probabilidad acumulada | Calcula la probabilidad de que un evento ocurra antes de un tiempo límite. |
| qexp() | Función de cuantiles | Determina el intervalo de tiempo necesario para una probabilidad dada. |
| rexp() | Generación aleatoria | Simula tiempos de espera entre eventos (ej. tiempo entre clientes). |
\[f(5)=0,125e^{-0,125(5)}=0,0669\] # La probabilidad de que el tiempo supere 3 minutos es
\[P(x <= 5)=f(3)=0,125e^{-0,125(3)}=0,4647\] Comparación entre la fórmula manual y la función de R
dexp() y pexp() de R Studio.lambda <- 1/8
x <- 5
euler <- 2.718281828459045
densidad_exp <- function(lambda, x) {
p <- lambda * euler^(-lambda * x)
return(p)
}
prob_acum_exp <- function(lambda, x) {
p <- 1 - euler^(-lambda * x)
return(p)
}
resultado_densidad <- densidad_exp(lambda, x)
resultado_prob <- prob_acum_exp(lambda, x)
print(resultado_densidad)
## [1] 0.06690768
print(resultado_prob)
## [1] 0.4647386
densidad_r <- dexp(x, rate = lambda)
probabilidad_r <- pexp(x, rate = lambda)
print(densidad_r)
## [1] 0.06690768
print(probabilidad_r)
## [1] 0.4647386
x_vals <- seq(0, 40, length.out = 500)
y_vals <- lambda * euler^(-lambda * x_vals)
plot(
x_vals,
y_vals,
type = "l",
lwd = 2,
col = "blue",
main = "Distribución Exponencial (Llegadas Urgencias HUV, Cali)",
xlab = "Tiempo entre llegadas (minutos)",
ylab = "Densidad de probabilidad"
)
abline(v = x, col = "red", lty = 2, lwd = 2)
points(x, resultado_densidad, col = "darkred", pch = 19, cex = 1.5)
text(x + 1, resultado_densidad + 0.003,
paste0("f(5) = ", resultado_densidad), col = "darkred")
d, p, q y r, donde
cada una cumple una función específica:d → calcula la densidad de
probabilidad o probabilidad puntual.dnorm(),
dpois(), dexp(),
dchisq().p → calcula la probabilidad
acumulada.pnorm(),
ppois(), pexp(),
pchisq().q → calcula cuantiles o valores
críticos asociados a probabilidades.qnorm(),
qpois(), qexp(),
qchisq().r → genera valores aleatorios
siguiendo una distribución específica.rnorm(),
rpois(), rexp(),
rchisq().