En la tabla de datos disponible aquí se encuentran datos de las estaturas de un grupo anterior de la especialización en estadística aplicada
Importamos los datos y los tratamos
estaturas <- read.csv("D:/Cesar Corregidor/Documents/especializacion/METODOS_ESTADISTICOS/SESION9/taller3.csv")
estaturas$Genero[estaturas$Genero == "1"] = "Mujer"
estaturas$Genero[estaturas$Genero == "0"] = "Hombre"
#library(DT)
DT::datatable(estaturas)
Estime la media, desviación estándar de cada género y la proporción de hombres y mujeres del curso.
Como no tenemos la varianza poblacional usamos la distribución t student. Además los datos son pequeños n = 22 < 30. Usamos un nivel de significancia del 5%:
library(dplyr)
hombres_cm = estaturas %>% filter(Genero == "Hombre")
media_hombres_est = mean(hombres_cm$Estatura)
media_hombres_est
## [1] 174
n = length(hombres_cm$Genero)
alfa = 0.05
alfa_medios = alfa/2
media_muestral = mean(hombres_cm$Estatura)
desviacion = sd(hombres_cm$Estatura)
desviacion_hombres_est = desviacion
cuantil = qt(alfa_medios, df= n-1, lower.tail = F)
L = media_muestral - cuantil*desviacion/sqrt(n)
U = media_muestral + cuantil*desviacion/sqrt(n)
intervalo = c(L,U)
intervalo
## [1] 171.5007 176.4993
otra forma de hacerlo
t.test(hombres_cm$Estatura)
##
## One Sample t-test
##
## data: hombres_cm$Estatura
## t = 148.39, df = 15, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 171.5007 176.4993
## sample estimates:
## mean of x
## 174
Podemos determinar que la estatura promedio para los hombres estudiantes de la especialización en estadística aplicada con un nivel de confianza del 95% está en el intervalo [171.5007, 176.4993] cm
mujeres_cm = estaturas %>% filter(Genero == "Mujer")
media_mujeres_est = mean(mujeres_cm$Estatura)
desviacion_mujeres_est = sd(mujeres_cm$Estatura)
t.test(mujeres_cm$Estatura)
##
## One Sample t-test
##
## data: mujeres_cm$Estatura
## t = 78.471, df = 5, p-value = 6.368e-09
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 156.3707 166.9626
## sample estimates:
## mean of x
## 161.6667
Podemos determinar que la estatura promedio para las mujeres estudiantes de la especialización en estadística aplicada con un nivel de confianza del 95% está en el intervalo [156.3707, 166.9626] cm
chisq.test(hombres_cm$Estatura)
##
## Chi-squared test for given probabilities
##
## data: hombres_cm$Estatura
## X-squared = 1.8966, df = 15, p-value = 1
p_hombres_est = length(hombres_cm$Genero)/length(estaturas$Genero)
tabla = table(estaturas$Genero)
tabla
##
## Hombre Mujer
## 16 6
prop.test(x = 16, n = 22)
##
## 1-sample proportions test with continuity correction
##
## data: 16 out of 22, null probability 0.5
## X-squared = 3.6818, df = 1, p-value = 0.05501
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.4956206 0.8838741
## sample estimates:
## p
## 0.7272727
Con un nivel de confianza del 95% podemos decir que el intervalo para la proporción de hombres en la población está en [0.4956206, 0.8838741]
p_mujeres_est = length(mujeres_cm$Genero)/length(estaturas$Genero)
p_mujeres_est
## [1] 0.2727273
prop.test(x = 6, n = 22)
##
## 1-sample proportions test with continuity correction
##
## data: 6 out of 22, null probability 0.5
## X-squared = 3.6818, df = 1, p-value = 0.05501
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.1161259 0.5043794
## sample estimates:
## p
## 0.2727273
Con un nivel de confianza del 95% podemos decir que el intervalo para la proporción de mujeres en la población es [0.1161259, 0.5043794]
Escriba la hipótesis nula y alternativa de la estatura de cada género con referencia al artículo del Tiempo.
\[ H_o: \mu=\\ H_a: \]
\[ H_o:\\ H_a: \] Realizar los respectivos contrastes y concluir
El artículo nos dice que el promedio de hombres adultos colombianos es de 172cm y para la mujer es de 160; serían las media poblaciones para cada género de acuerdo a la altura. Así que estos valores serán la hipótesis nula.
Revisamos la media de la muestra
media_hombres_est
## [1] 174
Vemos que es de 174 la cual es mayor a la de la población. De modo que:
\[ H_o: \mu=172\\ H_a: \mu>172 \] de modo que
library(dplyr)
mu0 = 172
media_hombres_est = mean(hombres_cm$Estatura)
n = length(hombres_cm$Genero)
alfa = 0.05
alfa_medios = alfa/2
media_muestral = mean(hombres_cm$Estatura)
desviacion = sd(hombres_cm$Estatura)
cuantil = (media_hombres_est-mu0)/(desviacion_hombres_est/sqrt(n))
p_value = pt(q = cuantil, df = n-1, lower.tail = F)
p_value
## [1] 0.05434816
Otra forma de resolverlo
library(tigerstats)
ttestGC(~Estatura,data=hombres_cm, mu=172,
alternative="greater",graph=TRUE)
##
##
## Inferential Procedures for One Mean mu:
##
##
## Descriptive Results:
##
## variable mean sd n
## Estatura 174.000 4.690 16
##
##
## Inferential Results:
##
## Estimate of mu: 174
## SE(x.bar): 1.173
##
## 95% Confidence Interval for mu:
##
## lower.bound upper.bound
## 171.944366 Inf
##
## Test of Significance:
##
## H_0: mu = 172
## H_a: mu > 172
##
## Test Statistic: t = 1.706
## Degrees of Freedom: 15
## P-value: P = 0.05435
Para un nivel de confianza del 95% obtenemos un p_valor del 0.05435 y como éste es mayor a 0.05 no podemos rechazar la hipótesis nula. Rechazamos que la media poblacional de estatura para hombres sea mayor a 172.
Revisamos la media de la muestra
media_mujeres_est
## [1] 161.6667
Vemos que es de 161.66 cm la cual es mayor a 160 cm que es la publicada en el artículo. De modo que:
\[ H_o: \mu=160\\ H_a: \mu>160 \]
library(tigerstats)
ttestGC(~Estatura,data=mujeres_cm, mu=160,
alternative="greater",graph=TRUE)
##
##
## Inferential Procedures for One Mean mu:
##
##
## Descriptive Results:
##
## variable mean sd n
## Estatura 161.667 5.046 6
##
##
## Inferential Results:
##
## Estimate of mu: 161.7
## SE(x.bar): 2.06
##
## 95% Confidence Interval for mu:
##
## lower.bound upper.bound
## 157.515254 Inf
##
## Test of Significance:
##
## H_0: mu = 160
## H_a: mu > 160
##
## Test Statistic: t = 0.809
## Degrees of Freedom: 5
## P-value: P = 0.2276
Para un nivel de confianza del 95% obtenemos un p_valor del 0.2276 y como éste es mayor a 0.05 no podemos rechazar la hipótesis nula. Rechazamos que la media poblacional de estatura para mujeres sea mayor a 160.
Ahora ponga a prueba la hipótesis de diferencia de altura de ambos géneros en el curso. para ver si la altura media de las mujeres es igual a la altura media de los hombres.
\[ H_o: \mu_H = \mu_M\\ H_a: \mu_H \neq \mu_M \] Como no tenemos conocimiento de las varianzas poblacionales las asumimos desconocidas y desiguales.
t.test(x = hombres_cm$Estatura, y = mujeres_cm$Estatura, alterative = "two.sided", var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: hombres_cm$Estatura and mujeres_cm$Estatura
## t = 5.2028, df = 8.468, p-value = 0.0006835
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 6.919012 17.747654
## sample estimates:
## mean of x mean of y
## 174.0000 161.6667
Usando otro paquete
library(tigerstats)
ttestGC(Estatura~Genero, data = estaturas, mu=0, graph = T, var.equal = FALSE)
##
##
## Inferential Procedures for the Difference of Two Means mu1-mu2:
## (Welch's Approximation Used for Degrees of Freedom)
## Estatura grouped by Genero
##
##
## Descriptive Results:
##
## group mean sd n
## Hombre 174.000 4.690 16
## Mujer 161.667 5.046 6
##
##
## Inferential Results:
##
## Estimate of mu1-mu2: 12.33
## SE(x1.bar - x2.bar): 2.371
##
## 95% Confidence Interval for mu1-mu2:
##
## lower.bound upper.bound
## 6.919218 17.747449
##
## Test of Significance:
##
## H_0: mu1-mu2 = 0
## H_a: mu1-mu2 != 0
##
## Test Statistic: t = 5.203
## Degrees of Freedom: 8.47
## P-value: P = 0.000683
Con un nivel de significancia del 5% obtenemos un p_valor = 0.000683; como 0.000683 < 0.05 rechazamos la hipótesis nula y validamos la hipótesis alternativa. Ahora bien como obtenemos un intervalo [6.919218 , 17.747449] (intervalo positivo) concluimos que la media poblacional respecto a la altura es mayor para hombres que para mujeres.
Considere el conjunto de datos en Kaggle sobre Datos reales sobre el cáncer de mama aquí
data <- read.csv("D:/Cesar Corregidor/Documents/especializacion/METODOS_ESTADISTICOS/SESION9/BRCA.csv")
Elegimos las variables género y edad. Para ello miramos si estas no tienen NA.
library(dplyr)
datos = data %>% filter(Age != "NA" & Gender != "NA")
dim(data)[1] - dim(datos)[1]
## [1] 7
Como vemos apenas son 7 valores, de modo que podemos eliminar estos registros.Vamos a realizar un histograma para la edad de hombres y mujeres. Definimos el número de intervalos
k = nclass.Sturges(datos$Age)
k
## [1] 10
Elegimos la amplitud de los intervalos (MAX - MIN)/k como los datos son enteros debemos redondear por exceso a un entero:
A = ceiling(diff(range(datos$Age))/k)
A
## [1] 7
Calculamos el primer extremo
L1 =min(datos$Age)-1/2*1
L1
## [1] 28.5
Usamos la sucesión y aprovechamos que tenemos vectores para determinar los límites como tenemos 10 intervalos debemos tener 11 límites: 10+1
L = L1+A*(0:k)
L
## [1] 28.5 35.5 42.5 49.5 56.5 63.5 70.5 77.5 84.5 91.5 98.5
Calculamos las marcas de clase empezamdo por X1
X1 = (L[1]+L[2])/2
X1
## [1] 32
Ahora calculamos todas así:
X = X1+A*(0:k-1)
X
## [1] 25 32 39 46 53 60 67 74 81 88 95
Obtenemos el histograma correspondiente
h = hist(datos$Age, right = T,
breaks = L, freq = F, xaxt = "n", yaxt = "n",
main = "Histograma de frecuencias absolutas \npara la edad",
xlab = "Edad",
ylab = "Frecuencias absoultas")
axis(1, at = L)
text(h$mids, h$density/2, labels = h$counts, col = "purple")
lines(density(datos$Age), col = "orange", lwd = 2)
Para asegurarnos que estén todos los datos dentro de los intervalos correspondientes hacemos lo siguiente:
sum(h$counts) == length(datos$Age)
## [1] TRUE
De este histograma podemos concluir que se comporta como una distribución normal sesgada hacia la derecha donde la mayor concentración se da entre las edades 49 a 63. Esto quiere decir que la mayoría de personas toma la decisión de extirpar el tumoren la década de sus 50 años
Ahora realizamos un diagrama de caja para la edad, separado para hombres y mujeres
library(ggplot2)
colnames(datos)
## [1] "ï..Patient_ID" "Age" "Gender"
## [4] "Protein1" "Protein2" "Protein3"
## [7] "Protein4" "Tumour_Stage" "Histology"
## [10] "ER.status" "PR.status" "HER2.status"
## [13] "Surgery_type" "Date_of_Surgery" "Date_of_Last_Visit"
## [16] "Patient_Status"
boxplot(Age~Gender, data = datos,
col = "lightgreen", xlab = "Género", ylab = "Edad")
medias = aggregate(Age~Gender, data = datos, FUN = mean)
points(medias, col = "blue", pch = 15)
Vemos que para cada categória la media y la mediana de la edad casi que coinciede
Veamos mejor su distribución en los boxplot
ggplot(data=datos, aes(y=Age, x=Gender))+
geom_boxplot(fill="steelblue")+
geom_jitter(aes(color = Gender))
Observamos que prácticamente toda la población es mujer debido a la naturaleza de la enfermedad
Vamos a realizar una diferencia de medias para saber si extirpan el tumor a la misma edad
\[ H_o: \mu_H = \mu_M\\ H_a: \mu_H \neq \mu_M \] Como no tenemos conocimiento de las varianzas poblacionales las asumimos desconocidas y desiguales.
library(tigerstats)
ttestGC(Age~Gender, data = datos, mu=0, graph = T, var.equal = FALSE)
##
##
## Inferential Procedures for the Difference of Two Means mu1-mu2:
## (Welch's Approximation Used for Degrees of Freedom)
## Age grouped by Gender
##
##
## Descriptive Results:
##
## group mean sd n
## FEMALE 58.852 12.923 330
## MALE 61.750 17.933 4
##
##
## Inferential Results:
##
## Estimate of mu1-mu2: -2.898
## SE(x1.bar - x2.bar): 8.995
##
## 95% Confidence Interval for mu1-mu2:
##
## lower.bound upper.bound
## -31.311254 25.514284
##
## Test of Significance:
##
## H_0: mu1-mu2 = 0
## H_a: mu1-mu2 != 0
##
## Test Statistic: t = -0.3222
## Degrees of Freedom: 3.04
## P-value: P = 0.7682
Usando un nivel de significancia del 0.05 obtenemos un p_value = 0.76862 el cuál es mayor a 0.05 así que no podemos rechazar la hipótesis nula. Así que hay una fuerte tendencia a que los hombres y las mujeres les extirpen el tumor una edad similar.