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
#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.
#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
Esp.T <-mean(muestras$totales)
Var.T <-9/10*var(muestras$totales)
Var.T
## [1] 115260
Comentario:No se cumple E[T] = t
#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
bsida<- read.table("sida.dat",header=T)
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).
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
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
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
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