Probabilidad Condicional

Referencia: León-García p.47, Gubner p.27, Parsen p.41/pdf.62, Ross p.7

Dos eventos A y B, relacionados de forma que al ocurrir uno, por ejemplo B, se altera la posibilidad de que ocurra el otro, por decir A, lleva a manejar el concepto de probabilidad condicional:

P[A|B] = \frac{ P[A \cap B] }{ P[B] }, \text{para } P[B] > 0

Ejemplo :

Una empresa ensambladora de televisores en la ciudad obtiene sus partes de dos proveedores (marca1 y marca2) para reducir el riesgo falla de suministros.
Dado que el proveedor tiene relación directa con la falla de sus equipos, la empresa busca encontrar:

¿cuál proveedor entrega las partes con menor defecto?.

Desarrollo:

Si se analizaron n=1688 televisores para determinar si están buenos o dañados, se resume  que:

marca1 marca2
bueno 754 499
dañado 221 214

Observe que la suma de la primera columna es el número de partes de marca1: N[marca1].

La frecuencia relativa de las partes buenas de marca 1 es:

\frac{N[bueno,marca1]}{N[marca1]}

Para cada parte existen cuatro posibles resultados:

marca1 marca2
bueno N[bueno, marca1] N[bueno, marca2]
dañado N[dañado, marca1] N[dañado, marca2]

Observe que las frecuencias relativas de las partes buenas de la marca 1 tambien se puede escribir como el cociente de frecuencias relativas:

\frac{N[bueno,marca1]}{N[marca1]} = \frac{\frac{N[bueno,marca1]}{n} }{ \frac{N[Marca1]}{n}}

La probabilidad condicional de que se use una parte buena, sabiendo que se ha seleccionado de la marca1 se puede escribir como P[bueno|marca1]

Si A=bueno, B=marca1 y si P(marca1)>0 entonces:

P[A|B] = \frac{P[A \cap B]}{P[B]} P[A \cap B] = P[A|B]P[B]
B marca2
A P[A∩B] N[bueno, marca2]
dañado N[dañado, marca1] N[dañado, marca2]
P[B]

interseccion

Ejemplo : Sistema de Comunicación Binaria

León-García E2.26 p.50

Los sistemas de comunicación se pueden modelar de la siguiente manera: el usuario ingresa un 0 o un 1 en el sistema y se transmite la señal, luego el receptor detecta la señal transmitida y lo convierte nuevamente en un 0 ó 1.

Suponga que el usuario envia 0´s con probabilidad (1-p) y 1’s con probabilidad p y que al receptor le llegan datos errados con probabilidad ε.

Para cada i=0,1 sea Ai el evento que la «entrada fué i» y sea Bi el evento que lo «recibido en el receptor fue i».

Encuentre las probabilidades P[Ai ∩ Bi] para i=0,1 y j=0,1

canal binario diagrama

B0 B1
A0 (1-p)(1-ε) (1-p)ε
A1 p(1-ε)

p[A0 ∩ B0] = (1-p)(1-ε)

p[A0 ∩ B1] = (1-p)ε

p[A1 ∩ B0] = pε

p[A1 ∩ B1] = p(1-ε)

El diagrama de árbol para el sistema es:

canal binario árbol

Describiendo un proceso aleatorio

Distribuciones conjuntas de muestras en el tiempo

Sean [X1, X2, … , Xk ] las k variables aleatorias obtenidas del muestreo de un proceso X(t,ω) en los tiempos: [t1, t2, … , tk] se describen como:

X1 = X(t1,ω),
X2 = X(t2,ω),
… ,
Xk = X(tk,ω),

mostrada en la figura:


El comportamiento conjunto del proceso aleatorio a estos k instantes de tiempo se da por la distribución acumulada conjunta del vector de las variables aleatorias :
X1, X2, … , Xk

Las probabilidades de cualquiera de los eventos del proceso aleatorio para todos o solo algunos de los instantes de tiempo, se pueden calcular por medio de la distribucion acumulada (cdf) con los metodos para vectores de variables aleatorias.

Por lo que un proceso aleatorio o estocástico se especifica por la colección de k-ésimo orden de las funciones de distribución acumuladas conjuntas :

F_{x_1, ... , x_k}(x_1, x_2, ... , x_k)=P[X_1 ≤ x_1, X_2 ≤ x_2, ... , X_k≤ x_k]

para cualquier k y cualquier selección de instantes de tiempo t1, t2, … , tk.

Si el proceso estocástico es de valores contínuos, entonces las funciones de densidad de probabilidad a usar serán:

f_{x_1, ... , x_k}(x_1, x_2, ... , x_k) dx_1 ... dx_n = P[x_1 < X_1 ≤ x_1+dx_1, x_2 < X_2 ≤ x_2+dx_2, ... , x_k < X_k ≤ x_k+dx_1]

Si el proceso estocastico es de tipo discreto, entonces la colección de funciones de probabilidad de masa para especificar el proceso estocastico será:

p_{x_1, ... , x_k}(x_1, x_2, ... , x_k) = P[ X(t_1) = x_1, X(t_2) = x_2, ... , X(t_k) = x_k ]

Ejemplo: Variable aleatoria Bernoulli iid

Referencia: León García E9.5 pdf/p.492

Sea Xn una secuencia de una variable aleatoria independiente e identicamente distribuida(i.i.d), tipo Bernoulli con p=1/2.
La pmf conjunta para cualquier k muestras de tiempo es entonces:

P[ X1 = x1, X2 = x2, … , Xk = xk ] =
= P[ X1 = x1] P[X2 = x2], … , P[Xk = xk ]
= (1/2)k

donde xi ∈ {0,1] para todo i.

Ejemplo: Variable aleatoria Gausiana iid

Referencia: León García E9.6 pdf/p.493

Sea Xn una secuencia de una variable aleatoria independiente e identicamente distribuida (i.i.d.), tipo Gausiana con media μ=0 y varianza σ2x. La función de densidad de probabilidad (pdf) conjunta para cualquier muestra de tiempo k es entonces:

f_{x_1,x2, ...,x_k}(x_1,x2, ...,x_k)= = \frac{1}{(2\pi \sigma^2)^{k/2}}e^{-(x_1^2+x_2^2+ ... + x_k^2)/2\sigma^2}

Ejemplo: Proceso Binomial de conteo

Referencia: León García E9.7 pdf/p.493

Sea Xn una secuencia de una variable aleatoria independiente e identicamente distribuida, tipo Bernoulli con p=1/2. Sea Sn el número de 1’s en los primeros n intentos:

Sn = X1 + X2 + … + Xn para n=0,1,…

Sn es una función de n valores enteros crecientes que aumenta en valores unitarios siguiendo intervalos de tiempo aleatorios.


Instrucciones en Python

para Distribuciones conjuntas de muestras en el tiempo

# Realizaciones de un proceso aleatorio
# León-García Fig 9.1
# propuesta: edelros@espol.edu.ec
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# INGRESO
n = 50 # muestras
A = 10 # amplitud
k = 10 # una muestra k<n

# PROCEDIMIENTO
t = np.arange(0,n,1)
# genera variables aleatorias continuas uniformes
x1 = stats.uniform.rvs(loc=-A, scale=2*A ,size=n)
x2 = stats.uniform.rvs(loc=-A, scale=2*A ,size=n)
x3 = stats.uniform.rvs(loc=-A, scale=2*A ,size=n)

# SALIDA
print('t = ',k)
print('x1['+str(k)+']: ', x1[k])
print('x2['+str(k)+']: ', x2[k])
print('x3['+str(k)+']: ', x3[k])

# GRAFICAS
plt.suptitle('Realizaciones')

# grafica X1
plt.subplot(311)
plt.plot(t,x1)
plt.axvline(10)
plt.ylabel('x1')
plt.margins(0.05)

# grafica X2
plt.subplot(312)
plt.plot(t,x2)
plt.axvline(10)
plt.ylabel('x2')
plt.margins(0.05)

# grafica X3
plt.subplot(313)
plt.plot(t,x3)
plt.axvline(10)
plt.ylabel('x3')
plt.margins(0.05)

plt.show()

Referencia: León-García 9.1 pdf/p.492

Procesos Aleatorios

Un proceso aleatorio o proceso estocástico es una familia de variables aleatorias.

Por ejemplo, al enviar una secuencia de bits sobre un canal inalámbrico, no existe un grupo predeterminado de bits a transmitir, que para modelar se usa una secuencia infinita de variables aleatorias.

Tres realizaciones de X1, X2, … se obtienen como:

Instrucciones en Python

# secuencia de bits (trama)
# propuesta: edelros@espol.edu.ec
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# ingreso
n = 25 
p = 0.5

# PROCEDIMIENTO
# indice k
k  = np.arange(1, n+1)

# genera muestras de variable aleatoria con bernoulli
x1 = stats.bernoulli.rvs(p, size=n)
x2 = stats.bernoulli.rvs(p, size=n)
x3 = stats.bernoulli.rvs(p, size=n)

# SALIDA
plt.suptitle('bernoulli rango hasta n='+str(n))

# grafica X1
plt.subplot(311)
plt.stem(k,x1)
plt.ylabel('x1')
plt.margins(0.05)

# grafica X2
plt.subplot(312)
plt.stem(k,x2)
plt.ylabel('x2')
plt.margins(0.05)

# grafica X3
plt.subplot(313)
plt.stem(k,x3)
plt.ylabel('x3')
plt.margins(0.05)

plt.xlabel('k')
plt.show()

Procesos discretos en el tiempo

Un proceso aleatorio discreto en el tiempo es una familia de variables aleatorias {Xn}, donde a partir de n se define en un subgrupo de enteros.

Por ejemplo:

{Xn, n=1, 2, …}

{Xn, n=0, 1, 2, …}

{Xn, n=0, ± 1 , ± 2 …}

Recordando que las variables aleatorias son funciones definidas en un espacio muestral S, se puede pensar en Xn(ω) en dos formas:

    • Para n fijos, Xn(ω) es función de ω y por lo tanto una variable aleatoria.
    • Para ω fija, se obtiene una secuencia de números X1(ω), X2(ω), X3(ω), … . Secuencia que se denomina una realización, camino muestral, o función muestral del proceso aleatorio.

Ejemplo: Envío de bits sobre un canal con ruido

Referencia: Gubner 10.1 pdf/p.383

Enviar una secuencia de bits sobre un canal con ruido , los bits se invierten de forma independiente con probabilidad p.

Sea:

        • Xn(ω)=1 si se invierte el n-ésimo bit y
        • Xn(ω)=0 de otra forma.

entonces {Xn(ω), n= 1, 2, …} es una secuencia Bernoulli(p) i.i.d .

Tres realizaciones del ruido se reprerentan en la gráfica del ejercicio anterior. Sin embargo, el resultado de la señal Xn afectada por el Ruidon como se vería en el receptor se muestra a continuación.

# Ejercicio: Envío de bits sobre un canal con ruido
# Gubner 10.1 
# propuesta: edelros@espol.edu.ec
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# INGRESO
n = 25 
pcanal = 0.5
p = 0.2 # error o inversión de bit

# PROCEDIMIENTO
# muestras k
k  = np.arange(1, n+1)

# transmisor
x     = stats.bernoulli.rvs(pcanal, size=n)
# ruido del canal
ruido = stats.bernoulli.rvs(p, size=n)

# En el receptor
receptor = np.zeros(len(x), dtype = int)
for i in range(0,len(x)):
    if (ruido[i] == 0):
        receptor[i] = x[i]
    if (ruido[i] == 1):
        # invierte el bit
        if (x[i] == 1):
            receptor[i] = 0
        if (x[i] == 0):
            receptor[i] = 1

# SALIDA
plt.suptitle('Bernoulli rango hasta n='+str(n))

# trama de bits en transmisor
plt.subplot(311)
plt.stem(k,x)
plt.ylabel('x')
plt.margins(0.05)

# ruido del canal
plt.subplot(312)
plt.stem(k,ruido,markerfmt='or')
plt.ylabel('ruido')
plt.margins(0.05)

# Señal recibida en receptor
plt.subplot(313)
plt.stem(k,receptor)
plt.ylabel('receptor')
plt.margins(0.05)

plt.xlabel('k')
plt.show()

Procesos contínuos en el tiempo

Un proceso aleatorio contínuo en el tiempo es una familia de variables aleatorias {Xt} donde t esta definido en un intervalo de tiempo.

{Xt, t ≥ 0}
{Xt, 0 ≤ t ≤ T}
{Xt, -∞ ≤ t ≤ ∞}

Ejemplo: Portadora con fase aleatoria

Referencia: Gubner 10.5 pdf/p.386

En radio comunicación, una señal portadora se modela como una sinusoide con fase aleatoria. La razón para usar una fase aleatoria es que en receptor no se conoce cuando se encendió el transmisor o la distancia entre el transmisor y receptor, que son factores que afectan a la fase.

El modelo matemático para éste caso es el proceso aleatorio contínuo en el tiempo, definido por:

xt = cos(2πft + θ)

donde f es la frecuencia de la portadora y θ es una variable aleatoria uniforme [-π, π].

Tres realizaciones del proceso que dan tres valrores dirferenctes de θ y su efecto en la portadora se obtienen como:

# Gubner 10.5 Portadora con fase aleatoria
# propuesta: edelros@espol.edu.ec
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# ingreso
n = 5
f = 1

# PROCEDIMIENTO
# muestras ti
t = np.arange(0,n,0.1)

# genera muestras aleatorias con f: uniforme
theta = stats.uniform.rvs(loc=-np.pi, scale=2*np.pi ,size=3)

# selales desfasadas
xt0 = np.cos(2*np.pi*f*t + theta[0])
xt1 = np.cos(2*np.pi*f*t + theta[1])
xt2 = np.cos(2*np.pi*f*t + theta[2])

# SALIDA
print('theta: ',theta)

# grafica
plt.suptitle('Portadora')
# grafica x0
plt.subplot(311)
plt.plot(t,xt0)
plt.ylabel('x0')
plt.margins(0.05)

# grafica x1
plt.subplot(312)
plt.plot(t,xt1)
plt.ylabel('x1')
plt.margins(0.05)

# grafica x2
plt.subplot(313)
plt.plot(t,xt2)
plt.ylabel('x2')
plt.margins(0.05)

plt.xlabel('k')
plt.show()

Referencia: Gubner 10 pdf/p.383, León-García 9.1 pdf/p.488

2. Valor Esperado E[x] a partir de pmf

Referencia: León-García p.104, Gubner p.80,

Para describir el comportamiento de una variable aleatoria discreta a partir de su  funciones de distribución de probabilidad (pmf, probability mass function), para simplificar en un solo valor, se usa el valor esperado o media.

El valor esperado o media de una variable aleatoria discreta X se define como:

m_x = E[X] = \sum\limits_{x \in S_x} x p_x(x) = = \sum\limits_{k} x_k p_x(x_k)

El valor esperado E[X] está definido si la suma anterior absolutamente converge , es decir:

E[|X|] = \sum\limits_{k} |x_k| p_x(x_k) < \infty

Ejemplo

De repetir un experimento 150 veces, se obtienen dos variables aleatorias.

  • La variable Y tiene valores alrededor de 0,
  • mientras que la variable X tiene valores alrededor de 6 .
  • También observe que X tiene mayor variación que Y.

Siendo px(x) la función de distribución de probabilidad de los puntos x1, x2, … , entonces E[x] representa el centro de masa de la distribución.

Ejemplo: Media de una variable aleatoria tipo Bernoulli

(Ejemplo 3.11) Encuentre el valor de la variable aleatoria IA:

E[I_A] = 0p_i(0) + 1p_1(1) = p

donde p es la probabilidad de éxito de una prueba Bernoulli.

Ejemplo: Tres lanzamientos de una moneda y la variable aleatoria Binomial

(Ejemplo 3.12)Sea X el número de caras en tres lanzamientos de una moneda, Encuentre E[X]

E[X] = \sum \limits_{k=0}^{3} k p_x(k)

las probabilidades de que salgan 0 caras es 1/8, 1 cara es 3/8, 2 caras 3/8 y 3 caras 1/8, resultados obtenidos en el ejemplo 3.5 del libro

= 0 \big( \frac{1}{8} \big) + 1 \big(\frac{3}{8} \big) + 2\big(\frac{3}{8} \big) + 3\big(\frac{1}{8} \big) = \frac{12}{8} =1.5

Ejemplo: Media de una variable aleatoria uniforme

Se conoce que px(j) = 1/M, para j=0, … , M-1, entonces:

E[X] = \sum \limits_{k=0}^{M-1} k \frac{1}{M} =\frac{1}{M}[ { 0 + 1 + 2 + ... + M-1}] = \frac{(M-1)M}{2M} = \frac{M-1}{2}

El término de «valor esperado» no quiere decir que esperamos observar E[X] cuando se ejecuta un experimento que genera X.

Por ejemplo, el valor esperado de un intento Bernoulli es p, pero sus resultados siempre son 0 ó 1.

E[X] corresponde al «promedio de X» en un gran número de observaciones de X.

El promedio aritmético o media muestral de las observaciones cuando el número de muestras n tiende a ser grande converge al valor esperado:

\langle X\rangle_n = \sum\limits_{k} x_k f_k(n) \rightarrow \rightarrow \sum\limits_{k} x_k p_x (x_k) = E[x]

Instrucciones en Python

Para generar valores aleatorios con media y escala conocida se puede usar la función stats.norm.rvs(media, escala, muestras, obteniendo algunos valores como:

px: 
[-1  0 -1 -2  3  0 -1  0  0  0  1  0  0  0  0  0  1  1 -1  0  0 -1  0  0
  0  0  1  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0
...]
py: 
[ 8  4  6  6  2  5  2  3  6  6  7  6  4  5  2  6  4  4  6  7  7  4  4  5
  5  4  4  3  2  9  5  8  5  6  7  2  4  1  1  6  5  7  6  7  4  7  9  5
...]
# Valor Esperado E[x] a partir de pmf
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# INGRESO
n = 150

media_x = 0
escala_x = 1

media_y = 6
escala_y = 2

# PROCEDIMIENTO
px = stats.norm.rvs(media_x,escala_x,size=n)
px = np.array(px,dtype=int)
py = stats.norm.rvs(media_y,escala_y,size=n)
py = np.array(py,dtype=int)

# SALIDA
print('px: ')
print(px)
print('py: ')
print(py)
# grafica
plt.title(' aleatorios X y Y')
plt.plot(px, 'o-', label='x')
plt.plot(py, '*-', label='y')
plt.xlabel('intentos')
plt.axhline(media_x)
plt.axhline(media_y)
plt.legend()
plt.show()

Poisson pmf

Referencia: Gubner p.70, León-García /p.116

Variable aleatoria Poisson

Una variable aleatoria X se dice que tiene función de probabilidad de masa pmf con parámetro λ>0, definida por:

P_x(k) = \frac {\lambda^k e^{-\lambda}}{k!} k=0,1,2,...

Ejemplo

El número de visitas a un sitio de Internet muy popular en intervalos de 1 minuto se describe con una variable aleatoria tipo Poisson.

Encuentre la probabilidad que se de al menos una visita entre las 3:00 am y 3:01 am si λ=2. Luego encuentre la probabilidad que se realicen al menos 2 visitas durante el mismo intervalo de tiempo.

Solución: Sea X el número de visitas. Entonces:

P(X\geq 1) = 1 - P(X=0) = 1-e^{-\lambda} = 1- e^{-2} \approx 0.865

De forma similar:

P(X\geq 2) = 1 - P(X=0) - P(X=1) = 1-e^{-\lambda} - \lambda e^{-\lambda} = 1-e^{-\lambda}(1+\lambda) = 1-e^{-2}(1+2) = 0.594
# Distribución Poisson con valor lambda
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# INGRESO
n = 10
lambd = 2
media = 0

# PROCEDIMIENTO
k  = np.arange(media-1, n+1)
px = stats.poisson.pmf(k,lambd)

# SALIDA
print('k: ', k)
print('p(k):', px)

# grafica
plt.title('Poisson rango hasta n='+str(n))
plt.stem(k,px)
plt.xlabel('k')
plt.margins(0.1)
plt.show()
k:    [-1  0  1  2  3  4  5  6  7  8  9 10]
p(k): [ 0.0000000e+00   1.3533528e-01   2.7067056e-01
        2.7067056e-01   1.8044704e-01   9.0223522e-02
        3.6089408e-02   1.2029803e-02   3.4370865e-03
        8.5927164e-04   1.9094925e-04   3.8189850e-05]

Geométrica pmf

Referencia: Gubner p.74, León-García p.102

Variable aleatoria Geométrica

Para 0 ≤ p < 1, se define como una variable aleatoria geométrica1 que inicia en 1 o estandarizada como:

P(X=k) = (1-p)^{k-1}p k= 1,2,...

Este tipo de variable se usa cuando se pregunta cuántos intentos se requieren de un experimento hasta que se obtenga un resultado específico.

ejemplo de una distribución geométrica1(p), p=0.3

# Distribución geométrica con valor p
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# INGRESO
n = 9 
p = 0.3
media = 0

# PROCEDIMIENTO
k  = np.arange(media-1, n+1)
px = stats.geom.pmf(k,p,media)

# SALIDA
print('k: ', k)
print('p(k):', px)

# grafica
plt.title('Uniforme rango hasta n='+str(n))
plt.stem(k,px)
plt.xlabel('k')
plt.margins(0.1)
plt.show()
k:    [-1  0  1  2  3  4  5  6  7  8  9]
p(k): [ 0.         0.          0.3       0.21
        0.147      0.1029      0.07203   0.050421
        0.0352947  0.02470629  0.0172944 ]

Ejemplo

León-García 3.9 p.102
Sea X el número de veces que un mensaje tienen que ser transmitido hasta que sea recibido correctamente en el receptor. Encuentre la pmf de X y la probabilidad que X sea un número par.

X es un variable aleatoria discreta, que toma valores de Sx ={1,2,3,…}. El Evento {X=k} sucede si el experimento principal encuentra las K-1 transmisiones consecutivas con error o fallas seguidas de una sin error o éxito.

p_x(k)= P[X=k] = P[00...01] = (1-p)^{k-1}p = q^{k-1}p \text{para k=1,2,...}

Se puede indicar que X tiene una distribución geométrica.

En la ecuación podemos ver que la suma es 1.

P[\text{X es par}] = \sum\limits_{k=1}^{\infty} p_x(2k) = p\sum\limits_{k=1}^{\infty} q^{2k-1} =p\frac{1}{1-1^2} = \frac{1}{1+q}

Ejemplo: Gubner E2.12 p.74.
Cuando una computadora lee un dato , lo hace primero en la memoria intermedia o caché, en caso de no encontrarla, procede a la memoria RAM.
Lectura Memoria Cache o RAM

El dato se encuentra en el cache con probabilidad p.

Encuentre la probabilidad que la primera vez que no se encuentra el dato en la memoria intermedia o caché ocurre en la k-ésisma lectura.

Suponga que la presencia del dato en el caché es independiente en cada lectura.

Solución: Sea T=k si la primera vez que no esta un dato en el cache ocurre en la k-ésima lectura.

Para i=1,2,…,

  • sea Xi =1 si la en la i-ésima lectura el dato está en caché
  • Xi=0 en otro caso

Entonces P( Xi=1) = p y p( Xi=0)=1-p.

La buscado es la primera lectura en que el cache no contiene el dato, es decir la k-ésima lectura, las primeras k-1 tenían el dato en cache.

En términos de eventos:

\{T=k\} = = \{X_1=1\}\cap ...\cap \{ X_{k-1}=1\} \cap \{X_k=0\}

dado que Xi es independiente, y tomando las probabilidades en ambos lados de la ecuación:

P(T=k) = = P(\{X_1=1\}\cap ...\cap \{ X_{k-1}=1\} \cap \{X_k=0\} ) = P(X_1=1) ...P(X_{k-1}=1).P(X_k=0) = p^{k-1}(1-p)

Ejemplo

Gubner E2.13 p.75
Continuando con el ejercicio anterior, ¿Cuál es la probabilidad que la primera lectura fallida en caché sea después de la tercera lectura de memoria?

Solución: Se requiere encontrar:

P(T>3) = \sum\limits_{k=4}^{\infty} P(T=k)

Sin embargo dado que P(T=k) =0 para k≤0, se puede reescirbir en una serie finita:

P(T>3) = 1-P(T \leq 3) = \sum\limits_{k=1}^{3} P(T=k) = 1-(1-p)[1+p+p^2]

Bernoulli pmf

Referencia: Gubner 2.2 p.68, León-García E3.7 p.101

Variable aleatoria discreta Bernoulli

En un experimento enfocado en situación de «éxito» o «fracaso», por ejemplo un equipo que funciona o no. La variable aleatoria Bernoulli IA es igual a 1 si ocurre un éxito en el grupo A y valor cero en otro caso. La función indicador es por ejemplo:

I_A(\omega) = \begin{cases} 0 && ,\omega\text{ no está en A} \\ 1 && , \omega\text{ está en A} \end{cases}

(Revisar modulación Delta-Sigma y la función np.sign(ω))

la distribución de probabilidad pmf toma solo dos valores:

p(k)= \begin{cases} 1-p && , k = 0 \\p &&, k = 1 \end{cases}

Note que p0(0) + p1(1) =1

# Distribución bernoulli con valor p
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as st

# ingreso
n = 3 
p = 0.7
media = 0

# PROCEDIMIENTO
k  = np.arange(media-1, n+1)
px = st.bernoulli.pmf(k,p,media)

# SALIDA
print('k: ', k)
print('p(k):', px)

# grafica
plt.title('bernoulli rango hasta n='+str(n))
plt.stem(k,px)
plt.margins(0.1)
plt.show()
k:  [-1  0  1  2  3]
p(k): [ 0.   0.3  0.7  0.   0. ]


Ejemplo

Las variables aleatorias Bernoulli son buenas para modelar el resultado de un experimento con dos posibles resultados, representados numéricamente como 0 y 1.

  • lanzamiento de una moneda
  • la prueba de un bloque de un disco de computadora bueno o defectuoso
  • si un radar detecta o no una aeronave furtiva
  • si un paquete de Internet se descarta debido a la congestión de un router

Uniforme pmf

Referencia: Gubner 2.2 p.68, León-García E3.7 p.101

Variable aleatoria discreta uniforme

Cuando los resultados de un experimento son igualmente probables o totalmente aleatorios, el modelo se realiza con una variable aleatoria uniforme.

X está distribuida uniformemente si:

P(X=k) = \frac{1}{n} k=1,...,n.

la distribución de probabilidad pmf toma solo dos valores:

p(k)= \begin{cases} \frac{1}{n}, & \text{k=1,...,n} \\0, & \text{en otro caso} \end{cases}

Por ejemplo: el caso de un dado de 6 caras

# Distribución bernoulli con valor p y rango (-1 a 3)
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# INGRESO
n    = 6 
low  = 1
high = low+n

# PROCEDIMIENTO
k = np.arange(low-2, n+2)
p = stats.randint.pmf(k,low,high)

# SALIDA
print('k: ', k)
print('p(k):', p)

# grafica
plt.title('Uniforme rango hasta n='+str(n))
plt.stem(k,p)
plt.margins(0.1)
plt.show()
k:    [-1  0  1  2  3  4  5  6  7]
p(k): [ 0.          0.          0.16666667
        0.16666667  0.16666667  0.16666667
        0.16666667  0.16666667  0.        ]

Ejemplo

Gubner 2.6. Diez teléfonos inalámbricos en la vecindad,
Leon-García 3.7. Generador de números aleatorios

Diez vecinos tienen cada uno un teléfono inalámbrico de la misma marca y modelo. Suponga que el numero de personas que usa el teléfono inalámbrico al mismo tiempo es totalmente aleatorio. Encuentre la probabilidad que más de la mitad de lso teléfonos se encuentran en uso al mismo tiempo.

Para modelar, el número de teléfonos inalámbricos en uso al mismo tiempo tiene una variable aleatoria discreta uniforme X, que puede tomar valores 0, … , 19. Se incluye el cero al considerar que no hay teléfonos en uso.

P(X>5)= \sum\limits_{i=6}^{10} p_x(i) = \sum\limits_{i=6}^{10} \frac{1}{11}=\frac{5}{11}
# Distribución bernoulli con valor p y rango (-1 a 3)
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats

# INGRESO
n    = 11 
low  = 0
high = low+n

# PROCEDIMIENTO
k = np.arange(low-2, high+2)
p = stats.randint.pmf(k,low,high)

# mas de la mitad en uso
desde  = n//2 +1
hasta  = n
pdesde = np.sum(p[desde:hasta])

# SALIDA
print('k: ', k)
print('p(k):', p)
print('mas de la mitad p[X>='+str(desde)+']: ',pdesde)

# grafica
plt.title('Uniforme rango hasta n='+str(n))
plt.stem(k,p)
plt.margins(0.1)
plt.show()
k:    [-2 -1  0  1  2  3  4  5  6  7  8  9 10 11 12]
p(k): [ 0.          0.          0.09090909
        0.09090909  0.09090909  0.09090909
        0.09090909  0.09090909  0.09090909
        0.09090909  0.09090909  0.09090909
        0.09090909  0.          0.        ]
mas de la mitad p[X>=6]:  0.454545454545

Distribución de probabilidad de masa pmf

Referencia: Leon-García p.99, Gubner p.67

Variables Aleatorias discretas – Distribución de Probabilidad PMF

Una variable aleatoria discreta X se define como una variable que toma valores de un espacio muestral

Sx = {x1, x2, x3, …}.

Una variable aleatoria discreta finita tiene un espacio muestral finito, es decir:

Sx = {x1, x2, x3, …, xn}.

Si el interes es encontrar las probabilidades de un evento

Ak = {w: X(w) = xk}

La Distribución de probabilidad (Probability mass function pmf) de una variable aleatoria discreta X se define como:

px = P[X = x] = P{w: X(w) = x} para un x real

La distribución de probabilidad (pmf) de px(x) satisface las tres propiedades que se requieren para calcular las probabilidades de los eventos de una variable discreta X:

1. p_x(x) \geq 0 \text{, para todo x}

2. \sum \limits_{x\in S_x}p_x(x) = \sum \limits_{k}p_x(x_k) = \sum \limits_{k}P(A_k) = 1

3. P[X \in B] = \sum \limits_{x\in B} p_x(x) \text{, donde } B \subset S_x

Ejemplo

Gubner 2.5 número de caras en tres lanzamientos de una moneda

Encuentre la distribución de probabilidad (pmf) de X, suponiendo que los lados de la moneda son igualmente probables.

Solución: Del ejemplo desarrollado antes, se obtuvo que:

Sx:  [0 1 2 3]
evento, X(evento)
[0 0 0] 3
[0 0 1] 2
[0 1 0] 2
[0 1 1] 1
[1 0 0] 2
[1 0 1] 1
[1 1 0] 1
[1 1 1] 0

Para calcular px(0) = P(X=0), e indentificando los resultados w que pertenecen al evento {w:X(w)=0} ={111}.

Entonces :

px(0) = P(X=0) = P({111}) = |{111}|/|S| = 1/8

siguiendo el mismo procedimiento:

px(1) = P(X=1) = P({011, 101, 110}) = 3/8

px(2) = P(X=2) = P({001,010,001}) = 3/8

px(3) = P(X=3) = P({000}) = 1/8

lo que permite graficar la distribución de probabilidad

import numpy as np
import matplotlib.pyplot as plt

# INGRESO
# del ejercicio de tres lanzamientos de moneda
X = [3,2,2,1,2,1,1,0]

# PROCEDIMIENTO
[unicos, cuenta] = np.unique(X, return_counts=True)
frelativa = cuenta/len(X)

# SALIDA
print('x:  ', unicos)
print('px: ', frelativa)

# grafica
plt.stem(unicos,frelativa)
plt.title('distribución de probabilidad pmf')
plt.xlabel('x')
plt.ylabel('px(x)')
plt.margins(0.1)
plt.show()
x:   [0 1 2 3]
px:  [ 0.125  0.375  0.375  0.125]

suponga ahora que la probabilidad de salida de una cara es p, y que la cara contraria es (1-p), con lo que se procederia como:

px(0) = P(X=0) = P({111}) = (1-p)3

px(1) = P(X=1) = P({011, 101, 110}) = 3(1-p)2p

px(2) = P(X=2) = P({001,010,001}) = 3(1-p)p2

px(3) = P(X=3) = P({000}) = p3


Distribución de probabilidad del juego de apuestas

León-García E3.6 p.101

Un jugador recibe $1 si el número de caras en tres lanzamientos de una moneda es 2, $8 si el número de caras es 3, pero nada en otro caso. Encuentre la pmf de lo que gana Y.

siguiendo con el ejemplo anterior

dinero = np.arange(8+1)
pgana  = np.zeros(len(dinero),dtype=float)
pgana[8] = frelativa[3]
pgana[1] = frelativa[2]
pgana[0] = np.sum(frelativa[0:2])

# SALIDA
print('Y:  ', dinero)
print('py: ', pgana)

# grafica
plt.stem(dinero,pgana)
plt.title('distribución de probabilidad pmf')
plt.xlabel('x')
plt.ylabel('px(x)')
plt.margins(0.1)
plt.show()
Y:   [ 0 1 2 3 4 5 6 7 8 ]
py:  [ 0.5  0.375  0.  0.  0.  0.  0.  0.  0.125]

Variables Aleatorias Discretas

Referencia: Leon-García p.97, Gubner p.64

Variables Aleatorias

Una variable aleatoria se define como una función que asigna un valor numérico real X(ω) a cada resultado del experimento en un espacio muestral.

Una función es una regla para asignar un valor numérico a cada elemento de un grupo.

La espacio muestral S es el dominio de la variable aleatoria


Ejemplo

Lanzamiento de una moneda

León-García 3.1., Gubner 2.1,

Una moneda se lanza tres veces y se anota la secuencia de caras (0) o sello(1). El espacio muestral para el experimento es

S={000, 001, 010, 011, 100, 101,110, 111}

Sea X el número de caras en tres lanzamientos, X asigna a cada resultado ω en S un número del grupo SX={0,1,2,3}.

Encuentre los valores para X(ω)

# número de caras en lanzamiento de monedas
import numpy as np
import itertools as iter

# INGRESO
posibles     = 2
lanzamientos = 3

# PROCEDIMIENTO
moneda = np.arange(posibles)
n = posibles**lanzamientos

# Espacio muestral de lanzamientos
resultados = list(iter.product(moneda, repeat=lanzamientos))
S = np.asarray(resultados)

# SALIDA - Observación intermedia
print (S)
[[0 0 0]
 [0 0 1]
 [0 1 0]
 [0 1 1]
 [1 0 0]
 [1 0 1]
 [1 1 0]
 [1 1 1]]
# número de caras en cada lanzamiento 
cuenta = []
for experimento in S:
    caras = lanzamientos - np.sum(experimento)
    cuenta.append(caras)
Sx = np.unique(cuenta)

# SALIDA - Observación intermedia
print('Sx: ',Sx)
print('evento, X(evento)')
for i in range(0,n):
    print(S[i],cuenta[i])
Sx:  [0 1 2 3]
evento, X(evento)
[0 0 0] 3
[0 0 1] 2
[0 1 0] 2
[0 1 1] 1
[1 0 0] 2
[1 0 1] 1
[1 1 0] 1
[1 1 1] 0


Ref: Fig 2.2 Gubner


Ejemplo

León-García 3.2. Apuestas

Un jugador paga $1.50 para poder participar en un juego: Se lanza una moneda tres veces y se cuenta el número de caras X. El jugador recibe $1 si X=2 y $8 si X=3, $0 en los otros casos.

Sea Y el premio del jugador, Y es una función de la variable X con resultados relacionados con el espacio muestral del experimento aleatorio (juego)

Y = np.zeros(n, dtype=float)
for i in range(0,n):
    if (cuenta[i]==2):
        Y[i]=1
    if (cuenta[i]==3):
        Y[i]=8
Sy = np.unique(Y)

# SALIDA
print('Sy: ',Sy)
print('evento, X, Y')
for i in range(0,n):
    print(S[i],cuenta[i],Y[i])
Sy:  [ 0.  1.  8.]
evento, X, Y
[0 0 0] 3 8.0
[0 0 1] 2 1.0
[0 1 0] 2 1.0
[0 1 1] 1 0.0
[1 0 0] 2 1.0
[1 0 1] 1 0.0
[1 1 0] 1 0.0
[1 1 1] 0 0.0

Una función de una variable aleatoria, produce otra variable aleatoria.


Ejemplo

León-García 3.3. Apuestas lanzando una moneda
Sea X el número de caras en lel lanzamiento de una moneda.

Encuentre la probabilidad del evento {X=2}.

Encuentre la probabilidad que el jugador gane $8 en el ejemplo anterior.

X(ω)=2 si ω esta en {000,010,001}, por lo que:

P[X=2] = P[{000,010,001}] = P[{000}] + P[{010}] + P[{001}] = 3/8

El evento {Y=8} ocurre solo con el resultado cuando ω = [000], por lo que:

P[Y=8] = P[{000}] = 1/8