Tamaño de muestra mínimo necesario para estimar una proporción en muestreo aleatorio simple. Muestreo Aleatorio simple Se usa solo para un estrato. \[n=\frac{Np(1-p)}{(N-1)\left(\frac{e}{z}\right)^{2}+p(1-p)}\]
#Muestreo
#Tamaño mínimo de cuadros que deben ser seleccionados para estimar la prevalencia de una enfermedad.
#Se parte que hay 600 cuadros (N)
N=600
#p es la prevalencia que se quiere estimar. se puede asumir un 50% o buscar una prevalencia de referencia con base en otros estudios. Ej: Prevalencia de alguna enfermedad
p=0.5
#e=Error de muestreo = |p-k|, se estima entonces el 10% (entre 0 y 10%) Si el error es cero n=N
#z=puntuación de la curva normal para un nivel de confianza de 95% y es 1.96 para 95%, es 1.90 para 90%
e=0.1
#z=1.96 (Confianza 95%)
z=1.64
#Confianza 90%
#Muestra para muestreo aleatorio simple
f_n_MAS=function(N,p,e,z){N*p*(1-p)/((N-1)*(e/z)^2+p*(1-p))}
n=N*p*(1-p)/((N-1)*(e/z)^2+p*(1-p))
n=ceiling(n)
n
## [1] 61
n_muestra=f_n_MAS(N = 600,p = 0.25,e = 0.1,z = 1.64)
n_muestra
## [1] 46.59163
set.seed(123)
cuadros_muestra=sample(600,n_muestra,F)
cuadros_muestra
## [1] 415 463 179 526 195 118 299 229 244 14 374 91 348 355 26 519 426 211 555
## [20] 373 143 544 490 23 309 135 224 166 217 290 72 141 153 294 277 599 41 431
## [39] 90 316 223 528 116 456 39 159
Clase 27-Abr-23 Muestreo estratificado Se va a estimar PROPORCIÓN de artículos defectuososo en una línea de producción. * semanalmente se elaboran 2000 artículos. * Esta empresa trabaja 24 horas y cambia de operarios en 3 turnos. (Razón de estratificación). Lo que se aplique depende del turno en que se realicen. A veces las causas de estratificación pueden ser equipos, operarios. * Estimación de media / proporcion / etc.
\[n = \frac{\sum_{i=1}^L{N_i^2p_i(1-p_i)/a_i}}{N^2(e/z)^2+\sum_{i=1}^L{N_ip_i(1-p_i)}}\] pi es el porcentaje de defectuosos Ni el número de artículos ai el peso ponderado del estrato |Estrato|\(N_i\)|\(p_i\)|\(a_i\)|\(t_i\)| |——-|—- |—- |—- |—-| |Turno A|800 |0.02 |0.4 |600 | |Turno B|700 |0.03 |0.35 |480 | |Turno C|500 |0.06 |0.25 |360 | |Total |2000 | |1 | |
f_me=function(N_i,p_i,a_i,e,z){
q_i=1-p_i
numer=sum(N_i^2*p_i*q_i/a_i)
denom_1=sum(N_i)^2*(e/z)^2
denom_2=sum(N_i*p_i*q_i)
denom=denom_1+denom_2
n=ceiling(numer/denom)
return(n)
}
N_i=c(800,700,500)
p_i=c(0.02,0.03,0.06)
a_i=c(0.4,0.35,0.25)
n= f_me(N_i,p_i,a_i,e=0.05,z=1.96)
f_me(N_i,p_i,a_i,e=0.10,z=1.96)
## [1] 13
#Se obtienen los tamaños de muestra
round(n*a_i)
## [1] 20 17 12
pi es el porcentaje de defectuosos Ni el número de artículos ai el peso ponderado del estrato |Estrato|\(N_i\)|\(p_i\)|\(a_i\)|\(t_i\)| |——-|—- |—- |—- |—-| |Turno A|800 |0.02 |0.4 |600 | |Turno B|700 |0.03 |0.35 |480 | |Turno C|500 |0.06 |0.25 |360 | |Total |2000 | |1 | |
f_me=function(N_i,p_i,a_i,t_i,e,z){
q_i=1-p_i
numer=sum(N_i^2*p_i*q_i/a_i)
denom_1=sum(N_i)^2*(e/z)^2
denom_2=sum(N_i*p_i*q_i)
denom=denom_1+denom_2
n=ceiling(numer/denom)
return(n)
}
N_i=c(800,700,500)
p_i=c(0.02,0.03,0.06)
a_i=c(0.4,0.35,0.25)
t_i=c(600,480,360)
n= f_me(N_i,p_i,a_i,e=0.05,z=1.96)
f_me(N_i,p_i,a_i,e=0.10,z=1.96)
## [1] 13
#Se obtienen los tamaños de muestra
n_i=round(n*a_i)
Como seleccionar las muestras de cada turno usando muestreo sistemático
t_i/n_i
## [1] 30.00000 28.23529 30.00000
Asignación calcular el tamaño de la muestra si el costo de estratificación para ir a cada estrato es |Estrato|Costo| |++++|++++| |Turno A|$50.000| |Turno B|$70.000| |Turno C|$80.000|
Muestreo Espacial
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
xy = expand.grid(x = seq(20),
y = seq(20))
ggplot(xy)+
aes(x,y)+
geom_tile(color='white')
library(ggplot2)
xy = expand.grid(x = seq(20),
y = seq(20))
# 400
xy$insec = sample(
c('SI', 'NO'),
size = 400,
replace = T,
prob = c(0.1, 0.9))
ggplot(xy)+
aes(x,y, color=insec)+
geom_point()+
scale_color_manual(
values = c('green','red'))+
geom_tile(color='black',
fill='transparent')
f_n_MAS = function(N, p, e, z){
n = (N*p*(1-p))/((N-1)*(e/z)^2+(p*(1-p)))
n = ceiling(n)
return(n)
}
n_MAS = f_n_MAS(N = 400, p = 0.2,
e = 0.05, z = 1.96)
n_MAS
## [1] 153
punt_muest_MAS = sample(400, n_MAS, FALSE)
xy$MAS = NA
xy$MAS[punt_muest_MAS] = 'MUEST'
ggplot(xy)+
aes(x,y, color=insec, fill=MAS)+
geom_tile(color='black')+
geom_point()+
scale_color_manual(
values = c('green','red'))
9;10 am A conditioned Latin hypercube method for sampling in the presence of ancillary information De cada muestreo, no hay latitud o longitud que no sea muestreada.Recomendación, usar 5% de 400 cuadros. No queda latitud ni longitud sin muestear y el muestreo aleatorio no afecta tanto.
library(clhs)
## Warning: package 'clhs' was built under R version 4.2.3
set.seed(123)
n_clhs = clhs(xy[,c('x','y')], size = 20)
xy$CLHS = 'NO'
xy$CLHS[n_clhs] = 'MUEST'
ggplot(xy)+
aes(x,y, color=insec, fill=CLHS)+
geom_tile(color='black')+
geom_point(size=2)+
scale_color_manual(
values = c('green','red'))+
scale_fill_manual(
values = c('blue', 'white'))
Introducción al análisis de componentes principales.
library(faux)
## Warning: package 'faux' was built under R version 4.2.3
##
## ************
## Welcome to faux. For support and examples visit:
## https://debruine.github.io/faux/
## - Get and set global package options with: faux_options()
## ************
set.seed(123)
datos = rnorm_multi(n = 120, vars = 2,
mu = c(3, 7),
sd = c(0.3, 1.2),
r = 0.7,
varnames = c('PS', 'AF'))
ggplot(datos)+
aes(AF,PS)+
geom_point()+
ggtitle(cor(datos)[1,2])
10:09 Como rotar datos Matriz de rotación wn Wikipedia
Rotar los datos hasta obtener la menor correlación
f_rot = function(datos, angulo) {
theta = angulo * pi / 180
mat_rot = matrix(
c(cos(theta),-sin(theta),
sin(theta), cos(theta)),
nrow = 2,
ncol = 2,
byrow = TRUE
)
d_rot = as.matrix(datos) %*% mat_rot
datos_rot = data.frame(PS = d_rot[,1],
AF = d_rot[,2])
cor_datos = cor(datos_rot$PS, datos_rot$AF)
titulo = paste0('Angulo: ', angulo,
' Cor: ', round(cor_datos, 3))
cat(titulo, '\n')
return(datos_rot)
}
f_rot(datos, 0)
## Angulo: 0 Cor: 0.61
## PS AF
## 1 2.854186 6.332167
## 2 3.146821 6.688406
## 3 3.439430 8.851149
## 4 3.068431 7.074969
## 5 2.645256 7.224186
## 6 3.506796 9.032636
## 7 3.050969 7.561653
## 8 2.709818 5.485590
## 9 3.050895 6.140124
## 10 2.918276 6.462794
## 11 2.965266 8.522330
## 12 2.984209 7.448490
## 13 3.078244 7.482237
## 14 3.111674 7.116917
## 15 3.305820 6.256351
## 16 3.152186 9.185657
## 17 3.411027 7.542378
## 18 2.420454 4.668948
## 19 2.755618 7.912778
## 20 3.197319 6.378804
## 21 2.623045 5.745543
## 22 3.007215 6.728729
## 23 3.104121 5.710465
## 24 3.156542 6.068981
## 25 3.197067 6.190286
## 26 2.744884 4.957055
## 27 3.484885 7.950061
## 28 2.890422 7.209744
## 29 2.317554 5.713624
## 30 3.538723 8.455600
## 31 2.928850 7.541035
## 32 2.776454 6.674914
## 33 3.124917 8.086079
## 34 3.399512 8.015448
## 35 3.202742 7.980939
## 36 3.207357 7.815455
## 37 3.003108 7.685480
## 38 3.063901 6.911782
## 39 2.730933 6.669645
## 40 2.995349 6.529617
## 41 2.631013 6.206219
## 42 3.172754 6.711293
## 43 2.987509 5.435029
## 44 2.797004 9.722966
## 45 3.348163 8.433221
## 46 2.694840 5.664106
## 47 2.780601 6.540636
## 48 2.999350 6.422153
## 49 3.061643 7.954876
## 50 2.905354 6.913836
## 51 3.099575 7.295760
## 52 2.980264 6.968208
## 53 2.997786 6.947304
## 54 2.854604 8.721305
## 55 3.104986 6.701418
## 56 3.555957 8.777794
## 57 2.656712 5.143820
## 58 3.062172 7.712832
## 59 2.936213 7.164915
## 60 3.141918 7.241822
## 61 3.302950 7.415487
## 62 2.628992 6.444856
## 63 3.000411 6.587240
## 64 2.959049 5.745863
## 65 2.816907 5.705621
## 66 3.106671 7.356666
## 67 2.866682 7.579194
## 68 2.993891 7.066750
## 69 3.043228 8.134446
## 70 3.547670 9.440185
## 71 2.849133 6.419089
## 72 2.567255 4.218179
## 73 3.198199 8.209843
## 74 3.032253 6.115812
## 75 3.123079 6.125658
## 76 2.807550 8.304950
## 77 2.813627 6.680956
## 78 2.995342 5.488950
## 79 3.166133 7.194549
## 80 3.215998 6.788975
## 81 2.544823 7.089335
## 82 2.811019 7.511306
## 83 2.974757 6.545486
## 84 3.026810 7.793236
## 85 3.038253 6.720014
## 86 3.170719 7.380092
## 87 3.401261 8.286004
## 88 3.217686 7.499674
## 89 2.586714 6.670956
## 90 3.260035 8.375871
## 91 3.190430 8.196093
## 92 3.068193 7.666890
## 93 2.795871 7.332537
## 94 2.971126 6.227536
## 95 3.500727 8.594783
## 96 2.522151 6.342853
## 97 3.565330 9.606982
## 98 3.482041 8.811132
## 99 3.205573 6.670957
## 100 3.044367 5.720739
## 101 2.965278 6.126413
## 102 2.927358 7.331275
## 103 2.716188 6.745716
## 104 2.777846 6.609676
## 105 2.869377 5.844983
## 106 2.977845 6.948233
## 107 2.976257 6.032163
## 108 2.787620 4.972562
## 109 2.734012 6.577111
## 110 3.409861 8.064189
## 111 2.469509 6.383214
## 112 3.150427 7.725816
## 113 2.605049 5.067530
## 114 3.141268 6.905675
## 115 3.231729 7.601454
## 116 3.338611 7.311840
## 117 3.060860 7.119893
## 118 2.774258 6.247233
## 119 2.748644 5.993009
## 120 2.940414 5.742350
Esta función cambia la correlación hasta buscar la menor correlación que se observa en 81°
for (ang_i in seq(0,90,0.5)) {
f_rot(datos, ang_i)
}
## Angulo: 0 Cor: 0.61
## Angulo: 0.5 Cor: 0.631
## Angulo: 1 Cor: 0.65
## Angulo: 1.5 Cor: 0.668
## Angulo: 2 Cor: 0.684
## Angulo: 2.5 Cor: 0.7
## Angulo: 3 Cor: 0.714
## Angulo: 3.5 Cor: 0.728
## Angulo: 4 Cor: 0.741
## Angulo: 4.5 Cor: 0.752
## Angulo: 5 Cor: 0.763
## Angulo: 5.5 Cor: 0.774
## Angulo: 6 Cor: 0.783
## Angulo: 6.5 Cor: 0.792
## Angulo: 7 Cor: 0.801
## Angulo: 7.5 Cor: 0.809
## Angulo: 8 Cor: 0.816
## Angulo: 8.5 Cor: 0.823
## Angulo: 9 Cor: 0.83
## Angulo: 9.5 Cor: 0.836
## Angulo: 10 Cor: 0.842
## Angulo: 10.5 Cor: 0.847
## Angulo: 11 Cor: 0.852
## Angulo: 11.5 Cor: 0.857
## Angulo: 12 Cor: 0.861
## Angulo: 12.5 Cor: 0.866
## Angulo: 13 Cor: 0.87
## Angulo: 13.5 Cor: 0.873
## Angulo: 14 Cor: 0.877
## Angulo: 14.5 Cor: 0.88
## Angulo: 15 Cor: 0.884
## Angulo: 15.5 Cor: 0.887
## Angulo: 16 Cor: 0.889
## Angulo: 16.5 Cor: 0.892
## Angulo: 17 Cor: 0.895
## Angulo: 17.5 Cor: 0.897
## Angulo: 18 Cor: 0.899
## Angulo: 18.5 Cor: 0.901
## Angulo: 19 Cor: 0.904
## Angulo: 19.5 Cor: 0.905
## Angulo: 20 Cor: 0.907
## Angulo: 20.5 Cor: 0.909
## Angulo: 21 Cor: 0.911
## Angulo: 21.5 Cor: 0.912
## Angulo: 22 Cor: 0.914
## Angulo: 22.5 Cor: 0.915
## Angulo: 23 Cor: 0.916
## Angulo: 23.5 Cor: 0.918
## Angulo: 24 Cor: 0.919
## Angulo: 24.5 Cor: 0.92
## Angulo: 25 Cor: 0.921
## Angulo: 25.5 Cor: 0.922
## Angulo: 26 Cor: 0.923
## Angulo: 26.5 Cor: 0.924
## Angulo: 27 Cor: 0.925
## Angulo: 27.5 Cor: 0.925
## Angulo: 28 Cor: 0.926
## Angulo: 28.5 Cor: 0.927
## Angulo: 29 Cor: 0.927
## Angulo: 29.5 Cor: 0.928
## Angulo: 30 Cor: 0.928
## Angulo: 30.5 Cor: 0.929
## Angulo: 31 Cor: 0.929
## Angulo: 31.5 Cor: 0.93
## Angulo: 32 Cor: 0.93
## Angulo: 32.5 Cor: 0.93
## Angulo: 33 Cor: 0.931
## Angulo: 33.5 Cor: 0.931
## Angulo: 34 Cor: 0.931
## Angulo: 34.5 Cor: 0.931
## Angulo: 35 Cor: 0.931
## Angulo: 35.5 Cor: 0.931
## Angulo: 36 Cor: 0.931
## Angulo: 36.5 Cor: 0.931
## Angulo: 37 Cor: 0.931
## Angulo: 37.5 Cor: 0.931
## Angulo: 38 Cor: 0.931
## Angulo: 38.5 Cor: 0.931
## Angulo: 39 Cor: 0.931
## Angulo: 39.5 Cor: 0.931
## Angulo: 40 Cor: 0.93
## Angulo: 40.5 Cor: 0.93
## Angulo: 41 Cor: 0.93
## Angulo: 41.5 Cor: 0.929
## Angulo: 42 Cor: 0.929
## Angulo: 42.5 Cor: 0.928
## Angulo: 43 Cor: 0.928
## Angulo: 43.5 Cor: 0.927
## Angulo: 44 Cor: 0.927
## Angulo: 44.5 Cor: 0.926
## Angulo: 45 Cor: 0.925
## Angulo: 45.5 Cor: 0.924
## Angulo: 46 Cor: 0.924
## Angulo: 46.5 Cor: 0.923
## Angulo: 47 Cor: 0.922
## Angulo: 47.5 Cor: 0.921
## Angulo: 48 Cor: 0.92
## Angulo: 48.5 Cor: 0.919
## Angulo: 49 Cor: 0.918
## Angulo: 49.5 Cor: 0.916
## Angulo: 50 Cor: 0.915
## Angulo: 50.5 Cor: 0.914
## Angulo: 51 Cor: 0.912
## Angulo: 51.5 Cor: 0.911
## Angulo: 52 Cor: 0.909
## Angulo: 52.5 Cor: 0.907
## Angulo: 53 Cor: 0.905
## Angulo: 53.5 Cor: 0.903
## Angulo: 54 Cor: 0.901
## Angulo: 54.5 Cor: 0.899
## Angulo: 55 Cor: 0.897
## Angulo: 55.5 Cor: 0.894
## Angulo: 56 Cor: 0.892
## Angulo: 56.5 Cor: 0.889
## Angulo: 57 Cor: 0.886
## Angulo: 57.5 Cor: 0.883
## Angulo: 58 Cor: 0.88
## Angulo: 58.5 Cor: 0.877
## Angulo: 59 Cor: 0.873
## Angulo: 59.5 Cor: 0.869
## Angulo: 60 Cor: 0.865
## Angulo: 60.5 Cor: 0.861
## Angulo: 61 Cor: 0.857
## Angulo: 61.5 Cor: 0.852
## Angulo: 62 Cor: 0.847
## Angulo: 62.5 Cor: 0.841
## Angulo: 63 Cor: 0.835
## Angulo: 63.5 Cor: 0.829
## Angulo: 64 Cor: 0.823
## Angulo: 64.5 Cor: 0.816
## Angulo: 65 Cor: 0.808
## Angulo: 65.5 Cor: 0.8
## Angulo: 66 Cor: 0.792
## Angulo: 66.5 Cor: 0.783
## Angulo: 67 Cor: 0.773
## Angulo: 67.5 Cor: 0.763
## Angulo: 68 Cor: 0.752
## Angulo: 68.5 Cor: 0.74
## Angulo: 69 Cor: 0.727
## Angulo: 69.5 Cor: 0.714
## Angulo: 70 Cor: 0.699
## Angulo: 70.5 Cor: 0.683
## Angulo: 71 Cor: 0.667
## Angulo: 71.5 Cor: 0.649
## Angulo: 72 Cor: 0.629
## Angulo: 72.5 Cor: 0.609
## Angulo: 73 Cor: 0.587
## Angulo: 73.5 Cor: 0.563
## Angulo: 74 Cor: 0.538
## Angulo: 74.5 Cor: 0.512
## Angulo: 75 Cor: 0.483
## Angulo: 75.5 Cor: 0.453
## Angulo: 76 Cor: 0.421
## Angulo: 76.5 Cor: 0.388
## Angulo: 77 Cor: 0.352
## Angulo: 77.5 Cor: 0.315
## Angulo: 78 Cor: 0.277
## Angulo: 78.5 Cor: 0.237
## Angulo: 79 Cor: 0.195
## Angulo: 79.5 Cor: 0.153
## Angulo: 80 Cor: 0.11
## Angulo: 80.5 Cor: 0.065
## Angulo: 81 Cor: 0.021
## Angulo: 81.5 Cor: -0.024
## Angulo: 82 Cor: -0.068
## Angulo: 82.5 Cor: -0.112
## Angulo: 83 Cor: -0.156
## Angulo: 83.5 Cor: -0.198
## Angulo: 84 Cor: -0.239
## Angulo: 84.5 Cor: -0.279
## Angulo: 85 Cor: -0.318
## Angulo: 85.5 Cor: -0.355
## Angulo: 86 Cor: -0.39
## Angulo: 86.5 Cor: -0.423
## Angulo: 87 Cor: -0.455
## Angulo: 87.5 Cor: -0.485
## Angulo: 88 Cor: -0.513
## Angulo: 88.5 Cor: -0.54
## Angulo: 89 Cor: -0.565
## Angulo: 89.5 Cor: -0.588
## Angulo: 90 Cor: -0.61
Datos nuevos rotados
dr = f_rot(datos, 81.5)
## Angulo: 81.5 Cor: -0.024
ggplot(dr)+
aes(AF, PS)+
geom_point()