muestra <- function(z, p, e, N) {
n <- ((z^2 *p*(1-p))/(e^2))/ (1 + ((z^2 * p *(1-p))/(e^2*N)))
return(n)
}
# Definir los valores fijos de z y e
z_values <- c(1.28, 1.44, 1.65, 1.96, 2.58)
e_values <- c(0.2, 0.15, 0.10, 0.05, 0.01)
# Crear una matriz para almacenar los resultados
results <- matrix(NA, nrow = length(z_values), ncol = length(e_values))
# Iterar sobre los valores de z y e
for (i in 1:length(z_values)) {
for (j in 1:length(e_values)) {
results[i, j] <- muestra(z = z_values[i], p = 0.5, e = e_values[j], N = 10000)
}
}
# Convertir la matriz en un data frame
results_df <- as.data.frame(results)
# Agregar los nombres de las columnas y filas
colnames(results_df) <- paste0("e_", e_values)
rownames(results_df) <- paste0("z_", z_values)
# Mostrar el data frame de resultados
View(results_df)
N_values=c(10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 100,10)
muestreo=matrix(NA, nrow = length(z_values))
for (i in 1:length(N_values)){
muestreo[i]= muestra(z= 1.44, p=0.5, e=0.1, N=N_values[i])
}
muestreo_df <- as.data.frame(muestreo);muestreo_df
## muestreo
## 1 51.572647
## 2 51.543112
## 3 51.506240
## 4 51.458910
## 5 51.395939
## 6 51.308038
## 7 51.176749
## 8 50.959421
## 9 50.530256
## 10 49.285062
## 11 34.141201
## 12 8.382924
muestreo_df$N_values= N_values
rownames(muestreo_df) <- N_values
View(muestreo_df)
ggplot(muestreo_df, aes(x = N_values, y =muestreo )) +
geom_line() +
geom_point()+
labs(x = "N", y = "Tamaño de la muestra necesaria (n)", title = "Tamaño de la muestra necesaria en función de N")

set.seed(1235678910)
x=c(12.48712333, 28.62000058 ,22.49583037, 18.76243756, 6.36852193, 6.36784657,
3.62634114, 26.25293208, 18.83122033, 21.82603218, 2.57636584, 29.15747586,
25.30839394, 7.9454951, 7.09109908, 7.13532628, 10.5187828, 16.69318009,
14.09446052, 10.15441593, 19.13188105 ,5.9058281, 10.18005016, 12.25813161,
14.76995956, 23.98492692, 7.5908659, 16.39856428 ,18.58760793, 3.30061156,
19.01125585, 6.77467546, 3.8214446, 28.56879504, 29.03769693, 24.63512575,
10.52918554, 4.73481919, 21.15852474, 14.32426982, 5.41707058, 15.86495348,
2.96287859, 27.46097126 ,9.24583948, 20.55062396, 10.72791013, 16.56190459,
17.30788782, 7.17592475);length(x)
## [1] 50
x_s40=sample(x, 40, replace = F)
x_s30=sample(x, 30, replace = F)
x_s20=sample(x, 20, replace = F)
x_s10=sample(x, 10, replace = F)
coef_x=sd(x)/mean(x); coef_x
## [1] 0.5583876
coef_xs40=sd(x_s40)/mean(x_s40); coef_xs40
## [1] 0.5331333
coef_xs30=sd(x_s30)/mean(x_s30); coef_xs30
## [1] 0.5662048
coef_xs20=sd(x_s20)/mean(x_s20); coef_xs20
## [1] 0.5494838
coef_xs10=sd(x_s10)/mean(x_s10); coef_xs10
## [1] 0.6794823
tabla= data.frame(muestra= c(50, 40, 30, 20 ,10),coef=c(coef_x,coef_xs40,coef_xs30,coef_xs20,coef_xs10));tabla
## muestra coef
## 1 50 0.5583876
## 2 40 0.5331333
## 3 30 0.5662048
## 4 20 0.5494838
## 5 10 0.6794823
ggplot(tabla, aes(x = muestra, y =coef)) +
geom_line() +
geom_point()+
labs(x = "n", y = "Coeficiente de variación", title = "Coeficiente de variación en función del tamaño de la muestra n")

cv=function(x){
cv=sd(x)/mean(x)
return(cv)
}
valores=c()
cvs=c()
for (i in 1:50){
datos=c(12.48712333, 28.62000058 ,22.49583037, 18.76243756, 6.36852193, 6.36784657,
3.62634114, 26.25293208, 18.83122033, 21.82603218, 2.57636584, 29.15747586,
25.30839394, 7.9454951, 7.09109908, 7.13532628, 10.5187828, 16.69318009,
14.09446052, 10.15441593, 19.13188105 ,5.9058281, 10.18005016, 12.25813161,
14.76995956, 23.98492692, 7.5908659, 16.39856428 ,18.58760793, 3.30061156,
19.01125585, 6.77467546, 3.8214446, 28.56879504, 29.03769693, 24.63512575,
10.52918554, 4.73481919, 21.15852474, 14.32426982, 5.41707058, 15.86495348,
2.96287859, 27.46097126 ,9.24583948, 20.55062396, 10.72791013, 16.56190459,
17.30788782, 7.17592475)
datos_muestra=sample(datos,size = i,replace = F)
valores[i]=i
cvs[i]=round(cv(datos_muestra),2)
}
df=data.frame(valores,cvs)
df=df[2:50,]
ggplot(df,aes(x=valores,y=cvs))+
geom_point()+
geom_line()+
geom_hline(yintercept=cv(datos))+
theme_update()

which.min(cvs)
## [1] 6