##Trabajo 2: # En primer lugar dibujemos nuestra función de densidad: curve(2*x,0,1,col="blue") ####Método de invesión: n=1000 f<-function(n){ u<-runif(n,0,1) x<-numeric(n) x<-sqrt(u) return(x)} #Función de distribución de mi problema F<-function(x){ distribucion<-x^2 return(distribucion)} #Contraste de Kolmogoroff-Smirnoff TEST_KS<-function(x,...){ result<-ks.test(x,...) sal<-c(result$p.value,result$statistic) return(sal)} #Programa con k réplicas K=100 x<-f(1000*K) dim(x)<-c(1000,K) res_test<-apply(x,2,TEST_KS,"F") #Realización del contraste de K-S res_test (vector_pvalores<-res_test[1,]) (vector_estadistico<-res_test[2,]) rechazados<-vector_pvalores[vector_pvalores<0.05] (pvalor_estimado<-length(rechazados)/K) summary(vector_estadistico) #Cálculo de las medias de las observaciones para diferentes n observaciones1<-f(50) mean(observaciones1) observaciones2<-f(100) mean(observaciones2) observaciones3<-f(200) mean(observaciones3) observaciones4<-f(2000) mean(observaciones4) ####Método de aceptación-rechazo: #Función de densidad de mi problema f1<-function(x){ densidad<-2*x return(densidad)} #función para generar observaciones de f a partir de una uniforme(0,1) f<-function(n){ x<-numeric(n) intentos<-0 ngenerados<-0 while(ngeneradosresultados resultados observaciones<-resultados$datos ks.test(observaciones,"F") #Programa con N réplicas N=1000 probKS<-0 #frecuencia de contrastes KS "aceptados" intentosN<-0 #nº medio de intentos (en las N réplicas) para obtener n observaciones for (i in 1:100) { resultados<-f(1000) intentosN<-intentosN+resultados$intentos obervaciones<-resultados$datos KS<-ks.test(observaciones,"F") if (KS$p.value>0.05) {probKS=probKS+1} } intentosN<-intentosN/N probKS<-probKS/N intentosN probKS #Cálculo de la media de las observaciones resultados1<-f(50) resultados1 observaciones1<-resultados1$datos mean(observaciones1) resultados2<-f(100) resultados2 observaciones2<-resultados2$datos mean(observaciones2) resultados3<-f(200) resultados3 observaciones3<-resultados3$datos mean(observaciones3) resultados4<-f(2000) resultados4 observaciones4<-resultados4$datos mean(observaciones4)