Calcular parámetros poblacionales y estadísticos muestrales con R Seleccionar una muestra aleatoria simple con R.
Hospital <- factor(paste("H",1:5,sep = ""))
Hospital
## [1] H1 H2 H3 H4 H5
## Levels: H1 H2 H3 H4 H5
Nro.camas <- c(160, 220, 850, 510, 110)
Nro.camas
## [1] 160 220 850 510 110
Datos <- data.frame(Hospital, Nro.camas)
Datos
## Hospital Nro.camas
## 1 H1 160
## 2 H2 220
## 3 H3 850
## 4 H4 510
## 5 H5 110
MediaPoblacional <- mean(Nro.camas)
MediaPoblacional
## [1] 370
.
desviacion.pob <- function(x){
sqrt(sum((x-mean(x))^2/length(x)))}
SDPoblacional <- desviacion.pob(Nro.camas)
SDPoblacional^2
## [1] 76840
choose(5,2)
## [1] 10
library(gtools)
muestras.sin.reem <- combinations(length(Nro.camas), 2, Nro.camas, set = F)
muestras.sin.reem
## [,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.sin.reem) <- paste("Elemento", 1:ncol(muestras.sin.reem), sep = "")
rownames(muestras.sin.reem) <- paste("Muestra", 1:nrow(muestras.sin.reem), sep = " ")
muestras.sin.reem
## Elemento1 Elemento2
## Muestra 1 160 220
## Muestra 2 160 850
## Muestra 3 160 510
## Muestra 4 160 110
## Muestra 5 220 850
## Muestra 6 220 510
## Muestra 7 220 110
## Muestra 8 850 510
## Muestra 9 850 110
## Muestra 10 510 110
medias.muestrales <- rowMeans(muestras.sin.reem)
medias.muestrales
## Muestra 1 Muestra 2 Muestra 3 Muestra 4 Muestra 5 Muestra 6 Muestra 7
## 190 505 335 135 535 365 165
## Muestra 8 Muestra 9 Muestra 10
## 680 480 310
muestras.sin.reem <- as.data.frame(cbind(muestras.sin.reem, medias.muestrales))
muestras.sin.reem
## Elemento1 Elemento2 medias.muestrales
## Muestra 1 160 220 190
## Muestra 2 160 850 505
## Muestra 3 160 510 335
## Muestra 4 160 110 135
## Muestra 5 220 850 535
## Muestra 6 220 510 365
## Muestra 7 220 110 165
## Muestra 8 850 510 680
## Muestra 9 850 110 480
## Muestra 10 510 110 310
mean(muestras.sin.reem$medias.muestrales)
## [1] 370
desviacion.pob(muestras.sin.reem$medias.muestrales)^2
## [1] 28815
choose(5,4)
library(gtools) muestras.sin.reem <- combinations(length(Nro.camas), 4, Nro.camas, set = F) muestras.sin.reem
colnames(muestras.sin.reem) <- paste(“Elemento”, 1:ncol(muestras.sin.reem), sep = ““) rownames(muestras.sin.reem) <- paste(”Muestra”, 1:nrow(muestras.sin.reem), sep = ” “) muestras.sin.reem
medias.muestrales <- rowMeans(muestras.sin.reem) medias.muestrales
muestras.sin.reem <- as.data.frame(cbind(muestras.sin.reem, medias.muestrales)) muestras.sin.reem
mean(muestras.sin.reem$medias.muestrales)
desviacion.pob(muestras.sin.reem$medias.muestrales)^2
total <- sum(Nro.camas)
total
## [1] 1850
library(gtools)
muestras.sin.reem <- combinations(length(Nro.camas), 2, Nro.camas, set = F)
muestras.sin.reem
## [,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.sin.reem) <- paste("Elemento", 1:ncol(muestras.sin.reem), sep = "")
rownames(muestras.sin.reem) <- paste("Muestra", 1:nrow(muestras.sin.reem), sep = " ")
muestras.sin.reem
## Elemento1 Elemento2
## Muestra 1 160 220
## Muestra 2 160 850
## Muestra 3 160 510
## Muestra 4 160 110
## Muestra 5 220 850
## Muestra 6 220 510
## Muestra 7 220 110
## Muestra 8 850 510
## Muestra 9 850 110
## Muestra 10 510 110
totales.muestrales <- rowSums(muestras.sin.reem)
totales.muestrales
## Muestra 1 Muestra 2 Muestra 3 Muestra 4 Muestra 5 Muestra 6 Muestra 7
## 380 1010 670 270 1070 730 330
## Muestra 8 Muestra 9 Muestra 10
## 1360 960 620
muestras.sin.reem <- as.data.frame(cbind(muestras.sin.reem, totales.muestrales))
muestras.sin.reem
## Elemento1 Elemento2 totales.muestrales
## Muestra 1 160 220 380
## Muestra 2 160 850 1010
## Muestra 3 160 510 670
## Muestra 4 160 110 270
## Muestra 5 220 850 1070
## Muestra 6 220 510 730
## Muestra 7 220 110 330
## Muestra 8 850 510 1360
## Muestra 9 850 110 960
## Muestra 10 510 110 620
media.totales <- mean(muestras.sin.reem$totales.muestrales)
media.totales
## [1] 740
var.totales <- desviacion.pob(muestras.sin.reem$totales.muestrales)^2
var.totales
## [1] 115260
¿Se cumple E[T] = t? No se cumple
Explicad porque un estimador de t más razonable es T = N/n * T
El estimador T’, ¿tiene sesgo?
n=2
totales.muestrales_corr <- length(Nro.camas)/n*totales.muestrales
totales.muestrales_corr
## Muestra 1 Muestra 2 Muestra 3 Muestra 4 Muestra 5 Muestra 6 Muestra 7
## 950 2525 1675 675 2675 1825 825
## Muestra 8 Muestra 9 Muestra 10
## 3400 2400 1550
media.totales_corr <- mean(totales.muestrales_corr)
media.totales_corr
## [1] 1850
desviacion.pob(totales.muestrales_corr)^2
## [1] 720375