1.Una ciudad tiene cinco hospitales, que llamaremos H1, H2, H3, H4 y H5. El número de camas de 5 hospitales viene dado por la tabla

a.Abrid el R y entrad los datos anteriores. Esto puede hacerse como sigue

Hospital <- paste("H",1:5,sep = "")
Hospital
## [1] "H1" "H2" "H3" "H4" "H5"
Camas <- c(160, 220, 850, 510, 110)
Camas
## [1] 160 220 850 510 110
Datos <- data.frame(Hospital, Camas)
Datos
##   Hospital Camas
## 1       H1   160
## 2       H2   220
## 3       H3   850
## 4       H4   510
## 5       H5   110

b.Calculad la media poblacional y la varianza poblacional (atención: la instrucción var divide por n − 1 y aquí nos interesa dividir por n)

MediaPoblacional <- mean(Camas)
MediaPoblacional
## [1] 370
desviacion.pob <- function(x){
  sqrt(sum((x-mean(x))^2/length(x)))}
SDPoblacional <- desviacion.pob(Camas)
SDPoblacional^2
## [1] 76840

c.Con el Bloc de notas, o con el editor que queráis, haced un fichero ASCII que se llame, por ejemplo, muestras.dat, con todas las muestras sin reposición de 2 elementos: Hay en total 10 muestras de tamaño n=2

Muestras

d.Leed el fichero anterior como un data frame; pongamos que se llama muestras.

muestras<- read.table("muestras.txt",header=T,sep = "\t")
muestras
##    muestra  X1  X2
## 1    H1,H2 160 220
## 2    H1,H3 160 850
## 3    H1,H4 160 510
## 4    H1,H5 160 110
## 5    H2,H3 220 850
## 6    H2,H4 220 510
## 7    H2,H5 220 110
## 8    H3,H4 850 510
## 9    H3,H5 850 110
## 10   H4,H5 510 110

e.Construid variables con la media y la varianza de cada muestra. Si la media se llama, por ejemplo, xmed,entonces se puede ampliar el data frame con la instrucción. Mirad el resultado. Ampliad también el data frame con las varianzas.

muestras$Medias<- rowMeans(muestras[, c(2,3)], na.rm = TRUE )
muestras
##    muestra  X1  X2 Medias
## 1    H1,H2 160 220    190
## 2    H1,H3 160 850    505
## 3    H1,H4 160 510    335
## 4    H1,H5 160 110    135
## 5    H2,H3 220 850    535
## 6    H2,H4 220 510    365
## 7    H2,H5 220 110    165
## 8    H3,H4 850 510    680
## 9    H3,H5 850 110    480
## 10   H4,H5 510 110    310
muestras$Var<-apply(muestras[, c(2,3)],1,FUN=var)
muestras
##    muestra  X1  X2 Medias    Var
## 1    H1,H2 160 220    190   1800
## 2    H1,H3 160 850    505 238050
## 3    H1,H4 160 510    335  61250
## 4    H1,H5 160 110    135   1250
## 5    H2,H3 220 850    535 198450
## 6    H2,H4 220 510    365  42050
## 7    H2,H5 220 110    165   6050
## 8    H3,H4 850 510    680  57800
## 9    H3,H5 850 110    480 273800
## 10   H4,H5 510 110    310  80000

f.Calculad la esperanza y la varianza de la media muestral (atención: el mismo comentario con n)

mean(muestras$Medias)
## [1] 370
desviacion.pob(muestras$Medias)^2
## [1] 28815
  1. Comprobad que
#E[X¯] = µ Var(X¯) = (N − n /N − 1 )* σ2/n
N=5
n=2
mean(muestras$Medias)
## [1] 370
VarianzaX<- ((N-n) /(N-1))* (SDPoblacional^2/n)
VarianzaX
## [1] 28815

Comentario: Por tanto se concluye que las identidades se cumplen.

  1. Comprobad que
#E[S2] = (N/ (N − 1))*σ2
mean(muestras$Var)
## [1] 96050
(N/(N-1))*SDPoblacional^2
## [1] 96050

Comentario:Por tanto se cumple la igualdad

2.Continuamos con el data frame anterior, y vamos a hacer el problema 3 de la lista. a. Calculad el total poblacional t y

totalpoblacional<- sum(Camas)
totalpoblacional
## [1] 1850

Para calcular el total de cada muestra T:

muestras$totales<- rowSums(muestras[, c(2,3)], na.rm = TRUE )
muestras
##    muestra  X1  X2 Medias    Var totales
## 1    H1,H2 160 220    190   1800     380
## 2    H1,H3 160 850    505 238050    1010
## 3    H1,H4 160 510    335  61250     670
## 4    H1,H5 160 110    135   1250     270
## 5    H2,H3 220 850    535 198450    1070
## 6    H2,H4 220 510    365  42050     730
## 7    H2,H5 220 110    165   6050     330
## 8    H3,H4 850 510    680  57800    1360
## 9    H3,H5 850 110    480 273800     960
## 10   H4,H5 510 110    310  80000     620
  1. Calculad la esperanza y la varianza del total muestral. ¿Se cumple E[T ] = t?
Esp.T <-mean(muestras$totales)

Var.T <-9/10*var(muestras$totales)
Var.T
## [1] 115260

Comentario:No se cumple E[T] = t

  1. Comprobad que
#T` = (N/n)*t cumple: E[T`] = t
N=5
n=2
muestras$totales_corregido<-N/n*rowSums(muestras[, c(2,3)], na.rm = TRUE )
muestras
##    muestra  X1  X2 Medias    Var totales totales_corregido
## 1    H1,H2 160 220    190   1800     380               950
## 2    H1,H3 160 850    505 238050    1010              2525
## 3    H1,H4 160 510    335  61250     670              1675
## 4    H1,H5 160 110    135   1250     270               675
## 5    H2,H3 220 850    535 198450    1070              2675
## 6    H2,H4 220 510    365  42050     730              1825
## 7    H2,H5 220 110    165   6050     330               825
## 8    H3,H4 850 510    680  57800    1360              3400
## 9    H3,H5 850 110    480 273800     960              2400
## 10   H4,H5 510 110    310  80000     620              1550
Esp_Tprima <- mean(muestras$totales_corregido)
Esp_Tprima
## [1] 1850

Comentario: El estimador T prima es insesgado para el total poblacional

  1. Cambiad de directorio de trabajo para hacer este ejercicio. COn la instrucción read.table leed el fichero sida.dat que tiene la población del problema 4.
bsida<- read.table("sida.dat",header=T)
  1. Calculad la proporción poblacional de enfermos de sida y la varianza de la población. Comprobad que σ2 = p(1 − p).
ppob<-sum(bsida$sida)/length(bsida$sida)
ppob
## [1] 0.2166667
var.sida=(length(bsida$sida)-1)/length(bsida$sida)*var(bsida$sida)
var.sida
## [1] 0.1697222
varpob<-ppob*(1-ppob)
varpob
## [1] 0.1697222

Comentario:Entonces se cumple que la varianza de la poblacion es igual σ2 = p(1 − p).

  1. En Help de R language (standard) mirad la instrucción sample y tomad tres muestras de tamaño 30 sin reposición. Comprobad que las muestras son diferentes. ¿A qué se debe esto? seleccionar sin reposición, en un data.frame, 3 muestras aleatorias
set.seed(67)
muestra1 <- bsida[sample(1:nrow(bsida), 30), ]  

muestra2 <- bsida[sample(1:nrow(bsida), 30), ]  

muestra3 <- bsida[sample(1:nrow(bsida), 30), ]  

Comentario:Las muestras son diferentes debido que los elementos fueron seleccionados en forma aleatoria

  1. Definid una función que calcule la proporción muestral de cada muestra. Supongamos que esta función se llama f.
f <- function(x){
 mean(x)}

P1=f(muestra1$sida)
P1
## [1] 0.2333333
P2=f(muestra2$sida)
P2
## [1] 0.1333333
P3=f(muestra3$sida)
P3
## [1] 0.1666667
  1. Ahora tomaremos 100 muestras y las guardaremos en un vector que se llamará, por ejemplo muestras.Para simplificar la escritura supondremos que hemos sacado del data.frame (es decir, definido a partir del data.frame) la variable con los 0 y 1 que indican si el paciente tiene o no el sida, y que esta variable se llama x. Empezad creando el vector muestras poniendo un valor: muestras=c(f(sample(X,30)))
X <- bsida$sida
X
##   [1] 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
##  [38] 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
##  [75] 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0
## [112] 1 0 0 0 0 1 0 0 1
muestras=c(f(sample(X,30)))
muestras
## [1] 0.1

Ahora definiremos un bucle (pruébalo primero con un n = 5 en lugar de 100)

for(i in 1:100){muestras=c(muestras,f(sample(X,30)))}
muestras
##   [1] 0.10000000 0.10000000 0.30000000 0.30000000 0.23333333 0.16666667
##   [7] 0.30000000 0.20000000 0.23333333 0.30000000 0.23333333 0.10000000
##  [13] 0.20000000 0.13333333 0.26666667 0.20000000 0.30000000 0.23333333
##  [19] 0.26666667 0.13333333 0.33333333 0.30000000 0.06666667 0.06666667
##  [25] 0.23333333 0.26666667 0.30000000 0.20000000 0.13333333 0.26666667
##  [31] 0.26666667 0.36666667 0.10000000 0.16666667 0.26666667 0.23333333
##  [37] 0.23333333 0.16666667 0.26666667 0.16666667 0.13333333 0.16666667
##  [43] 0.26666667 0.26666667 0.16666667 0.23333333 0.23333333 0.23333333
##  [49] 0.26666667 0.33333333 0.13333333 0.30000000 0.16666667 0.26666667
##  [55] 0.26666667 0.13333333 0.16666667 0.13333333 0.23333333 0.10000000
##  [61] 0.23333333 0.26666667 0.20000000 0.30000000 0.26666667 0.33333333
##  [67] 0.13333333 0.20000000 0.20000000 0.26666667 0.23333333 0.20000000
##  [73] 0.23333333 0.26666667 0.33333333 0.20000000 0.23333333 0.36666667
##  [79] 0.26666667 0.20000000 0.30000000 0.13333333 0.16666667 0.23333333
##  [85] 0.23333333 0.13333333 0.30000000 0.30000000 0.20000000 0.23333333
##  [91] 0.26666667 0.10000000 0.26666667 0.23333333 0.16666667 0.16666667
##  [97] 0.30000000 0.20000000 0.26666667 0.26666667 0.23333333
  1. Una vez tengáis el vector muestra, calculad la esperanza y la varianza de la proporción muestral y mirad, si se aplican (aproximadamente) las fórmulas para E[pb] y Var(pb) de los apuntes.
Media.total.muestras=mean(muestras)
Media.total.muestras
## [1] 0.2231023
N=length(muestras)

Var.total.muestras=var(muestras)*(N-1/N)
Var.total.muestras
## [1] 0.4751979