El siguiente informe nace como parte de las actividades de la asignatura Estadistica Avanzada del Master en Data Science en la Universitat Oberta de Catalunya, con esto busco ofrecer un blog personal de informes que permitan evidenciar el crecimiento académico que se puede ir adquiriendo con el paso del Master y como R Studio es una herramienta de gran uso.
Es de resaltar que mi primer contacto con el Software R se da en este trabajo, por lo que soy consciente de que existen mejores ténicas para el uso de este, las cuales iran reflejandose con el paso de los informes.
En nuestro archivo fuente encontraremos almacenados los _datos de una investigación médica sobre la capacidad pulmonar de varias personas, con el objetivo de estudiar si los hábitos de salud y los hábitos como fumadores influencian la capacidad pulmonar. Para realizar el estudio se recogió una muestra de 300 personas. A cada persona, se le preguntó a través de un cuestionario su género, hábitos de deporte, si era fumadora, y en caso de que lo fuera, cuántos cigarrillos al día de promedio fumaba y los años que hacía que fumaba. Además, se midió la capacidad pulmonar de cada persona a partir de un test de aire expulsado, desde donde se tomó como capacidad pulmonar la medida FEF (forced expiratory flow), que es la velocidad del aire saliendo del pulmón durante la porción central de una espiración forzada. Se mide en litros / segundo. Otros datos personales recogidos son: la altura, peso y ciudad donde vive. Se incluye en el archivo una columna adicional “PC5Y” que es la capacidad pulmonar de cada persona medida al cabo de 5 años de realizar el primer test. Se asume que la persona no ha cambiado sus condiciones personales significativamente en este tiempo.
A continuación procedemos a cargar el archivo fuente denominado “Fumadores_clean_5Y.csv” y validar que los tipos de datos se interpretan correctamente
fumadores<- read.csv("Fumadores_clean_5Y.csv", sep=",",na.strings = "NA")
fumadores<-as.data.frame(fumadores) #
El archivo cuenta con 300 observaciones y 10 variables (Sex, Sport, Years, Cig, PC, City, Weight, Age, Height, PC5Y).
head(fumadores)
class(fumadores)
## [1] "data.frame"
En este apartado se estudiara el valor central y la dispersión de algunas de las variables del conjunto de datos cargado con anterioridad
Calcular la media, mediana y los cinco números (de Tukey) de la capacidad pulmonar. Visualizar la muestra de valores en un diagrama de caja (boxplot) y responder a:
A continuación, mostrar mediante diagramas de caja la capacidad pulmonar separando el género femenino y el masculino. Mostrar, finalmente, mediante diagramas de caja la comparación entre el valor de PC original y al cabo de 5 años. Interpretar los resultados.
class(fumadores$PC)
## [1] "numeric"
fumadores$PC<-as.numeric(fumadores$PC)
#summary(fumadores$PC)
Dato | PC |
---|---|
Media | 3.33099 |
Mediana | 3.554 |
Minimimo | 1.557 |
Q1 | 2.9085 |
Q2 | 3.554 |
Q3 | 3.79325 |
Maximo | 4.466 |
boxplot(fumadores$PC, main="Box Plot PC", col="pink")
Se puede observar en la variable PC un valor atípico cercano a 1.7.
boxplot(fumadores$PC ~ fumadores$Sex, col=c(rgb(0.1,0.1,0.7,0.5),rgb(0.8,0.1,0.3,0.6)))
boxplot(fumadores$PC,fumadores$PC5Y,names=c("PC","PC 5 YEARS"), horizontal=TRUE, col=c("red","yellow"), main="PC vs PC 5 YEARS")
Al observar los Boxplot para PC, se observa una asimetria negativa, ya que la mediana se encuentra por encima de la media. Para el boxplot general, se evidencian valores atipicos por debajo del limite inferior de la muestra. La mayoria de las mujeres tienen una capacidad pulmonar entre 2.715 y 3.664, mientras que la mayoria de los hombres tienen una capacidad pulmonar entre 3.018 y 3.8535. Pasados 5 años, la mediana del antes (3.554) y la mediana del despues (3.543) se muestran aproximadamente iguales. Por otra parte, la media de ambas muestras no es significativamente diferente (Antes 3.33099, despues 3.28929 lo que ha simplemente permite cuestionar el porque tras 5 años, no hubo mejora en la capacidad pulmonar.
Calculando la dispersión de la capacidad pulmonar usando las medidas: varianza, desviación típica y rango intercuartílico
Dispersion | PC |
---|---|
Varianza | 0.3937751 |
Desviacion | 0.627515 |
RIC | 0.88475 |
Ahora procedemos a calcular la desviación típica de la capacidad pulmonar manualmente y comparar el resultado con la función correspondiente de R
promedio<- mean(fumadores$PC) # Calculando el promedio
diferencias<- (fumadores$PC - promedio)^2 #obteniendo las diferencias al cuadrado entre la variable y su promedio
suma_diferencias<- sum(diferencias) #suma de las diferencias
n<- length(fumadores$PC) #obteniendo el tamaño
varianza<- suma_diferencias/(n-1) # calculando la varianza
desviacion<-sqrt(varianza) #obteniendo la desviación
Dispersion | PC |
---|---|
Calculo manual | 0.627515 |
Uso de funcion | 0.627515 |
Como se puede observar en el anterior tabla, ambas desviaciones son iguales.
Representación de la variable PC en un histograma.
hist(fumadores$PC, freq = FALSE, col = "lightcyan", ylim = c(0,1), main="Histograma PC", xlab = "", ylab="Densidades")
En las variables Sex, Sport y City, se realiza un resumen numérico y se dibujan un diagrama circular que muestre la proporción de casos de cada categoria
table(fumadores$Sex)
##
## F M
## 137 163
pie(table(fumadores$Sex), label = "", col = rainbow(length(levels(fumadores$Sex))), main = "Sex" )
legend("right",legend=levels(fumadores$Sex), fill=rainbow(length(levels(fumadores$Sex))))
table(fumadores$Sport)
##
## E N R S
## 127 83 48 42
pie(table(fumadores$Sport), label = "", col = rainbow(length(levels(fumadores$Sport))), main = "Sport" )
legend("right",legend=levels(fumadores$Sport), fill=rainbow(length(levels(fumadores$Sport))))
table(fumadores$City)
##
## Alcanar Barcelona Blanes
## 12 102 11
## Cadaques Cardedeu Cardona
## 2 3 6
## Girona La Bisbal Lleida
## 10 7 13
## Montgat Pineda de Mar Puigcerda
## 6 11 3
## Ripoll Sant Boi de Llobregat Sitges
## 6 12 13
## Solsona Tarragona Terrassa
## 5 14 42
## Tossa Valls
## 7 15
pie(table(fumadores$City), label = "", col = rainbow(length(levels(fumadores$City))), main = "City" )
legend(0.9, 1.15,legend=levels(fumadores$City), fill=rainbow(length(levels(fumadores$City))), cex=0.8)
Para una muestra de 300 individuos, con un nivel de confianza del 97 % se tiene:
alfa<-0.03
cuantil<- qnorm(1-alfa/2)
Lic<- promedio - cuantil*desviacion/sqrt(n)
Lsc<- promedio + cuantil*desviacion/sqrt(n)
Limite Inferior = 3.2523685
Limite Inferior = 3.4096115
Como parte de la premisa para el planteamiento de hipotesis, asumimos que conocemos la capacidad pulmonar media de la población, que es igual a 3.30. Ahora, procedemos a plantear la hipotesis Podemos decir que la capacidad pulmonar de las mujeres es inferior a la media poblacional, con un nivel de confianza del 95 %?
\[ \left\{ \begin{array}{ll} H_{0}: & \mu_0 \geq 3.30\\ H_{1}: & \mu_0\ < 3.30 \end{array} \right. \]
Para esta prueba se plantea tratar la muestra como una distribucion normal, se utiliza el estadistico inferencial T-Student, a pesar de que se considera grande la muestra, lo que puede permitir usar z, se usa debido a que no se conoce la desviación típica de la población y a que con muestras tan grandes tienden a ser similares z y t. Tambien se evidencia que las hipotesis son unilaterales debido a que la hipotesis alternativa propone se evalue si la capacidad pulmonar de las mujeres es inferior a la media poblacional.
A continuación se presenta la grafica que permite identificar el comportamiento de la muestra como una distribució normal
mujeres_pc<-subset(fumadores$PC, subset = fumadores$Sex == 'M')
par(mfrow = c(1, 2))
qqnorm(mujeres_pc, xlab = "", ylab = "", main = "Capacidad Pulmonar Mujeres")
qqline(mujeres_pc)
\[\alpha = 0.05\]
mujeres_pc<-subset(fumadores$PC, subset = fumadores$Sex == 'F')
mujeres_media<-mean(mujeres_pc)
mujeres_n<- length(mujeres_pc)
error<-sqrt((1/(mujeres_n-1))*sum((mujeres_pc - mujeres_media)**2))
estadistico_Con<- (mujeres_media-3.30)/(error/sqrt(mujeres_n))
estadistico_Con
## [1] -1.592563
valor_critico_mujeres<- qt(0.05, mujeres_n-1, lower.tail = TRUE)
valor_critico_mujeres
## [1] -1.656135
valor_p_muejeres <- pt(estadistico_Con, df = mujeres_n - 1)
valor_p_muejeres
## [1] 0.0567899
Como se evidencia en los calculos anteriores, el valor p = 0.0567899 es mayor al nivel de significancia = 0.05, lo cual permite observar que no se tiene informacion suficiente para rechazar la hipotesis nula. De igual forma, el estadistico -1.5925634 se encuentra fuera del area de rechazo, ya que el valor critico es -1.656135
Nos preguntamos si la capacidad pulmonar de los fumadores es inferior a la capacidad pulmonar de los no fumadores. Aplicar un test de hipótesis para contrastar la hipótesis anterior con un 95 % de confianza e interpretar el resultado
\[ \left\{ \begin{array}{ll} H_{0}: & \mu_1 - \mu_2 \geq 0\\ H_{1}: & \mu_1\ - \mu_2 < 0 \end{array} \right. \]
\[ \mu_1: Fumadores \\ \mu_2 : No fumadores\]
\[\alpha = 0.05\]
Se supondra, para este caso practico y como parte del ejercicio, que ambas muestras se distribuyen de manera normal, con varianzas poblacionales iguales y desconocidas; se usara la prueba T Student, ya que para muestras mayores a 30 tiende a una distribucion normal que puede ser evaluada con estadisticos z sin tener mayor diferencia. En esta comparación, se tratan ambas muestras como independientes.
si_fumadores<-subset(fumadores$PC, subset = fumadores$Cig > 0)
no_fumadores<-subset(fumadores$PC, subset = fumadores$Cig < 1)
par(mfrow = c(1, 2))
qqnorm(si_fumadores, xlab = "", ylab = "", main = "Si Fumadores")
qqline(si_fumadores)
qqnorm(no_fumadores, xlab = "", ylab = "", main = "No Fumadores")
qqline(no_fumadores)
si_fumadores_media<- mean(si_fumadores)
no_fumadores_media<- mean(no_fumadores)
si_fumadores_n<- length(si_fumadores)
no_fumadores_n<- length(no_fumadores)
si_fumadores_diferencias <- (si_fumadores - si_fumadores_media)^2
no_fumadores_diferencias <- (no_fumadores - no_fumadores_media)^2
si_fumadores_suma_diferencias <- sum(si_fumadores_diferencias)
no_fumadores_suma_diferencias <- sum(no_fumadores_diferencias)
si_fumadores_varianza<- si_fumadores_suma_diferencias/(si_fumadores_n-1)
no_fumadores_varianza<- no_fumadores_suma_diferencias/(no_fumadores_n-1)
si_fumadores_desviacion<-sqrt(si_fumadores_varianza)
no_fumadores_desviacion<-sqrt(no_fumadores_varianza)
s<- sqrt((((si_fumadores_n-1)*si_fumadores_varianza)+((no_fumadores_n-1)*no_fumadores_varianza))/(si_fumadores_n+no_fumadores_n-2))
raiz_esta_fumadores<-sqrt((1/si_fumadores_n) + (1/no_fumadores_n))
estadistico_Con_fumadores<- (si_fumadores_media - no_fumadores_media)/(s*(raiz_esta_fumadores))
estadistico_Con_fumadores
## [1] -23.5391
valor_p_fumadores<- pt((estadistico_Con_fumadores), df = (si_fumadores_n+no_fumadores_n-2))
valor_p_fumadores
## [1] 2.965161e-70
valor_critico_fumadores<- qt(0.05, si_fumadores_n+no_fumadores_n-2, lower.tail = TRUE)
valor_critico_fumadores
## [1] -1.649983
valor_critico_fumadores2<- qt(0.01, si_fumadores_n+no_fumadores_n-2, lower.tail = TRUE)
Para un alfa de 0.01 %, el valor critico es -2.3389262. Lo anterior permite rechazar la hipotesis nula, ya que el estadistico se encuentra fuera de la zona de aceptacion y el valor p 2.965160710^{-70} es menor al alfa.
\[ \left\{ \begin{array}{ll} H_{0}: & \mu = 0\\ H_{1}: & \mu\ \neq 0 \end{array} \right. \]
Se asume que ambas muestras se distribuyen de manera normal. Si la hipoetisis nula no se rechaza, se puede concluir que no hubo cambio en la capacidad pulmonar inicial de los fumadores contra la capacidad pulmonar a los 5 años
si_fumadores5y<-subset(fumadores$PC5Y, subset = fumadores$Cig > 0)
si_fumadores_hoy<-subset(fumadores$PC, subset = fumadores$Cig > 0)
par(mfrow = c(1, 2))
qqnorm(si_fumadores_hoy, xlab = "", ylab = "", main = "antes")
qqline(si_fumadores_hoy)
qqnorm(si_fumadores5y, xlab = "", ylab = "", main = "despues")
qqline(si_fumadores5y)
Como se evidencia en los graficos, ambas muestras se asemejan a lo esperado en una poblacion normal. A continuacion se procede a realizar los calculos pertinentes para rechazar o no, la hipotesis nula. En este caso, se realiza una diferencia de muestras de fumadores entre antes y despues, con el fin de calcular el estadistico de contraste, posteriormente el pvalor y validar si la capacidad pulmonar ha variado considerablemente al cabo de la toma de la segunda muestra.
si_fumadores_hoy_n<- length(si_fumadores_hoy)
diferencia_si_fumadores<- si_fumadores_hoy - si_fumadores5y
si_fumadores_hoy_desviacion <- sd(diferencia_si_fumadores)
si_fumadores_hoy_media<- mean(diferencia_si_fumadores)
zcal<- (si_fumadores_hoy_media)/(si_fumadores_hoy_desviacion/sqrt(si_fumadores_hoy_n))
valor_p_si_fumadores_hoy<- pt(q=zcal,df=si_fumadores_hoy_n-1) + (1-pt(q = zcal, df=si_fumadores_hoy_n-1))
Una vez hallado el estadistico, el pvalor obtenido es = 1, que para este caso, es mayor al nivel de significancia, permitiendonos concluir que no hay evidencias significativas no suficiente para rechazar la hipotesis nula. No se puede considerar que la capacidad pulmonar de los individuos ha mejorado pasados 5 años.
no_fumadores5y<-subset(fumadores$PC5Y, subset = fumadores$Cig < 1)
no_fumadores_hoy<-subset(fumadores$PC, subset = fumadores$Cig < 1)
par(mfrow = c(1, 2))
qqnorm(no_fumadores_hoy, xlab = "", ylab = "", main = "antes")
qqline(no_fumadores_hoy)
qqnorm(no_fumadores5y, xlab = "", ylab = "", main = "despues")
qqline(no_fumadores5y)
Como se evidencia en los graficos, ambas muestras se asemejan a lo esperado en una poblacion normal. A continuacion se procede a realizar los calculos pertinentes para rechazar o no, la hipotesis nula. En este caso, se realiza una diferencia de muestras de no fumadores entre antes y despues, con el fin de calcular el estadistico de contraste, posteriormente el pvalor y validar si la capacidad pulmonar ha variado considerablemente al cabo de la toma de la segunda muestra.
no_fumadores_hoy_n<- length(no_fumadores_hoy)
diferencia_no_fumadores<- no_fumadores_hoy - no_fumadores5y
no_fumadores_hoy_desviacion <- sd(diferencia_no_fumadores)
no_fumadores_hoy_media<- mean(diferencia_no_fumadores)
zcal<- (no_fumadores_hoy_media)/(no_fumadores_hoy_desviacion/sqrt(no_fumadores_hoy_n))
valor_p_no_fumadores_hoy<- pt(q=zcal,df=no_fumadores_hoy_n-1) + (1-pt(q = zcal, df=no_fumadores_hoy_n-1))
Una vez hallado el estadistico, el pvalor obtenido es = 1, que para este caso, es mayor al nivel de significancia, permitiendonos concluir que no hay evidencias significativas ni suficiente para rechazar la hipotesis nula. No se puede considerar que la capacidad pulmonar de los individuos no ha mejorado pasados 5 años.