buscar el link en mis repositorios
Nota:En el documento puede que se presenten varios errores de ortografía asi como varios caracteres extraños que puedan hacer que se pierda interpretación, por lo cual de ser así me disculpo de antemano, ya que no los corrigo debido a mi escacez de tiempo. Gracias.
Nota: tambien debido a la escacez del tiempo, las interpretaciones estadisticas que se relizaron fueron muy someras, por lo que pueden haber errores, y el contenido de este documento no tiene nungun caracter cientifico serio oficial que lleve a tomar desiciones de tal tipo ni nada por el estilo.
El objetivo principal de este documento simplemente es poner en práctica ciertas funciones que aprendí en el curso de statistical inference dado en Coursera por parte de la universidad John hopkins university.
inicialmente se empiezxa el curso con definiciones como la inferencia, siendo esta el proceso de obtener conclusioens de la poblcion apartir de muestras ruidosas, se hablan de las 3 relgas de la probabilidad como que no pueden sumar mas de 1, que tienen que ser un valor entre 0 y 1, y la de que la suma de estas de dos eventos mutuamente excluyentes es la suma del as probabilidades, tambien se habla de las funciones de masa y funciones de densidad, donde la de masa se caracteriza por ser para datos dsicretos y se entiende como una funcion que evaluada en un valor nos da la probabilidad de que ese valor ocurra; por su parte la de densidad es para datos continuos y por lo tanto es el area bajo la curva de la funcion; hay que resaltar que para que sean funciones de masa y densidad tienen que cumoplir las caracteristicas mencionadas antes
Otros cocneptos que se nombran sin la funcion acumulativa y la funcion survival, que basicamente son opuestas, es decir la survival es 1 menos la acumulativa, donde la acumulativa es el “valor izquierdo” de la distribucion(respecto a un cuantil) y la survival el valor derecho como por ejemplo:
# acumulativa(prob de que una variable aleatoria es menor o igual que el valor x )
pnorm(1.645)
## [1] 0.9500151
en el caso anterior se dice que una variable aleatoria que sigue una distribucon normal estandar, tiene una distribucion acumulativa de densidad para el valor de 1.645 de aporixmandam ente el 95%. para el calculo de la survival se puede realizar de la siguente manera:
# survival(prob de que una variable aleatoria es mayor que el valor x )
pnorm(1.645,lower.tail = FALSE)
## [1] 0.04998491
1-pnorm(1.645)
## [1] 0.04998491
tambien se resalta que la funcion qnorm() sirve para el proceso inverso al anteiror, osea para la obtencion del cuantil respectivo, por ejemplo si tuviesemos datos que sigen una distribucion normal con media 20(digamos que edades de un curso) y desviacion estandar de 2, preguntemenos que grupo de edades tienen una probabilidad de 80% de que esten en el grupo
qnorm(0.8,mean=20,sd=2)
## [1] 21.68324
nos damos cuenta que hay un 80% de probabilidad de que una varaible aleatoria, una edad aleatoria de este grupo, tenga una edad igual o menor a 21.68
otros conceptos que se nombran son la regla de bayes, la cual tiene por interesante como se toma en cuenta la eficacia real de algun test tienendo en cuenta la prevalencia del paciente que toma el test, esto lo ejemoplifican mediante el calculo de los “odds” que simpelmente es cualquier cociente que tenga la forma p/(1-p), en este caso esto se alica para la sensitividad y especificidad del test(prbabilidades de que de positivo y negativo el test dado que realmente tiene o no la enfermedad), esto sirve como un factor que multiplicaria aumentando o disminiouetcdo la prevalencia del paciente para indica como la fuerza que tiene decir la probaiblidad de que realmente tenga la enfermedad dado que salio positivo o negativo
otra idea fndamnetal que se empieza a resaltar es la idea de que el promedio de los promedios de muestras de una dsitirbuvion es el mismo promedio de la distribucion original
En las diferentes enseñanzas del curso, se eneña a manjear el paquemte manipulate que sirve para relaiar una grafica que se puede manipular como su nombre lo indica, para esto traigamos algunos datos reales
#UrlDelArchivo <- "https://datosabiertos.bogota.gov.co/dataset/44eacdb7-a535-45ed-be03-16dbbea6f6da/resource/b64ba3c4-9e41-41b8-b3fd-2da21d627558/download/osb_enftransm-covid-19_30122021.csv"
#download.file(UrlDelArchivo,destfile = "Lectura1.csv")
dir()
## [1] "Lectura1.csv"
## [2] "Repaso de statistical inference.Rproj"
## [3] "Statistical-Inference.Rmd"
## [4] "Statistical-Inference_cache"
## [5] "Statistical Inference.Rmd"
date()
## [1] "Tue Jan 04 19:19:41 2022"
datos <- read.csv("Lectura1.csv",sep=";")
dim(datos)
## [1] 1479622 11
dada la cantidad de datos, mnos uqedamos con solo los ultimos 10000 datos para optimizar calculos
datos <- datos[1469622:1479622,]
plot(datos$EDAD)
observamos que inicialmente parece que estan mas concentrados los casos entre las edades de 20 y 40 años, ahora agregemos manipulate, para ello inicialmente tenemos que hacer una grafica en una fucion, la cual dependa de algun parametro de graficacion que deseamos cambiar, en mi caso lo hare con un rango de edades que especifique el usuario para si deerminar cuantos contagiados hay en ese rango y asi “explorar” de manera interactiva cuantos hay en el que se desea mirar
GraficaAcambiar <- function(Lim1,Lim2){
if(Lim1<=Lim2 ){
plot(datos$EDAD,xlim = c(0,12000),main = "contagiados por rango de edad")
abline(h=Lim1,col="magenta",lwd=5)
abline(h=Lim2,col="green",lwd=5)
legend("topright",pch=c(16,16),col=c("green","magenta"),legend=c("limite superior","limite inferior"))
dato <- as.character(sum(datos$EDAD >=Lim1 & datos$EDAD <=Lim2))
dato <- paste("hay",dato)
LimInfe <- as.character(Lim1)
LimSupe <- as.character(Lim2)
text(11000,(Lim1+Lim2)/2,dato)
}
if(Lim1>Lim2){
stop("no permitido") }
}
con la funcion anterior ya se pueden realziar diferentes graficas
GraficaAcambiar(20,40)
GraficaAcambiar(30,50)
ahora manipulate nos sserivara para hacer estos cambios inmediatamente y mas interactivamente
nota el codigo siguiente solo funciona dentro de R studio
#library(manipulate)
#manipulate(GraficaAcambiar(Lim1,Lim2), Lim1 = slider(0, 100, step = 1),Lim2 =slider(0, 100, step = 1))
nota:para el codigo anterior en el device de R en Rstudio sale un engranaje al que se le hace click y ahi salen los sliders, cabe resaltar que si se lee esto en E pubs probablemente no se tenga la opcion
psoteriormente se empieza a reforzar la idea de que la media y la varianza de una muestra son estimadores insesgados de la media y varianza de la poblacion, donde se nombra esta idea diceidno que si se se sca una muestra, el promedio y varianza de estas son una variable aleatoria debido a que si se saca otra muestra pues son diferentes y asi, entonces si se sacan varios pormedios y varias varainzas entonces los valores esperados o centros de esa tdsiotribuciones son el el promedio y varianza de la poblacion, se nombra lo siguente:
datos <-read.csv("Lectura1.csv",sep=";") # leo nuevamente los datos
dim(datos)
## [1] 1479622 11
var(datos$EDAD)
## [1] 311.8252
sd(datos$EDAD)
## [1] 17.65857
estos datos de la varainza y desviacion estandar explican la variabilidad de edad exacta de esta muestra de personas(1479622) e intentan estimar la variabilidad de la edad de la poblacion de bogota( si se esta dispuesto a sumir que la muestra fue sacada de manera aleatoria, lo cual creo que si debido a que a todos les da covid de manera aleatoria), donde el unidades de años(no aos al cuadrado) con estos datos se podria decir que la varaibilidad de edaddes de los bogotanos es de 17 años
var(datos$EDAD)/length(datos$EDAD)
## [1] 0.0002107465
sd(datos$EDAD)/sqrt(length(datos$EDAD))
## [1] 0.01451711
mean(datos$EDAD)
## [1] 38.57132
ahora se nombra que el dato anterior es una estimation de que tan variables son los promedios de edades de muestras de 1479622 personas, por lo que este valor de 0.014 esta relacionada a la presicion de nuestra estimacion del promedio de edad de los bogotanos, o lo que uqiere decir que esta edad de 38.57 que es la edad proemdio de nuestra muestra es varaible un 0.014 rspecto a otra muestra de 1479622, por lo que se podria decir que el promedio de edad de bogotanos es 39 aporximadamente a 2021
en cuanto a la distribuvion binomial, se eneña a manejar esta mediante la funcion pbinom() y lo que cabe resaltar, es que si se graficara esta con una prob de 0.5 de exito y 8 intentos, entonces todas las barras estarian como a la misma altura, si se pone una prob de 0.8 de exito entonces todas las barras se van mas a la derecha,debido a que se acumula mas la prob de que haya 8 7 6, debido que al decir que la prob de eito es alta entonces que se ganen o salgan(depende del contexto) 8 7 es mas probable a que solo se gane 1 2, en cmabio si se pone la prob de exito de 0.2 osea muy baja entonces pasa lo contrario las alturas de las barras de los valores de 1 2 se van mas a la izquerda por lo que es mas probable que solo 1 o 2 se ganen( nota yo sabia hacer esa grfica pero no me acuerdo ahora :(
esto se ejeplifica asi: si un equipo de futbol tiene una prob de ganar de de 0.8, entonces si tiene 20 partidos en la temporada cual es la prob de que gane 18 o menos , (deberia ser alta, dada la prob de exito)
pbinom(18,20,0.8)
## [1] 0.9308247
cabe rslatar que es confuso( o por lo menos para mi lo fue) si nos preguntamos con esa misma prob de exito cual esla prob que gane 4 o menos, lo cual me confudia pensado ps debe ser aun alta porque si tiene tanta ptob de ganar ps como no va a ganar solo 4, si enmbarog es erroneo esto, debido a que si preguntamso la prob de ganar 4 o menos estamos dando una prob de que de los 20 SOLO gane 4 lo cual ya es poco probable porq tiene alta prob de ganar por lo que deberia ganar mas de unos 16 o algo asi
pbinom(4,20,0.8)
## [1] 1.380346e-08
la prob es casi 0
se habla que este enuncia que la distribucion de promedios de variables iid(independientes y identicamente dsitribuidas) se convierte en una dsitribucion normal con promedio miu y desviacion estandar el error estandar(sigma cuadrado sobre n) a medida que el tamaño de la muestra de estas varaibles crece, donde el promedio de esa muestra se puede sacar como (si es de tamaño 10) coger un dado y botarlos 10 veces y sacar el promedio, o botar 10 dados y sacar el promedio; tambien se habra del Galton ’s quincunx que basicamente consiste en una tabla en la que se encuentran palitos que hacen que al entrar una bola por cualquier lado, vayan llegando al fondo y formen la forma de la distribucion normal, mostrando como la bola al seuir una distribucion binomial(de solo poder bajar por la izquerda o la derecha) llega a seguir en promedio de veces caer en una forma normal
Es muy importante este teorema, debido a que de cualquier muestra de promedios se puede aumir un comportamiento normal sin importar de que poblacion vengan(binomial, la que sea) siempre y uando se tenga suficente tamaño de muestra y sean variables iids
miremos la aplicabilidad del teorema a las edades de los infectados de bogota
#dsitribucion original de edades de infectados
hist(datos$EDAD)
abline(v=mean(datos$EDAD))
ahora sacamos varias variables normales de esta dsitribucion, restando a este promedio (al usarlo como valor esperado de la dsitribucion, en caso de no cserlo simpelmente se desplazaria el centro de nuestra distribucon normal, aun asi se mostrara un comporamineto normal)
distNormal <- c()
promediosOriginals <- c()
for (i in 1:1000) {
muestra <- sample(datos$EDAD,100000) #muestra DE 10000
menn <- mean(muestra)#promedio de la muestra
promediosOriginals[i] <- menn
normall <- (menn-mean(datos$EDAD))/(sd(datos$EDAD)/(sqrt(100000)))#"estandarizando" ese promedio
distNormal[i] <- normall
}
par(mfrow=c(2,1))
hist(promediosOriginals,main="dsitribcion de promedios dem uestras de tamaño 100000")
hist(distNormal,main="distribucion estandarizada")
obsevamos como los promedios de muestras de tamaño 100000 infectados, siguen una dsitribcuon normal aparantemente centrada en el promedio de la “poblacion original”(nuestra muestra de mas de un millon) lo cuaal se ve estandarizado en la de abajo
una ves entendido que al suponer, que las variables de uan distribucion son iids y con un tamaño sufuiencete de meustra, el promedio se comporta como una distirbucon normal con promedio miu y desviacion esntadar como el error estandar, por lo que se puede crear un intervalo que que tenga una probabilidad de contener el verdadero promedio del a problacion de un 95% al sumarle y restarle al promedio dos desviaciones esntadarres(o dos errores estandares que es la desviacion de la dostrbicon de ese promedio), esto dea cuerdo a la regla empirica, por lo que intervalo de confianza del 95% para la edad de infectados bogotanos es:
mean(datos$EDAD) + c(-1, 1) * qnorm(0.975) * sd(datos$EDAD)/sqrt(length(datos$EDAD))
## [1] 38.54287 38.59978
intervalo <- t.test(datos$EDAD)
intervalo$conf.int
## [1] 38.54287 38.59978
## attr(,"conf.level")
## [1] 0.95
notece como el intervalo simplemnete es coger el promedio de nuestra muestra que al saber que por el CLT se comporta normal con promedio miu(aprox 39) y sumarle y restarle 2 veces la desviacion estandar como el error estandar(0.01451711), sabiendo que a dos desviaciones estndares de la normal hay el 95% de los datos
ahora este intervalo se interpreta como
si sacamos vraias mseutras de tamaño 1479622 y sacamos un intervalo de confianza de cada mseutra de esos, CERCA del 95% de intevalos PODRIAN contener miu como 38.57132; en otyras palabras si cogemos otra 100 muestras de nfectados de ese tamaño y saco un intervalo de confianza del 95% de cada una de las 100 muestras, aproximadamente 95 intervalos de ese 100 contendrian ese miu de 38.57132
sum(datos$SEXO == "F")
## [1] 790618
sum(datos$SEXO == "M")
## [1] 689004
sum(datos$SEXO == "M")+sum(datos$SEXO == "F")
## [1] 1479622
en el curso tambien se nombran intervalos para proporciones, por ejemplo, sabemos que de la muestra que tenemos 790618 de los 1479622 son mujeres, mas que hombres, esto es suficiente para afirmar que las mujeres se contagian mas que los hombres, o que siempre que se tome una muestra siempre van a haber mas mujeres infectadas que hombres?
un intervalo inicial y rapido que se enseña es el siguiente
propDeMujeres <- 790618/1479622
limites <- 1/sqrt(1479622)
c(propDeMujeres-limites,propDeMujeres+limites)
## [1] 0.5335157 0.5351599
segun este intervalo inicial, si sacamoso otra muestra con otro intervalo probablemente contenga mayor porporcion de mujeres infectadas que hombres, cabe resaltar que esto solo es practico y no indica una casualidad cinetifica de que por ser mujer se contagie mas facil, hay muchos factores que no se han analizando como la edad de estas mujeres, sus ocupaciones, sus grados de exposicon al virus y demas
otro intervalo pero que se explica que no garantiza la cobertura es el wald interval, esto significa que si se sacan 100 intervalos supuestamente del 95%, solo alrededor de 80 realmente cubren el valor, y esto se vuelve peor si ella proporcion no es de 0.05 exacta
790618/1479622 + c(-1, 1) * qnorm(0.975) * sqrt(790618/1479622 * (689004/1479622)/1479622)
## [1] 0.5335341 0.5351416
en R se puede usar binom.test() para garantizar la cobertura
binom.test(790618, 1479622)$conf.int
## [1] 0.5335337 0.5351418
## attr(,"conf.level")
## [1] 0.95
se nombra el intervalo agresti/coull indicando quem ejora el wald al sumar 2 exitos y 2 failures osea
790620/1479626 + c(-1, 1) * qnorm(0.975) * sqrt(790620/1479626 * (689006/1479626)/1479626)
## [1] 0.5335340 0.5351415
notece que esto se hace con el objetivo de acercar mas la porpocion en este acso de muejres a 0.5(sabiendo que cuando p es 0.5 es que se garantiza la covertura del intervalo wald)
print("inicial")
## [1] "inicial"
790618/1479622
## [1] 0.5343378
print("sumando 2 exitos")
## [1] "sumando 2 exitos"
790620/1479626
## [1] 0.5343377
en este caso dada la cantidad de datos no sirve mucho sin embargo si notece que si se cumple
este sirve para estimar tasas, dado mi poco timepo solo dire que supongamos que en una hora realiznado lanzamientos al aro de basket falle 57 me gustaria estimar una tasa de fallo
poisson.test(57, T = 60)$conf
## [1] 0.7195207 1.2308352
## attr(,"conf.level")
## [1] 0.95
si saco varios entrenamientos de 60 minutos y sacamos un intervalo de confianza de cada mseutra de esos, CERCA del 95% de intevalos PODRIAN contener una taza de fallos entre 71% y 123%
uno de los temas mas interesantes, o con mayor aplicabilidad en mas que todo aspectos de tratamientos es la comparacion entre dos muestras, donde simplemente es la realizacion de intervalos de confianza entre las difrencias, donde a manera general si estos intervalos contienen el 0, entonces indican que las dos poblaciones no tienen algun cambio realmente, esto cambia en la manera en que se aplica dependiendo si los dos grupos tienen relacion o no, o si sus varianzas son similares o no.
cabe resaltar que teniendo estos datos por solo aplicar la funcion, creare el itnervaol de confianza para la diferencia en las edades de mujeres versus hombres de la meustra, esto independientemente si tiene sentido o no
t.test(EDAD ~ SEXO, paired=FALSE,var.equal=TRUE,data=datos)$conf
## [1] 0.6414535 0.7555128
## attr(,"conf.level")
## [1] 0.95
t.test(EDAD ~ SEXO, paired=FALSE,var.equal=FALSE,data=datos)$conf
## [1] 0.6414494 0.7555169
## attr(,"conf.level")
## [1] 0.95
notece como en R solo es necesario especificar el vector al que le queremos aplciar la diferencia, y el vector que contiene 2 categorias, con esto R ya identifica los dos grupos y realiza todos los procesos, es de resaltar que el vevor de categorias solo debe contemer 2 categorias si hubiese hombre, mujer, no definido o algo asi enotnces toca comparar de a 2 categorias, hombre con no definido, mujer con no definido y asi
notece como sin importar si se asume la varianza igual o no(depronot por no tenerm cho sentido este test) el intevalo no contiene el 0, lo que indica (y al revisar bien el resultado de R sin espcificar $conf la hipotesis alternativa) que al rededor del 95% de intervalos de diferencias de edades entre poblacion femenina y masculina de infectados de bogota no contienen el 0 lo que implica que la edad de mujeres infectadas es mayor a la de hombres
cabe resaltar que para el caso de una muestra con dependencia entre los grupos( cmo algo de un tratamiento o algo asi) la plciacion en R es mas facil, solo es necesario escepciifas directamente las diferencias entre los grupos(al tener la misma longitud) o espcificar los dos vectores de las mima longitud y esopceificar paired=TRUE
junto con los intervalos de confianza se explican las pruebas de hipotesis, donde inicalmente se explican estas con el calculo de un cuantil t que se obtiene apartir de los datos de una muestra
para entender este concepto mas claramente lo seguire aplicando a las edades de los infectados(asi no tenga sentido), supongamos que la edad de clasificacion de poblacion mayor es 50 años o mas, segun nuestra muestra de bogotanos, se puede considerar que la poblacion de bogota se encuentra en edad de persona mayor?, de lo contrario esta en edad de adultez
para lo anterior estamos probando la hipotesis nula de que la poblacionm es igual a 50 años versus la alternativa de que es menor a 50 años, inicialmente en terminos de los datos se encuentra un cuantil de esa dsitribucion (asumiendo que las edades de la muestra siguen la distirbucion normal) del asiguente forma
stanDardErrorOfthemean <- sd(datos$EDAD)/sqrt(length(datos$EDAD))
Constante <- 50+stanDardErrorOfthemean*1.645
Constante
## [1] 50.02388
mean(datos$EDAD)
## [1] 38.57132
por lo tanto refutaremos la hipotesis nula cuendo el promedio de nuestra muestra sea menor o igual que 50.02388, con un grado alfa de 0.05 o error tipo 1, lo que indica que la probabilidad de refutar la hipotesis nula cuando es cierta(cargarla) es un 5%, en este caso se refuta a favor de la alternativa, osea que es menor de 50 años
sin embargo pues esto dice el curso que generlamente nose hace sin que lo que se hace es “estandarizar” esto y pasarlo a terminos del ad sitribucon normal en este caso y si el cuantil de la distribucon normal estandar es mayor al del 95% que sabemos que es 1.645 emtpnce se refuta la nula
estadistico <- (mean(datos$EDAD)-50)/(stanDardErrorOfthemean)
estadistico
## [1] -787.2555
qnorm(0.05)
## [1] -1.644854
como el estadistico es menor que el Z sub alfa se rechaza la nula a favor de la alternativa
se pueden probar varios tipos de hipotesis asi:
miu igual a 50 versus miu diferente de 50
abs(estadistico )
## [1] 787.2555
qnorm(1-(0.05/2))
## [1] 1.959964
como el valor abosluto del estadsitico es mayor o igual que 1.959964 se refuta la nula a favor de la alternativa de que miu es diferente de 50 (esto tambien se puede cmaprar revisando los dos lados)
miu igual 30 versus miu mayor a 30
(mean(datos$EDAD)-30)/(stanDardErrorOfthemean)
## [1] 590.4291
qnorm(1-0.05)
## [1] 1.644854
como el valor abosluto del estadsitico es mayor o igual que 1.6448544 se refuta la nula a favor de la alternativa de que miu es mayor a 30
Cabe resaltar que se nombra la relacion de los intervalos de cofnianza con los hipotesis test, siendo:
que los ocnfidence intervals dan la estimación en términos de los datos, el hipoteis test da la desicion en solo términos estadsiticos, la otra cosa esu que si comparamos el doble test hipotesis es lo mismo que un intervalo de confianza pero no miramos ahcia dentro sino hacia fuera ya q es mirar si el quantil de nseutra muestra esta por encima de el cuantil del limite superor del intervalo y si esta por debajo del cuantil del limit inferior edel intervalo, donde el intervalo da la estimación del os valores de adentro
este se puede definiir inicialmente como la probabilidad de que se de el estadistico que se esta probando o mas o como la probailidad de evidencia suficente o mas
el p value es imporantisimo debido a que de cualquier test que se haga se encuentra un pvalue, especilamente en R para todos los test que hay, este se compra directamente con el nivel de significancia, donde se refuta la hipotesis nula si el p value es menor al nivel de significancia(cuando sale el por 10 a la menos algo osea un 0.000…)esto porque en terminos graficos es como si se hubiese obtenido el t estadistico por delante del cuantil, si el p value da un 0.03, esot quiere decir q esa area bajo la curva donde se encuntra el estadistico que no sabemos cual es es menor al 0.05 por lo que tiene que estar a la derecha de este(no olvidar la forma de campana), apra culcualro en R de forma directa es simplemente sacar un area bajo la curva del adsitrbucion que se evalue como la funcion pt()para la dirbucon t o la pnorm()
Tener en cunta que el p valor esiempre asume la hipotesis nula como verdadera ósea si el p valor de echo da para refutarla se podria tambn decir que aun asi es verdadera pero que el valor que se observo o que estamos testeanto es un caso extraño, o que efecitamente si es falsa la nula o quela diribucon que se asumio es incorrecta ósea como sea se buscan escusas para defender la nula
por ejemplo el p value para la difrencia entre edades que se habia hecho antes es:
t.test(EDAD ~ SEXO, paired=FALSE,var.equal=TRUE,data=datos)
##
## Two Sample t-test
##
## data: EDAD by SEXO
## t = 24.005, df = 1479620, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## 0.6414535 0.7555128
## sample estimates:
## mean in group F mean in group M
## 38.89658 38.19810
con este p valor se dice: que la probabilidad de obtener evidencia tan extrema o mas extrema que la que relamente se pbtubo bajo la hipteiss nula(o que apoye la hipoteis nula) es practicamente 0 por lo que se refuta a favor de la laternativa, dicendo que la difrencia entre los promedios no es 0, por lo que se concluye lo mismo del intervalo de confianza dicendo que la edad de mujeres es mayor
Poder es la probabildiad de rechazar la hipoteis nula cuando es falsa, ósea lo contrsrio al error tipo 2 ya que este es aceptar la nula cuando es falsa, útil para diseñar el experimeinto ya qu si se tienen solo 3 personas de ceiart forma es intutivio lo que se obtendrá en cambio si se utilizan 300 ya no se sabe que se obtendrá con tanta certeza
Básicamente el poder es el área bajo la curva de otra curva normal(o depende de ladistirbucion) que tiene como miu el valor q nos preguntamos de la muestra(el 39 aproxmado de las edades, -787.2555), donde el área bajo esta curva es el poder tendiendola encuenta desde el estadístico al q se rechaza la nula de la curva original(-1.644854, 50.02)
nota: el siguiente codigo no tiene mucha ligica debido aque por el grandisimo tamaño de la muestra se tiene altisimo poder
power.t.test(n=length(datos$EDAD),delta=50-mean(datos$EDAD),sd=sd(datos$EDAD),type="one.sample",alt="one.sided")$power
## [1] 1
set.seed(21)#para tener la misma muestra
muestra <- sample(datos$EDAD,100)
power.t.test(n=length(muestra),delta=50-mean(muestra),sd=sd(muestra),type="one.sample",alt="one.sided")$power
## [1] 0.9997423
mean(muestra)
## [1] 40.51
stanDardErrorOfthemean <- sd(muestra)/sqrt(length(muestra))
50+stanDardErrorOfthemean*1.645
## [1] 53.02949
fijece como el poder anterior es practicamente 1, esto se debe a que al imaginarnos la curva con promedio como nuestra hipotesis(50 la edad de la poblacion)y a la izeurida de esta otra curva con promedio 40.51(el de nuestra muestra) y mirar cuanto es el area bajo esta curva con promedio 40.51 respecto al cuantil 53.02949 de la curva con promedio 50; practicamente la encierra toda la curva de promedio 40.51; esto se debe princiaplemnte a que sabemos(al haber testeado antes) que (definicon de poder:) la probaiblidad de recharzar la hipotesis nula(de q la edad es 50) cuando es falsa(sabemos que si) es muy alta(debido al gran tamaño de muestra con el que se prueba esto anteriormente)
sin mebargo notece como el poder ya no es tanto al acercarnos a nuestro promedio, cambiemos la hipotesis nula a 42, para ver como cambia el poder:
stanDardErrorOfthemean <- sd(muestra)/sqrt(length(muestra))
42+stanDardErrorOfthemean*1.645
## [1] 45.02949
power.t.test(n=length(muestra),delta=42-mean(muestra),sd=sd(muestra),type="one.sample",alt="one.sided")$power
## [1] 0.2000867
obsevece como el poder se redujo a 20%, esto se debe a que al imanignarnos la misma curva de promedio 40.51 pero con la curva de la de la derecha mucho mas cercana con promediio 42(casi sobrepuesta a la otra en comapracion a la de 50) y en comapracion al estadiscio 45.02949 se osberva como esta area bajo la curva se desminuye considerablemente osea, a probaiblidad de recharzar la hipotesis nula(de q la edad es 42) cuando es falsa ya no es tan clara como antes, debido a que el den uestra muestra es mas cercano
en conclusion el poder sirvbe para preguntarnos cuanto tamaño dem eustra debemos tener para tener un buen poder, o lo cnatrio por ejemplo: cual deberia ser el tamaño de la mesutra si deesamos un poder de 90% en las edades?
power.t.test(power=0.9,delta=50-mean(datos$EDAD),sd=sd(datos$EDAD),type="one.sample",alt="one.sided")$n
## [1] 21.87126
notece como para tener un poder de 90% solo eran neceasrias 22 personas para tener una probailidad alta de rechazar la hipotesis nula(de que la edad de la poblacion en promedio es 50(cuchos)) cuando es falsa(no cagarla)
sin emabargo notece si quremos porbar una hipotesis mas cercana, como necesitamos mas personas:
power.t.test(power=0.9,delta=42-mean(datos$EDAD),sd=sd(datos$EDAD),type="one.sample",alt="one.sided")$n
## [1] 228.5173
nota: esto matematicamente y graficamente se debe a los cambios en la desviacion de las graficas debido al tamaño de la muestra
ahora supongamos el caso contrario, donde queremos saber cuanto poder vamos a tener si solo podemos contar con 100 personas
power.t.test(n=100,delta=42-mean(datos$EDAD),sd=sd(datos$EDAD),type="one.sample",alt="one.sided")$power
## [1] 0.6116037
si definieramos que ncesiamtos como minimo una probabilidad de no cagarla(recharza la nula cuando es falsa) de 75%, seri mejor toamr ladeisicon de buscar mas gente o no hacer nada o algo asi
inicialmente en esta parte se habla del jacknife como una texnica para estimar algun parametro, sin emabrgo se ponde de ejemplo la mediana pero aun asi no se recomienda; posteiormente a este se habla del boostrap, que consiste en una técnica que sirve para estimar intervalos de confianza de algun estadístico y errores estandares.
la idea del boostrap, es estimar esto cuando solo se tiene una muestra y no se pueden sacar mas, entonces se scan varias muestras de la mismas muestra con reemplzaamineto, y a estas muestras se saca el estadistico que se busca, y la desviacion estandar como el error, se ejemplifica con la mediana:
supogamos que por alguna razon solo pedomos tener 1000 personas para estudio
set.seed(21)
muestra <- sample(datos$EDAD,1000)
ahora, de esa unica muestra construimos muestras de 1000 datos para calcular 1000 medianas, para ello extraemos un millon de datos con reemplzamiento, lo que indica que tenemos un millon de datos iguales de la muestra original pero extraidos aleatoriamente donde algunos se repetiran mas que otros, lo cual hace qu tengamso datos de la poblacion original osea que son probablemente reales simulando muestras
se saca un millon para repartir estos en 1000 muestras de 1000 datos, los cuales se organizan en una matriz de 1000 por 1000, donde mediante el comnado apply()nos quedamos con las filas y a esas le sacamos la mediana obtenmiendo asi un vector de 1000 medianas sobre el cual calculamos la desviacion estandar(como el error estandar) y los cuantiles 25% y 75% como el intervalo de confianza
set.seed(21)
muestrasss <- matrix(sample(muestra, 1000*1000, replace = TRUE), 1000, 1000)
medians <- apply(muestrasss, 1, median)
sd(medians)
## [1] 0.8754916
quantile(medians, c(0.025,0.975))
## 2.5% 97.5%
## 35 38
obteniendo que si sacamos varias muestras de tamaño 1000 y sacamos un intervalo de confianza de cada mseutra de esos, CERCA del 95% de intevalos PODRIAN contener una mediana entre 35 y 38 con un error estandar de 0.8754
hist(medians)
library(boot)
stat <- function(x,i){median(x[i])}
fuera <- boot(data=muestra,
statistic = stat,
R=1000)
boot.ci(fuera)
## Warning in boot.ci(fuera): bootstrap variances needed for studentized intervals
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = fuera)
##
## Intervals :
## Level Normal Basic
## 95% (35.46, 38.89 ) (36.00, 39.00 )
##
## Level Percentile BCa
## 95% (35, 38 ) (35, 38 )
## Calculations and Intervals on Original Scale
## Some BCa intervals may be unstable
notece como al nivel de 95% y en precentil, sale el intervalo de 35 a 38, igual que antes
básicamente sirven para buscar una inferencia formal, consite en PERMUTAR(o revolver las etiquetas de dos grupos) para asignar el valor de un grupo original al otro grupo en difernetes combinaciónes haciendo como si no tuviera efecto el Grupo, por eso se hace esto asumendo que el tipo de grupo no esta relacionado con el resultado(esa seria la hipotesis nula), y al sacar estas permutaciones se calucla el msimos estadístico(la diferencia en las means de los dos grupos generalmente, que es un comaprativo de los grupos), con esto se calcula un p value para hacer la inferencia respecto a un nivel como el 5%, donde con eso se rechaza o no la hipotesis de que los tipos de grupos si importan o no( ósea si hay dependidencia del rutlado respecto el grupo)
para aplicar lo anterior, revisemos si el tipo de edad, efectivamente es mas probale que este llege a fallecdio que a recuperarce, incialmente miremos las comparaciones entre los grupos
boxplot(datos$EDAD ~ datos$ESTADO)
observece como con analisis exploratoro inicial PARECE que la edad promedio de los fallecidos(primer boxplot) ronda al rededor de 65, en comparacion a los recuperados(ultimo boxplot) que ronda al rededor de los 37, mediante esta tecnia del permutation test, obtengamos un p valor para realzar ina inferencia formal respecto a estos datos
subdata <- datos[datos$ESTADO %in% c("Fallecido", "Leve"), ]
y <- subdata$EDAD
group <- subdata$ESTADO
testStat <- function(w, g) mean(w[g == "Fallecido"]) - mean(w[g == "Leve"]) #function q va a ahcer la restas de las means de los grupos permutados
observedStat <- testStat(y, group)# estadisicito observado con los grupos reales para hacer al cmparacion del p value
permutations <- sapply(1:10000, function(i) testStat(y, sample(group)))
observedStat
## [1] 30.09021
mean(permutations > observedStat)
## [1] 0
en el codigo anterior primero observamos que la diferencia en los promedios de edad observados del grupo de fallecidos respecto el de sintomas leves es alrededor de 30(osea que de los que se observaron le llevan 30 años los que llegaron a fallecidos resepcto los que solo tuvieron sintomas leves), y el calculo del p value que se calcula como un promedio de TRUES y FALSES(si saco el promedio de unos y ceros de 20 datos, si hay 3 trues es lo mismo a 1 mas 1 mas 1 sobre 20(promedio), y eso es lo mismo a decir que hay 3 unos de 20 datos) donde al ser el valor practiamcente 0(respecto al nivel de signifacina de 0.05) se rechaza la hipotesis nula de que el tipo de grupo no esta relacionado a la edad en favor de la alternativa de que si esta relacionado a la edad resepcto a fallecido y leve, indicando que el promedio de edad de fallecidos es mas alto al de os de sntomas leves
probemos ahora lo mismo entre grave y moderado
subdata <- datos[datos$ESTADO %in% c("Grave", "Moderado"), ]
y <- subdata$EDAD
group <- subdata$ESTADO
testStat <- function(w, g) mean(w[g == "Grave"]) - mean(w[g == "Moderado"]) #function q va a ahcer la restas de las means de los grupos permutados
observedStat <- testStat(y, group)# estadisicito observado con los grupos reales para hacer al cmparacion del p value
permutations <- sapply(1:10000, function(i) testStat(y, sample(group)))
observedStat
## [1] 10.5772
mean(permutations > observedStat)
## [1] 3e-04
observece como se vuelve a rechazara la hipotesis, donde tambien es mayor al diferencia de graves respecto a moderados
algunos conceptos observados en el curso de brian caffo de bootcamp
muestra <- datos$EDAD[1:100]
stem(muestra)
##
## The decimal point is 1 digit(s) to the right of the |
##
## 1 | 889
## 2 | 11122233335566788889999
## 3 | 000112234446777778
## 4 | 0000011122224555677999
## 5 | 023344444678899
## 6 | 00122244557789
## 7 | 02223
qqnorm(muestra)
qqline(muestra)
estudio <- table(datos$FUENTE_O_TIPO_DE_CONTAGIO,datos$SEXO)
mosaicplot(estudio)
library(binom)
## Warning: package 'binom' was built under R version 4.1.2
binom.bayes(790618,1479622,type="highest")
## method x n shape1 shape2 mean lower upper sig
## 1 bayes 790618 1479622 790618.5 689004.5 0.5343378 0.533534 0.5351415 0.05
notece como en lo wer y upper se encuentra un intervalo muy parecido a los hechos en la parte de intervalos para proporciones con un nivel de significancia de 5%, en este caso al ser obtenido por un metodo bayesiano, este intervalo se interpreta como un INTERVALO DE CREDIBILIDAD, indicando que la prbabilidad de que la propocion de mujeres se encuentre entre 0.533534 y 0.5351415 es un 95%
t.test(log(datos$EDAD))$conf
## [1] 3.512363 3.514319
## attr(,"conf.level")
## [1] 0.95
exp(c(3.512363,3.5143190))
## [1] 33.52740 33.59304
el anterior intervalo de cofnianza estima las media geometrica de la edad de la poblacion, si los datos en forma logaritmica fuecen simetricos, entonces tambien se estaria estimando la mediana de la poblacion, lo cual da diferente a lo obtenido en boostrap y se prueba al mirar la dsitribucon:
hist(log(datos$EDAD))
grupo1 <- log(datos$EDAD[datos$SEXO == "F"])
grupo2 <- log(datos$EDAD[datos$SEXO == "M"])
t.test(grupo1,grupo2, paired=FALSE,var.equal=FALSE)
##
## Welch Two Sample t-test
##
## data: grupo1 and grupo2
## t = 28.086, df = 1430210, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 0.02621056 0.03014320
## sample estimates:
## mean of x mean of y
## 3.526462 3.498285
el anterior intervalo se interpreta de igual forma que los noramles, done al no contencer el cero se osberva que hay mayor edad promedio en el grupo de mujeres, ahora el ii¿nteresante es el siguietne:
exp(c(0.02621056,0.03014320))
## [1] 1.026557 1.030602
en este lo que se inerpreta es que se incremento la edad de mujeres resepcto a la de hombres entre un 2% a un 3% lo cual se observa asi:
mean(datos$EDAD[datos$SEXO == "M"])+mean(datos$EDAD[datos$SEXO == "M"])*0.02
## [1] 38.96206
mean(datos$EDAD[datos$SEXO == "M"])+mean(datos$EDAD[datos$SEXO == "M"])*0.03
## [1] 39.34404
la edad de las mujeres deberia estar entre esos 2 valores con un 95% de confianza
mean(datos$EDAD[datos$SEXO == "F"])
## [1] 38.89658