File contents
Proba (m), clase prctica del 25/04/2013
Instrucciones de R para generar variables aleatorias
#item a)
runif(1) #genera una v.a. uniforme en el (0,1)
uu<-runif(1) #genera otra v.a. uniforme en el (0,1) y la guarda con el nombre uu
xx<-(-1/4)*log(1-uu) #xx deberia tener dist E(4)
#item b)
uu<-runif(50)
xx<-(-1/4)*log(1-uu) #observar que R actua vectorialmente
# histograma
hist(xx)
help(hist) #muestra el help del histograma
aa<-hist(xx) #guarda el resultado del grafico en un "data frame"
aa
hist(xx,probability=T) #lo estandariza para que el area total sea 1
# superponemos la densidad exponencial con lambda = 4
ejex<-seq(from = 0,to = 1.2, by = 0.01)
lines(ejex,dexp(ejex,4), col = 4)
#ahora con 500 observaciones
uu<-runif(500)
xx<-(-1/4)*log(1-uu)
hist(xx,probability=T)
ejex<-seq(from=0,to=2.5,by=0.01)
lines(ejex,dexp(ejex,4),col=4)
# el R posee una instruccion que genera a las v.a. con distrib
# exponencial directamente: rexp
x1<-rexp(500)
hist(x1,probability=T)
#otras densidades, por ejemplo la N(0,1)
uu<-runif(500)
xx<-qnorm(uu)
hist(xx, probability=T)
ejex<-seq(from=-3.5,to=3.5,by=0.01)
lines(ejex,dnorm(ejex),col=2)
#item c)
uu<-runif(1)
uu > 0.5 #devuelve true si es verdadero, false si es falso
xx1<-(uu > 0.5)*1 #devuelve 1 si uu > 0.5, 0 sino
xx2<-(uu > 0.75)*1 + (uu >0.25 & uu<= 0.5)*1
#repetimos 100 veces
uu<-runif(100)
uu > 0.5 #devuelve true si es verdadero, false si es falso
xx1<-(uu > 0.5)*1 #observar que R actua vectorialmente
xx2<-(uu > 0.75)*1 + ((uu >0.25) & (uu<= 0.5))*1
table(xx1,xx2) #hace una tabla de 2 por 2 con las cantidades observadas
# para obtener una tabla con las frecuencias relativas observadas
table(xx1,xx2)/100
#item d)
uu<-runif(1)
xx1<-(uu > 0.75)*1 #devuelve 1 si uu > 0.5, 0 sino
xx2<-(uu > 0.5)*1
# repetimos 1000 veces
uu<-runif(1000)
xx1<-(uu > 0.75)*1 #devuelve 1 si uu > 0.5, 0 sino
xx2<-(uu > 0.5)*1
# frecuencias observadas
table(xx1,xx2) #totales
table(xx1)
table(xx2)
table(xx1)/1000 #frecuencias
table(xx2)/1000
table(xx1,xx2)/1000