Documentaciónmenor(lambda, k)
Nombre
menor - Calcula la probabilidad de observar menos de k eventos.
Sinopsis
p = poisson.menor(lambda, k)
Descripcion
Calcula la probabilidad acumulada P(X < k) para una distribucion de Poisson.
La variable lambda representa el numero promedio de eventos por intervalo y k el umbral superior no incluido en la suma.
Formula:
Validaciones y casos borde
- Valida que
lambdasea mayor o igual que0. - Valida que
ksea entero. - Si alguna de esas condiciones falla, emite
ERROR(). - Si
k <= 0, retorna0. - Si
lambda = 0, retorna1para todok > 0, porque el unico caso con probabilidad no nula esX = 0.
Comportamiento
- Recorre los valores desde
0hastak - 1. - Usa internamente
poisson.exacta(lambda, i)en cada termino. - Retorna un
NUMERICOcon la probabilidad acumulada.
Funciones API relacionadas
poisson.exacta()poisson.mayor_igual()
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
| lambda | NUMERICO | Media esperada de eventos de la distribucion de Poisson. |
| k | NUMERICO | Valor entero objetivo: indice, cantidad de exitos o cantidad de eventos. |
Valor de retorno
NUMERICO - Probabilidad acumulada para P(X < k).
Ejemplo
ejemplo.blox
// Ejemplo 2
// --------------------
// En un call center se estima que llegan en promedio 9 llamadas por minuto.
// Se modela la cantidad de llamadas por minuto con una distribución de Poisson
// con parámetro:
//
// 𝜆 = 9.0
//
// El supervisor define como valor crítico:
//
// 𝑘_𝑚𝑎𝑟𝑐𝑎𝑑𝑜 = 8
//
// porque quiere evaluar si el volumen de llamadas está por debajo, exactamente
// en, o por encima de ese valor (por ejemplo, para decidir si conviene reforzar
// operadores).
//
INCLUIR "poisson.api"
INCLUIR "vectores.api"
INCLUIR "graficos.api"
FUNCION PRINCIPAL
INICIO "Poisson - Graficos multiples (offset)"
NUMERICO lambda, k_marcado
NUMERICO k_max, k_max1
NUMERICO i
// --- Parámetros de la distribución ---
//
lambda = 9.0
k_marcado = 8 // valor que querés resaltar
// Elegimos un rango razonable para graficar: [0 .. k_max]
// Regla simple: λ ± 4*sqrt(λ)
//
NUMERICO rango
rango = 4 * RAIZ(lambda)
k_max = ENTERO(lambda + rango)
SI (k_max < k_marcado) ENTONCES
k_max == k_marcado + 3
FIN_SI
k_max1 = k_max + 1
// --- Vectores base ---
//
VECTOR Ks_total[k_max1]
VECTOR Ks_menor[k_max1]
VECTOR Ks_igual[k_max1]
VECTOR Ks_mayor[k_max1]
VECTOR Pmf[k_max1]
VECTOR P_menor[k_max1]
VECTOR P_igual[k_max1]
VECTOR P_mayor[k_max1]
// Llenar Ks y PMF con P(X = k)
//
PARA i = 0 HASTA k_max HACER
Ks_total[i] = i
Ks_menor[i] = i
Ks_igual[i] = i
Ks_mayor[i] = i
Pmf[i] = poisson.exacta(lambda, i)
FIN_PARA
// Partición en tres regiones: <k, =k, >k
//
PARA i = 0 HASTA k_max HACER
P_menor[i] = SI (i < k_marcado) VALOR Pmf[i] SINO 0
P_igual[i] = SI (i == k_marcado) VALOR Pmf[i] SINO 0
P_mayor[i] = SI (i > k_marcado) VALOR Pmf[i] SINO 0
FIN_PARA
// --- Probabilidades numéricas clave ---
//
NUMERICO p_igual, p_menor, p_mayor_igual
p_igual = poisson.exacta(lambda, k_marcado)
p_menor = poisson.menor(lambda, k_marcado)
p_mayor_igual = poisson.mayor_igual(lambda, k_marcado)
IMPRIMIR ("Distribucion Poisson (lambda = ", lambda, ")\n")
IMPRIMIR ("k marcado = ", k_marcado, "\n\n")
IMPRIMIR ("P(X = ", k_marcado, ") = ", p_igual, "\n")
IMPRIMIR ("P(X < ", k_marcado, ") = ", p_menor, "\n")
IMPRIMIR ("P(X >= ", k_marcado, ") = ", p_mayor_igual, "\n\n")
// ====================================================
// GRAFICO: multiples series con Ks desplazados
// ====================================================
TABLA datos, G, serie_total, serie_menor, serie_igual, serie_mayor
TABLA eje_x, eje_y
// Serie 1: toda la distribucion P(X=k)
//
serie_total = {
tipo = "barras",
x = Ks_total,
y = Pmf,
trazo = "continuo",
bar_width = 0.90, // No mostrar
color = "#fcf803",
grosor = 1
}
// Serie 2: parte X < k
//
serie_menor = {
tipo = "barras",
x = Ks_menor,
y = P_menor,
trazo = "continuo",
bar_width = 0.90,
color = "#e31212",
grosor = 1
}
// Serie 3: barra puntual en X = k
//
serie_igual = {
tipo = "barras",
x = Ks_igual,
y = P_igual,
trazo = "continuo",
bar_width = 0.90,
color = "#124ae3",
grosor = 1
}
// Serie 4: parte X > k
//
serie_mayor = {
tipo = "barras",
x = Ks_mayor,
y = P_mayor,
trazo = "continuo",
bar_width = 0.90,
color = "#e312bd",
grosor = 1
}
// --- Montaje de los datos ---
//
//datos[1]["total"] = serie_total[1]
datos[1]["X<k"] = serie_menor[1]
datos[1]["X=k"] = serie_igual[1]
datos[1]["X>k"] = serie_mayor[1]
// --- Autoscale sencillo de X, Y, cuadricula ---
//
TABLA ret
ret = graficos.bar_autoescala(Pmf)
// --- Montaje de los ejes ---
//
eje_x = {
nombre = "Valores de k",
min = ret[1].xmin,
max = ret[1].xmax,
cuadricula = ret[1].cuadx
}
eje_y = {
nombre = "P(X = k)",
orientacion = "vertical",
min = ret[1].ymin,
max = ret[1].ymax,
cuadricula = ret[1].cuady
}
// --- Etiquetas ---
//
STRING v_etiquetas[k_max1]
PARA i = 0 HASTA k_max HACER
v_etiquetas[i+1] = UNIR(Pmf[i]) // convierte a string
FIN_PARA
TABLA t_etiquetas
t_etiquetas = { mostrar=VERDADERO, texto = v_etiquetas, orientacion = -06, fuente=16, esp=1, color="#000000FF" }
STRING titulo
titulo = UNIR("Distribucion Poisson (lambda = ", lambda, ")")
// --- Preparacion del Grafico ---
//
G = {
tipo = "barras",
titulo = titulo,
etiquetas = t_etiquetas,
leyenda = { mostrar = 1, posicion = "e" },
ejex = VERDADERO,
ejey = VERDADERO,
abscisas = eje_x,
ordenadas = eje_y,
datos = datos,
ancho = 960,
alto = 540,
margen = 100,
archivo = "PROG95-2 - POISSON - ejemplo2.png"
}
GRAFICAR(G[1])
FINAL