#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

Numerocamas=c(160,220,850,510,110)
Numerocamas
## [1] 160 220 850 510 110
Hospitales <- factor(paste("H",1:5,sep =""))
Hospitales
## [1] H1 H2 H3 H4 H5
## Levels: H1 H2 H3 H4 H5
Tabla1=data.frame(Hospitales,Numerocamas)
Tabla1
##   Hospitales Numerocamas
## 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).

mediapob=mean(Numerocamas)
mediapob
## [1] 370
#muestra cuántos elementos tiene
n=length(Numerocamas)
n
## [1] 5
var(Numerocamas)
## [1] 96050

#Podemos calcular la varianza de la población simplemente multiplicando la varianza de la muestra por (n-1) / n de la siguiente manera:

varianzapob=var(Numerocamas)*(n-1)/n
varianzapob
## [1] 76840

#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

choose(5,2)
## [1] 10
library(gtools)
## Warning: package 'gtools' was built under R version 4.2.3
muestras.sr<-combinations(length(Numerocamas),2,Numerocamas,set=F)
muestras.sr
##       [,1] [,2]
##  [1,]  160  220
##  [2,]  160  850
##  [3,]  160  510
##  [4,]  160  110
##  [5,]  220  850
##  [6,]  220  510
##  [7,]  220  110
##  [8,]  850  510
##  [9,]  850  110
## [10,]  510  110
colnames(muestras.sr)<-paste("X", 1:ncol(muestras.sr),sep= "")
rownames(muestras.sr)<-paste("H",1:5,1:nrow(muestras.sr),sep="")
muestras.sr
##       X1  X2
## H11  160 220
## H22  160 850
## H33  160 510
## H44  160 110
## H55  220 850
## H16  220 510
## H27  220 110
## H38  850 510
## H49  850 110
## H510 510 110
#GUARDAR muestras.sin reemplazo como el archivo muestras.dat.
write.csv(muestras.sr,file="muestra.dat")

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

muestra <- read.csv2("~/MAESTRIA ESTADISTICA/ASIGNATURA III-TECNICA DE MUESTREO/Practica03/muestra.csv", stringsAsFactors=TRUE)
View(muestra)

#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

xmed=apply(muestra[ , 2:3], 1, mean)
xmed
##  [1] 190 505 335 135 535 365 165 680 480 310

#Ampliad también el data frame con las varianzas.

xvar=apply(muestra[ , 2:3], 1, var)
xvar
##  [1]   1800 238050  61250   1250 198450  42050   6050  57800 273800  80000
muestras=data.frame(muestra,xmed,xvar);muestras
##    muestra  x1  x2 xmed   xvar
## 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

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

medmuestral=mean(muestras$xmed)
medmuestral
## [1] 370
#Aqui la varianza en R divide por n-1, entonces para el #calculo haremos lo siguiente. El calculo de la varianza #muestral es:
xmedmuestral= c(muestras$xmed)
varmed.muestral=function(X){(sum((X-mean(X))^2)/length(X))}
varmed.muestral(xmedmuestral)
## [1] 28815
varmed.muestral.ajus=varmed.muestral(xmedmuestral)
varmed.muestral.ajus
## [1] 28815

#Esperanza de la media muestral es igual a la media poblacional g1 La varianza de la media muestral es igual a la varianza poblacional sobre n multiplicado por el factor de correccion

#media poblacional=370
mediapob=mean(Numerocamas)
mediapob
## [1] 370
#media muestral=370
medmuestral=mean(muestras$xmed)
medmuestral
## [1] 370
#g1 Primero tenemos la varianza poblacional=76840
varianzapob=var(Numerocamas)*((length(Numerocamas)-1)/length(Numerocamas))
varianzapob
## [1] 76840
#Luego tenemos la varianza muestral ajustada=28815
varmed.muestral.ajus
## [1] 28815
#debemos demostrar que la varianza de la media muestral x, es igual a la varianza poblacional dividido n multiplicado por el factor de correccion.

ajuste=((5-2)/(5-1))
varianza.insesgada=ajuste*(varianzapob/2)
varianza.insesgada
## [1] 28815
#Comprobad que Esperanza de la Scuad es igual a la varianza poblacional por N/N-1
esperanza=mean(muestras$xvar)
esperanza
## [1] 96050
#Entonces calculamos la varianza poblacional por el factor de correccion
varpoblacional.ajus=ajus=5/(5-1)*varianzapob
varpoblacional.ajus
## [1] 96050

#2. Continuamos con el data frame anterior, y vamos a hacer el problema 3 de la lista. #En el problema 3 de la lista dice así: # con muestreo sin reposición de tamaño n = 2. #a. Calculad el total poblacional t y los totales de cada muestra T .

# total poblacional:
total<-sum(Tabla1$Numerocamas)
total
## [1] 1850

#Para calcular el total de cada muestra T:

muestras$totales_muestrales<-rowSums(muestras[, c(2,3)], na.rm = TRUE )
muestras
##    muestra  x1  x2 xmed   xvar totales_muestrales
## 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

#b. Calculad la esperanza y la varianza del total muestral. ¿Se cumple E[T] = t?

esp_T<-mean(muestras$totales_muestrales)
esp_T
## [1] 740
var_T<-sd(muestras$totales_muestrales)^2
var_T
## [1] 128066.7
comprob4<-c(total,esp_T)
comprob4
## [1] 1850  740

No se cumple E[T] = t

#c. Comprobad que T=(N/n)*t cumple: E[T]=t

N=length(Numerocamas)
N
## [1] 5
n=2
muestras$totales_muestrales_ajust<-rowSums(muestras[, c(2,3)],na.rm=TRUE )*N/n
muestras
##    muestra  x1  x2 xmed   xvar totales_muestrales totales_muestrales_ajust
## 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_muestrales_ajust)
Esp_Tprima
## [1] 1850
Comprob5<-c(total,Esp_Tprima)
Comprob5
## [1] 1850 1850

Se cumple E[T`]=t

#3. 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.

base_sida<- read.csv("C:/Users/HP/OneDrive/Escritorio/Maestria en Estadistica/Tecnica de Muestreo/sida.dat", sep="", stringsAsFactors=TRUE)
View(base_sida)

#a. Calculad la proporción poblacional de enfermos de sida y la varianza de la población. Comprobad que #σ2 = p(1 − p).

#Tabla de Frecuencias Absolutas y Relativas
frsida=ftable(base_sida$sida)
frsida
##   0  1
##       
##  94 26
#Calculamos el porcentaje
porc.sida=prop.table(frsida)
porc.sida
##          0         1
##                     
##  0.7833333 0.2166667
p <- porc.sida [,2]
p
## [1] 0.2166667
#calculo de la varianza poblacional por la formula de varianza de la media muestral
xi= c(base_sida$sida)
varpobl=function(X){((1/length(X))*(sum(X)))-((mean(X))^2)}
varpobl(xi)
## [1] 0.1697222

#Comprobacion de la varianza VAR(X) = p(1 - p).

VARX=p*(1-p)
VARX
## [1] 0.1697222

#b. En Help I 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?

#Muestras de tamaño 30
muestra1=sample(base_sida$sida,30,replace = FALSE)
muestra1
##  [1] 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0
muestra2=sample(base_sida$sida,30,replace = FALSE)
muestra2
##  [1] 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0
muestra3=sample(base_sida$sida,30,replace = FALSE)
muestra3
##  [1] 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

#Las muestras son diferentes debido al proceso aleatorio de la seleccion de las muestras

#c. 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)}
f1= f(muestra1)
f1
## [1] 0.1333333
f2= f(muestra2)
f2
## [1] 0.2333333
f3= f(muestra3)
f3
## [1] 0.2

#d. 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.

muestras<-sample(base_sida$sida,size=n,replace=FALSE)
muestras
## [1] 0 1
X <- base_sida$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.1333333

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

#n=100
for(i in 1:100){muestras=c(muestras,f(sample(X,30)))}
muestras
##   [1] 0.13333333 0.16666667 0.26666667 0.03333333 0.23333333 0.26666667
##   [7] 0.23333333 0.20000000 0.23333333 0.26666667 0.26666667 0.30000000
##  [13] 0.26666667 0.30000000 0.20000000 0.16666667 0.26666667 0.13333333
##  [19] 0.13333333 0.13333333 0.16666667 0.23333333 0.16666667 0.26666667
##  [25] 0.23333333 0.26666667 0.26666667 0.23333333 0.20000000 0.23333333
##  [31] 0.10000000 0.36666667 0.13333333 0.23333333 0.20000000 0.16666667
##  [37] 0.23333333 0.10000000 0.23333333 0.23333333 0.23333333 0.26666667
##  [43] 0.23333333 0.13333333 0.13333333 0.36666667 0.23333333 0.03333333
##  [49] 0.30000000 0.16666667 0.23333333 0.33333333 0.13333333 0.20000000
##  [55] 0.26666667 0.20000000 0.20000000 0.20000000 0.20000000 0.26666667
##  [61] 0.16666667 0.20000000 0.33333333 0.06666667 0.20000000 0.13333333
##  [67] 0.20000000 0.16666667 0.16666667 0.16666667 0.13333333 0.30000000
##  [73] 0.10000000 0.20000000 0.33333333 0.16666667 0.30000000 0.20000000
##  [79] 0.26666667 0.16666667 0.20000000 0.10000000 0.26666667 0.20000000
##  [85] 0.20000000 0.20000000 0.20000000 0.16666667 0.16666667 0.20000000
##  [91] 0.23333333 0.23333333 0.30000000 0.20000000 0.13333333 0.16666667
##  [97] 0.20000000 0.23333333 0.20000000 0.13333333 0.20000000

#e. Una vez tengáis el vector muestra, calculad la esperanza y la varianza de la proporción muestral #La Esperanza de la distribucion muestral de proporciones

esperanzamed=mean(muestras)
esperanzamed
## [1] 0.2069307

#La varianza de la proporcion muestral es

varianzamuestr=var(muestras)
varianzamuestr
## [1] 0.00429593

#mirad si se aplican (aproximadamente) las fórmulas para E[pest] y Var(pest) de los apuntes.

N=100
n=30
Var.total.muestras=((N-n)/((N-1)*n))*(p*(1-p))
Var.total.muestras
## [1] 0.004000187