Proba (m), clase práctica 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