Professional Documents
Culture Documents
DANY TABAREZ
14 abril de 2011
Proyecto 1: Introducción a Procesos Estocásticos
Simulación de Muestreo
Investigue el espacio de probabilidades del lanzamiento de un dado de cuatro caras, donde cada una de sus
caras numeradas de 1 a 4 tiene igual probabilidad de aparecer.
1. Simular el lanzamiento del dado descrito n = 100 veces mediante el uso de la función rand.
2. Determinar la probabilidad que aparezca cada una de las caras del dado.
Haciendo los cálculos necesarios, determinando una frecuencia con respecto a cada una de las caras del dado
en resultado es:
Dado que el espacio S= { 1,2,3,4 } siendo estas las caras del dado
La probabilidad de cada evento en un habiente controlado seria la probabilidad de cada uno para la cantidad
1
de eventos, así la probabilidad de cada uno es c 1=c 2=c 3=c 4= =0.25
4
Si comparamos con la probabilidad simulada a 100 veces vemos todavía significativas variaciones con
respecto al valor teórico, por ejemplo en c3 la probabilidad es mas baja que las demás cuando debería ser
igual.
4. Repetir los pasos anteriores para n = 500; 1000; 50000 y 100000 veces.
Con n=500
con n=1000
n=50000
n=100000
5. Que se puede concluir de las actividades anteriores?
Como conclusión de la simulación podemos concluir que a pesar que la probabilidad sea diversa ante un
número mayor de veces que se repite el experimento podemos observar que la tendencia de cada probabilidad
se acerca mucho al valor del evento. Como es el caso del lanzamiento del dado 100000 que acerco dos de las
posibilidades a 0.2510 que es casi exacto con el valor analítico de 0.25.
Codigo:
function [] = MuestreoConRemplazo( )
clc end
%vars
c1=0; for i=1:4
c2=0; x(i)=length(find(n==i));
c3=0;
c4=0;
end
%define number of rolls
%show us bars graphs
rolls=500;
sprintf('grafico de barras lanzamientos: ')
sprintf('precione enter para mostrar...')
for i=1:rolls pause
n(i)=ceil(4*rand); bar(n)
Investigue el espacio de probabilidades del problema de seleccionar dos bolas de una urna conteniendo tres
bolas rojas y tres bolas verdes.
1. Simular la extracción de dos bolas de la urna descrita n = 100 veces mediante el uso de la
función randperm.
2. Determinar la probabilidad que aparezca una bola roja seguida de una bola verde.
4. Repetir los pasos anteriores para n = 500; 1000; 50000 y 100000 veces.
n=100
n=1000
n=50000
n=100000
5. Que se puede concluir de las actividades anteriores?
Como conclusión de la simulación podemos concluir que a pesar que la probabilidad sea diversa ante un
número mayor de veces que se repite el experimento podemos observar que la tendencia de cada
probabilidad se acerca mucho al valor del evento. Se observa claramente que en el evento n=50000 ya se
tenía la aproximación deseada.
Codigo:
function [ ] = MuestreoSinRemplazo( )
clc
extractions=100;
RG=0;
GR=0;
RR=0;
GG=0;
for i=1:extractions
x=randperm(6);
if x(2)==4||x(2)==5||x(2)==6%Green
RG=RG+1;
frecu(i)=1;
else %RED
RR=RR+1;
frecu(i)=2;
end
end
if x(2)==1||x(2)==2||x(2)==3%Red
GR=GR+1;
frecu(i)=3;
else %Green
GG=GG+1;
frecu(i)=4;
end
end
end
%
for i=1:4
f(i)=length(find(frecu==i));
end
fprintf('\npresione enter para empezar...')
pause
bar(frecu);
fprintf('\nlas bolas han sido tomadas')
fprintf('\npresione enter para continuar...')
pause
bar(f)
fprintf('\nreacomodando casos: 1:RV 2.RR 3.VR 4.VV')
fprintf('\npresione enter para continuar...')
pause
explode=[1 0 0 0];
%pie3(f,{'RG','RR','GR','GG'})
pie3(f,explode)
end
Problemas Adicionales
Aplicando la teoría estudiada, calcular las soluciones analíticas a cada uno de los siguientes problemas.
En cada caso verificar las respuestas obtenidas mediante la correspondiente simulación en Octave 1 (o MatLab
R) para un número bastante grande de experimentos usando la metodología expuesta en la sección anterior.
Ustedes deben primero decidir si el problema es equivalente a un muestreo con o sin reemplazo.
1. Una moneda normal es lanzada cuatro veces. Cuál es la probabilidad de obtener dos caras" y
dos sellos" en cualquier orden?
Dice se considera S= { HHTT ,TTHH , HTHT , THTH , HTTH , THHT … } hasta16 posibilidades
Donde el evento E={HHTT , TTHH }
Subiendo a 500
CODIGO 1 – ADICIONALES
function [ ] =
Con 1000 Extra1Coin( )
clc
Con 50000
%define number of releases
releases=100000;
Con 100000 HHTT=0;
TTHH=0;
for i=1:releases
for i=1:4
Análisis en matlab:
end
Para este análisis se usó randperm para generar una supuesta
caja con los 10 elementos
clc
games=1000000;
Con n=1000000
winner=[1 2 3 4 5];
probblty=0;
for i=1:games
box=randperm(10);
La probabilidad que se de cualquiera de los lados del dado fprintf('Su boleto fue: ')
considerando que no tiene ningún arreglo winner
1 win=probblty/games;
E={ cara=4 }=
4 fprintf('\nSu probabilidad
Ya que son dos dados lanzados simultáneamente, la de ganar es: %f',win)
probabilidad de que ambos den la misma cara o cualquier winper=win*100;
cara es de fprintf('\nPorcentaje de
1 ganar con el numero es:
∗1 %f\n',winper)
4
p ( D1=D2=4 )= =0.0625
4
end
Simulación en matlab
for i=1:experience
Que ya es más cercano al valor teórico. %define number of rolls
for j=1:6
rolls=1;
die(j)=ceil(4*rand);
for end
i=1:3*rolls
d1=ceil(4*rand);
d2=ceil(4*rand);
for t=1:5
k=t+1;
if d1==4 && d2==4
c4=c4+1;
end if die(t) ==
end
die(k) && die(k)==4 &&
die(t)==4
fprintf('la probabilidad
4. Un dado de 4 lados es lanzado seis veces. Cuál es del evento es: ')
la probabilidad de lanzar dos 4's consecutivos?
(Esto es mucho más fácil simular que calcular a %fprintf('Hay dos
mano!) c4=c4/rolls
elementos iguales en %d y
%d\n',die(k), die(t));
c4=c4+1;
Suponiendo aunque el problema no menciona, que sean un
solo un par de 4s y exactamente solo dos de ellos aparecen end
consecutivamente break;
end
El espacio S del evento consiste en 4096 posibilidades end
Entre más pruebas se realice se
Ejemplo del lanzamiento se tuvo {4,4,2,4,4,3} no será
puede tener una mejor
tomado en cuenta como consecutivo y solo se contara como aproximación del evento.
end
una consecuencia.
A pesar de tenerprobabilidad
fprintf('la 3 lanzamientos se
Existen varias posibilidades del evento es: \n')
tuvo un alto porcentaje de
{ 4,4 , x , x , x , x }
probabilidad.
{ x , 4,4 , x , x , x } c4=c4/experience
{ x , x , 4,4 , x , x }
fprintf('el porcentaje del
{ x , x , x , 4,4 , x } evento es: %f %
{x , x , x , x , 4,4 } \n',c4*100)
Simulación Matlab
Con n=100000
Podemos concluir que el porcentaje real de que el evento se de en realidad es de 0.243 que es menor al
calculado en el cual se hizo una estimación y no todos los casos en si.
Probabilidad Condicional
Asistencia a Clases
El Director del Departamento preocupado por la pobre asistencia de estudiantes a clases, decide encargar un
estudio para investigar las posibles causas. En particular, el Director está interesado en saber si el horario de
las clases afecta la asistencia y si varía entre hombres y mujeres. Para ello se cuenta la asistencia a dos cursos
casi idénticos, uno llevado a cabo a las 9h00 y otro a las 10h00, y se encuentran los siguientes datos:
Ustedes pueden cargar los datos de estas dos matrices desde el archivo lab1 data.m y deben ser capaces de
responder las preguntas que siguen realizando cálculos directamente sobre estas matrices mediante técnicas de
vectorizacion. Usaremos la notación: M para el evento que un estudiante es hombre, F para el evento que un
estudiante es mujer, P para el evento que un estudiante está presente, y A para el evento que un estudiante está
ausente.
1. Para cada uno de los cursos, use los datos para encontrar las matrices que dan las
probabilidades conjuntas:
Mediante diagrama de árbol y la resolución del
teorema de la multiplicación que dice:
p ( M ∩ P )= p ( M |P )∗p (P)
O más fácil
p ( M ∩ P )= p ( P|M )∗p ( M )
2. Para cada uno de los cursos, encuentre dos vectores, uno conteniendo p(M) y p(F), y el otro
conteniendo p(P) y p(A).
1. Use las respuestas anteriores para establecer si, en cada una de los cursos, el género del
estudiante es un factor que afecta su asistencia a clases. Para ello debe determinarse si los
eventos M y F son independientes de los eventos P y A.
La independencia se muestra mediante el uso del
teorema
p ( M ∩ P) p(M ∩ A)
p (F ∩ P) p (F ∩ A)
p ( M ∩ P )= p ( M )∗p(P)
p ( M )∗p(P) p ( M )∗p( A)
p ( F )∗p ( P) p ( F )∗p (A )
Suponga que existen 2 monedas. Una de ellas es normal con probabilidad de obtener una \cara" o un
\sello" igual a 0.5. La segunda moneda está cargada: la function [ ] = CoinFinal(
probabilidad de obtener una \cara" es 0.6 y la )
probabilidad de obtener un \sello" 0.4. clc
EXP=[1 3;1 2]
prob(EXP)
Para este ejercicio se asumen eventos IDE(EXP)
H para Head(cara)
T para Tail(sello) EXP=[3 2;3 2]
FC para Fair coin (moneda sin peso) prob(EXP)
WC para wighted coin (moneda con peso) IDE(EXP)
Como vemos el evento uno es dependiente y el segundo evento es independiente ya que cumple le propiedad
de la independencia, pero como la segunda parte del experimento depende de la primera parte que si es
dependiente. Si demostramos cada uno de los eventos individuales es posible demostrarlo mediante el
programa en matlab.
3. Suponga que una de las monedas es lanzada 2n veces. Escriba una función en Octave para
calcular la probabilidad de obtener “caras" y n “sellos", dado que la moneda es normal y dado
que la moneda está cargada (este debe ser un argumento de la función). La función debe
operar para cualquier valor de n.
function [] = ProCoin(N,tipoMoneda)
Se debe escoger el valor de N lanzamientos
tipoMoneda: 1 para moneda limpia, 2 para cargada function [ ] =
CoinFinal3( )
Probabilidades de moneda limpia: %ProCoin(N lanzamientos
tipo int,1 para moneda
n=100 limpia 2 para cargada)
PRO = ProCoin(100,2);
end
0.4900 0.5100
n=500 function [] =
PRO = ProCoin(N,tipoMoneda)
H=0;
0.5240 0.4760 T=0;
for i=1:2*N
n=1000
if(tipoMoneda==1)
PRO =
m=ceil(rand()*2);
if(m==1)
0.4900 0.5100
H=H+1;
n=50000 else
PRO = T=T+1;
end
0.5002 0.4998 else
n=100000 m=rand();
PRO = if m<=0.6
H=H+1;
0.5007 0.4993 else
T=T+1;
En cuanto a una moneda limpia el valor si corresponde al end
teorico ya muy aproximado en el que n=100000 end
end
2.- Moneda Cargada
Probabilidades de moneda limpia: PRO=[H T];
PRO=PRO/(2*N);
n=100 PRO
PRO = bar(PRO)
end
0.5950 0.4050
n=500
PRO =
0.5860 0.4140
n=1000
PRO =
0.5980 0.4020
n=50000
PRO =
0.6025 0.3975
n=100000
PRO =
function [ ] =
1.6013 0.3987 CoinFinal4( )
%ProCoin(N lanzamientos
tipo int,1 para moneda
limpia 2 para cargada)
clc
AA=ProCoin(40);
AA
end
function [PRO] =
ProCoin(N)
H=0;
T=0;
C=0;
for i=1:2*N
tipoMoneda=ceil(rand()*2);
if(tipoMoneda==1)
m=ceil(rand()*2);
if(m==1)
H=H+1;
C(i)=1;
else
T=T+1;
C(i)=2;
end
else
m=rand();
if m<=0.6
H=H+1;
C(i)=1;
else
T=T+1;
C(i)=2;
end
end
end
for i=1:2
f(i)=length(find(C==i));
end
PROX=[H T];
PRO=PROX/(2*N);
bar(C)
bar(f)
4. Una moneda fue seleccionada aleatoriamente. end
Use la función anterior para calcular la
probabilidad de que la moneda seleccionada este
cargada, dado que n lanzamientos fueron “cara"
y n lanzamientos fueron “sello”. Grafique el
valor de esta probabilidad para n entre 0 y 40.
Explique la forma de la curva.
Dado una serie de lanzamientos al azar y sabiendo que estos fueron escogidos aleatoriamente. Podemos
determinar la incidencia mayoritaria de caras así que de un grupo de lanzamientos y con la referencia de la
parte 1 del ejercicio determinamos que del total de caras que se pueden obtener el 75% provenían de la bola
cargada, en este caso de 80 lanzamientos ya que es 40*N, 44 son caras y de las 44, 33 provienen de la moneda
cargada. Por lo tanto existe la gran probabilidad que de los lanzamientos al menos de cara vinieron de la
moneda cargada y al ser la mayoría en la mayor aumentan las posibilidades
5. Ahora suponga que existen 2 monedas cargadas (idénticas a la anterior) y una moneda normal.
Una moneda es seleccionada aleatoriamente. Dado el mismo escenario de que son obtenidas
n \caras" y n \sellos", modifique los cálculos de la pregunta anterior para obtener la
probabilidad de que la moneda seleccionada este cargada. Cuál es el valor más pequeño de n
para el cual es más probable que la moneda seleccionada sea la normal?
function [ ] =
CoinFinal5( )
%ProCoin(N lanzamientos
tipo int,1 para moneda
limpia 2 para cargada)
clc
AA=ProCoin(40);
AA
end
function [PRO] =
ProCoin(N)
H=0;
T=0;
C=0;
for i=1:2*N
tipoMoneda=ceil(rand()*3);
if(tipoMoneda==1)
m=ceil(rand()*2);
if(m==1)
H=H+1;
C(i)=1;
Al igual que en el caso anterior podemos determinar con else
certeza que el número de caras obtenidas en experimento es T=T+1;
relativamente grande con respecto al número de sellos, de la C(i)=2;
determinación de la probabilidad vemos que existe un 0.60 end
de probabilidad total de caras de las cuales al ser 3 las end
if(tipoMoneda==2)
monedas aleatorias. La probabilidad de cara es de
m=rand();
1 if m<=0.6
∗3
3 2 H=H+1;
P ( H )= ∗2=
5 5 C(i)=1;
Que corresponden a las monedas arregladas. else
Por lo tanto la probabilidad de que estas provengan de la T=T+1;
moneda limpia es muy baja. C(i)=2;
end
end
if(tipoMoneda==3)
m=rand();
if m<=0.6
H=H+1;
C(i)=1;
else
T=T+1;
C(i)=2;
end
end
end
for i=1:2
f(i)=length(find(C==i));
end
PROX=[H T];
PRO=PROX/(2*N);
bar(C)