Introducción
En esta actividad, usaremos el archivo resultante del proyecto https://1938.com.es/preprocesamiento-datos-r . Recuerde que este archivo almacena 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.
En esta actividad usaremos el archivo de fumadores “limpio”, es decir, después del preproceso realizado. Una vez el archivo está preparado para el análisis, aplicaremos análisis propios de la estadística descriptiva e inferencial.
Cargar el archivo de datos “Fumadores_clean_5Y.csv” y validar que los tipos de datos se interpretan correctamente.
data <- read.csv( "Fumadores_clean_5Y.csv")
head(data)
## Sex Sport Years Cig PC City Weight Age Height PC5Y
## 1 M E 25 10 2.579 Barcelona 65 49 171 2.529
## 2 F E 18 32 1.557 Terrassa 65 35 166 1.444
## 3 M S 0 0 3.747 La Bisbal 69 38 175 3.730
## 4 M N 25 14 2.762 Blanes 70 55 176 2.670
## 5 M E 0 0 3.487 Sant Boi de Llobregat 72 55 178 3.487
## 6 F S 0 0 4.075 Barcelona 64 42 165 4.052
sapply( data, class)
## Sex Sport Years Cig PC City Weight
## "factor" "factor" "integer" "integer" "numeric" "factor" "integer"
## Age Height PC5Y
## "integer" "integer" "numeric"
En primer lugar, estudiaremos los valores centrales y de dispersión de algunas variables del conjunto de datos. Siga los pasos que se especifican a continuación.
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). ¿Se detectan valores extremos (outliers) en el diagrama? 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.
x.five <- fivenum( data$PC )
x.median <- median( data$PC )
x.mean <-mean( data$PC )
boxplot( data$PC, main="PC" )
boxplot( PC~Sex, data, main="PC")
boxplot( data$PC, data$PC5Y, names=c("PC", "PC after 5Y"), main="PC")
Interpretación: La capacidad pulmonar de la muestra se mueve desde 1.557 como valor mínimo hasta 4.466 como máximo. El diagrama de caja es un poco asimétrico por la izquierda, es decir, el 50% de los valores inferiores están más dispersos que la mitad superior. El valor de la mediana es 3.554 y la media 3.33099. Se observa un valor extremo por debajo.
En cuanto al boxplot de PC en función del sexo, se observa que la capacidad pulmonar de las mujeres es inferior. También la dispersión es mayor que en el caso de los hombres.
En el boxplot donde se compara la capacidad pulmonar en el primer test y al cabo de cinco años, no hay diferencias notables en la mitad superior de los datos. La mitad inferior de valor de PC presenta más dispersión en el test a los cinco años. También se observa un ligero descenso del valor de la PC en la mitad inferior. Habrá que ver si esta diferencia es significativa.
Calcular la dispersión de la capacidad pulmonar usando las medidas: varianza, desviación típica y rango intercuartílico.
#Medidas de dispersión
x.iqr <- IQR( data$PC )
x.var <- var( data$PC )
x.sd <- sd( data$PC )
Rango interquartílico: 0.88475
Varianza: 0.3937751
Desviación estándar: 0.627515
Calcular la desviación típica de la capacidad pulmonar manualmente y comparar el resultado con la función correspondiente de R.
N<-length( data$PC )
N
## [1] 300
sample.mean <- sum( data$PC )/N
sample.mean
## [1] 3.33099
sample.sd <- sqrt( sum((data$PC - sample.mean)^2) / (N-1) )
El resultado de la desviación estándar de la muestra calculada manualmente es: 0.6275. Según la función sd
, el resultado es 0.6275.
Representar un histograma de la variable PC. Si es necesario, configura los parámetros del histograma para que se vea con una buena precisión.
N<-length( data$PC )
hist( data$PC, breaks=40, prob=TRUE, main="Distribució de valors de PC" )
N
## [1] 300
En las variables Sex, Sport y City, realizar un resumen numérico y dibujar un diagrama circular que muestre la proporción de casos de cada categoria.
summary(data)
## Sex Sport Years Cig PC
## F:137 E:127 Min. : 0.000 Min. : 0.000 Min. :1.557
## M:163 N: 83 1st Qu.: 0.000 1st Qu.: 0.000 1st Qu.:2.909
## R: 48 Median : 0.000 Median : 0.000 Median :3.554
## S: 42 Mean : 8.463 Mean : 7.273 Mean :3.331
## 3rd Qu.:15.250 3rd Qu.:13.000 3rd Qu.:3.793
## Max. :51.000 Max. :47.000 Max. :4.466
##
## City Weight Age Height
## Barcelona:102 Min. :57.00 Min. :19.00 Min. :158.0
## Terrassa : 42 1st Qu.:65.00 1st Qu.:38.00 1st Qu.:166.0
## Valls : 15 Median :68.00 Median :46.00 Median :172.0
## Tarragona: 14 Mean :67.72 Mean :45.59 Mean :171.4
## Lleida : 13 3rd Qu.:71.00 3rd Qu.:52.00 3rd Qu.:176.0
## Sitges : 13 Max. :79.00 Max. :77.00 Max. :186.0
## (Other) :101
## PC5Y
## Min. :1.444
## 1st Qu.:2.744
## Median :3.543
## Mean :3.289
## 3rd Qu.:3.796
## Max. :4.472
##
summary(data$Sport)
## E N R S
## 127 83 48 42
#Sex
par(mfrow=c(1,2))
table( data$Sex )
##
## F M
## 137 163
pie( table(data$Sex),main="Sex")
#Sport
pie( table(data$Sport),main="Sport")
pie( table(data$City),main="City")
par(mfrow=c(1,1))
Calcular el intervalo de confianza del 97% de la capacidad pulmonar de la población.
Por el teorema del límite central, para el cálculo del intervalo de confianza de la media, y muestras de tamaño superior a 30, podemos usar una distribución normal.
n<-nrow( data )
alpha<-1-0.97
#Error típic
errorTipic <- sd(data$PC) / sqrt( n )
errorTipic
## [1] 0.0362296
#Valor z
z<-qnorm( 1-alpha/2 )
z
## [1] 2.17009
#Marge d'error
error<- z * errorTipic
error
## [1] 0.0786215
#Interval
c( mean(data$PC) - error, mean(data$PC) + error )
## [1] 3.252369 3.409611
#Comprovació amb t Student.
#No dona exactament igual perquè s'ha assumit distribució normal (anteriorment).
t.test( data$PC, conf.level=0.97 )
##
## One Sample t-test
##
## data: data$PC
## t = 91.941, df = 299, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 97 percent confidence interval:
## 3.251991 3.409989
## sample estimates:
## mean of x
## 3.33099
Asumimos que conocemos la capacidad pulmonar media de la población, que es igual a 3.30. ¿Podemos decir que la capacidad pulmonar de las mujeres es inferior a la media poblacional, con un nivel de confianza del 95%? Para responder a esta pregunta, siga los pasos que se indican.
Indicar cuál es el método más apropiado para hacer este análisis, en función de las características de la muestra y el objetivo del análisis.
Como el tamaño de la muestra es superior a 30, usamos la distribución normal aplicando el teorema del límite central. Se aplica test de hipótesis sobre la media, con test unilateral.
#
Fem <- data[data$Sex=='F',]
mu0<-3.30
n<-nrow( Fem )
mean(Fem$PC)
## [1] 3.215241
#Estadístic de contrast
t<- (mean(Fem$PC)-mu0) / (sd(Fem$PC)/sqrt(n))
#Valor crític al 95%
#Contrast unilateral
tcritical <- qnorm( 1-0.95, lower.tail=T)
#Valor p
pvalue <- pnorm( t, lower.tail=T)
t
## [1] -1.592563
tcritical
## [1] -1.644854
pvalue
## [1] 0.05562909
#Comprovació
t.test( Fem$PC, mu=3.30, alternative="less" )
##
## One Sample t-test
##
## data: Fem$PC
## t = -1.5926, df = 136, p-value = 0.05679
## alternative hypothesis: true mean is less than 3.3
## 95 percent confidence interval:
## -Inf 3.303383
## sample estimates:
## mean of x
## 3.215241
El valor crítico es -1.64, pero el estadístico de contraste no supera, en valor absoluto, este valor. Por lo tanto, estamos en la región de aceptación de la hipótesis nula. No podemos afirmar que la capacidad pulmonar de las mujeres sea inferior a la media población de 3.3.
A través del valor p obtenemos la misma conclusión, dado que el valor p obtenido es p = 0.0556. Para poder rechazar la hipótesis nula al 95% de nivel de confianza, p debería ser p < 0.05.
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.
Siga los pasos que se indican a continuación.
Escribir la hipótesis nula y alternativa.
Explicar el método que aplicaréis para realizar este contraste y justificalo.
Test de dos muestras sobre la diferencia de medias. Aplicamos el caso de muestras grandes no normales. Es un test unilateral.
Realizar el cálculo. Al igual que anteriormente, no se puede usar funciones de R o librerías que calculen directamente el contraste. Se debe realizar el cálculo manualmente. Se puede usar las funciones del tipo qnorm, pnorm, qt, pt.
str( data$Cig )
## int [1:300] 10 32 0 14 0 0 15 0 0 12 ...
Fum <- data[data$Cig > 0 ,]
NoFum <- data[data$Cig==0, ]
n.fum <- nrow( Fum )
n.nofum <- nrow( NoFum )
#comprovació
nrow( data )
## [1] 300
n.fum
## [1] 131
n.nofum
## [1] 169
n.fum + n.nofum
## [1] 300
#Càlculs
mean.fum <- mean( Fum$PC )
sd.fum <- sd( Fum$PC )
c( mean.fum, sd.fum )
## [1] 2.7571985 0.4935864
mean.no.fum <- mean( NoFum$PC )
sd.no.fum <- sd( NoFum$PC )
c( mean.no.fum, sd.no.fum )
## [1] 3.7757633 0.2378603
#mostrem boxplot
boxplot( Fum$PC, NoFum$PC, main="PC", names=c("Fumador", "No Fumador"))
S <- sqrt( sd.fum^2/n.fum + sd.no.fum^2/n.nofum)
zobs <- (mean.no.fum-mean.fum)/ S
zobs
## [1] 21.74292
alfa <- 1-0.95
zcritical <- qnorm( alfa, lower.tail=FALSE )
zcritical
## [1] 1.644854
pvalue<-pnorm( abs(zobs), lower.tail=FALSE )
pvalue
## [1] 4.030158e-105
alfa <- 1-0.99
zcritical <- qnorm( alfa, lower.tail=FALSE )
zcritical
## [1] 2.326348
pvalue<-pnorm( abs(zobs), lower.tail=FALSE )
pvalue
## [1] 4.030158e-105
Podemos rechazar la hipótesis nula de que fumadores y no fumadores tienen la misma capacidad pulmonar, a favor de la hipótesis alternativa, con el 95% (el valor p < 0.05) y 99% (el valor p < 0.01) de nivel de confianza, respectivamente.
Después de 5 años se mide de nuevo la capacidad pulmonar de las mismas personas del estudio. La columna PC5Y incorpora la capacidad pulmonar de los mismos sujetos a los 5 años. Nos preguntamos si la capacidad pulmonar ha cambiado significativamente, con un nivel de confianza del 95% en el caso de los fumadores y en el caso de los no fumadores. Responda a las siguientes preguntas.
Realice los pasos necesarios: Escribir la hipótesis nula y alternativa, el método elegido y los cálculos.
Escribir la hipótesis nula y alternativa.
Dado que las muestras son pareadas, se calcula la diferencia elemento por elemento y se aplica un test de hipótesis de una muestra. El test es bilateral.
#Test apareado de dos colas:
#Input: Dos muestras apareadas y el nivel de confianza
test.paired <- function( d1, d2, cl ){
dif <- d1 - d2
n <- length( dif )
mean <- mean( dif )
sd <- sd( dif )
mu<-0
alfa <- 1-cl
z.obs<- (mean - mu) / (sd/sqrt(n))
z.critical <- qnorm( alfa/2, lower.tail=FALSE )
pvalue <- pnorm( abs(z.obs), lower.tail=FALSE )*2 #dos colas
cat ("sample mean=", mean, " sd=", sd, " sample length=", n, "\n",
"z obs= ", z.obs, "\n",
"z critical: ", z.critical, "\n",
"p value", pvalue, "\n")
return (pvalue)
}
test.paired( Fum$PC, Fum$PC5Y, 0.95)
## sample mean= 0.09820611 sd= 0.0970989 sample length= 131
## z obs= 11.57604
## z critical: 1.959964
## p value 5.45091e-31
## [1] 5.45091e-31
test.paired( NoFum$PC, NoFum$PC5Y, 0.95 )
## sample mean= -0.002100592 sd= 0.02664195 sample length= 169
## z obs= -1.024989
## z critical: 1.959964
## p value 0.3053686
## [1] 0.3053686
En el caso de los fumadores, se observan diferencias significativas en la capacidad pulmonar entre el test original y el test después de 5 años, con un nivel de confianza del 95%. La dirección de los cambios es que la PC disminuye al cabo de 5 años. Debería aplicarse un test unilateral para validar que PC disminuye al cabo de 5 años.
En el caso de los no fumadores, no se observan diferencias significativas entre la PC inicial y al cabo de cinco años, con un nivel de confianza del 95%.