Rut:19.474.068-9

Link:http://rpubs.com/JoseTapiaJara/398169

En este trabajo no se imprimirá el total de los datos(5000 del PPA y 500 muestras de 300) porque resulta intrascendente para lo que queremos calcular, y en el caso del docente resultaría tedioso de revisar.

Primera parte: Generar datos

Generar 5000 datos equivalentes a los PPA de estudiantes de la UCM, considerando una distribución normal con media 4 y DE 0,5. entonces:

En primer lugar generamos una semilla, para que estos datos sean siempre los mismos:
set.seed(123)
PPA<-c(rnorm(5000,4,0.5))
mean(PPA)
## [1] 3.999715
sd(PPA)
## [1] 0.4972855

imprimimos la media y la DE para comprobar, y lo asignamos a un dataframe para ordenarlo:

Notas<-data.frame(nAlumno=c(1:5000),Nota=c(PPA))

Segunda Parte: obtenemos una muestra (sin reemplazo)

Obtenemos una muestra de 300 estudiantes, desde una media con media u(que se aproxima a 4) y DE=o(que tiende a 0.5)

Muestra<-sample(PPA,300,replace=F)
mean(Muestra)
## [1] 4.030705
sd(Muestra)
## [1] 0.4981611

Tercera Parte:Calcular Indice de Confianza(IC) del 95%

Para esto primero necesitamos defidir una función que nos de el valor de Z segun la tabla:

Valorz<-function(alfa){
  return(qnorm(alfa/2,lower.tail = F)) #Al aplicarlowe.tail = False, le decimos a la funcion que nos entregue desde el valor, hasta la distribucion posistiva
}
Valorz(0.05)
## [1] 1.959964
Luego imprimimos el valor de z para asegurarnos.

Ahora ponemos crear la funcion para calcularlo:

IC95<-function(X,Y,alfa){  #X= media Y=desviacion estandar Y=desviacion estandar
  Signomas=X+Valorz(alfa)*sd(PPA)/sqrt(length(Muestra))
  Signomenos=X-Valorz(alfa)*sd(PPA)/sqrt(length(Muestra))
  return(c(Signomenos,Signomas))
}
IC95(mean(Muestra),sd(PPA),0.05)
## [1] 3.974433 4.086978

Cuarta Parte: Obtener 500 muestras con reemplazo de tamaño 300

Para esto usaremos la muestra de tamaño 300 obtenida anteriormente:

CrearMuestras<-function(x){ #x Muestra de 300 sin reemplazo
  vector=c()
  for (i in 1:500) {
    a=sample(x,300,replace=T)
    vector=c(vector,a)
    
  }
  matriz<-matrix(vector,nrow=500,ncol=300)
  return(matriz)
}

MuestrasTab<-CrearMuestras(Muestra) #muestrasTab = muestras tabuladas

Luego calculamos la media de cada una de las muestras, calculamos la varianza entre ellas y las ordenamos. Para esto:

MediaMuestras=apply(MuestrasTab,2,mean) #la funcion apply, facilita este proceso operando las filas de una manera rápida
var(MediaMuestras)
## [1] 0.0005063712

Quinta parte: Calcular el estimador por muestra Bootstrap

Para esto debemos ordenar de menor a mayor los datos de las medias, y calcular el IC Bootstrap mediante el IC95%(percentil 95), de tal forma que:

Datosordenados<-sort(MediaMuestras)

#intervalo de confianza al 95% está dado por:

percentil <- function(x){
  a = c(0.025,0.975)
  j = 1
  P = rep(0,2)
  while (j <= length(a)){
    i = a[j]*(length(x)+1)
    e = i - (i%%1)
    d = i - e
    P[j] = (1-d)*x[e] + d*x[e+1]
    j = j + 1
  }
  return(P)
}
IC95<-percentil(Datosordenados)
IC95
## [1] 3.985592 4.073364

Con lo cual nos retorna un vector, este cuenta con dos valores y son donde comienza y termina el intervalo buscado.