1 / 29

Sesión II INTRODUCCION AL PROGRAMA ESTADÍSTICO

Sesión II INTRODUCCION AL PROGRAMA ESTADÍSTICO. TEST ESTADÍSTICOS. Sesión II. Objetivo General: Conocer y utilizar los comandos mas comunes usados en R para pruebas o test estadísticos. Realizar rutinas, grafica y poner a prueba ciertas hipótesis.

brady-fry
Download Presentation

Sesión II INTRODUCCION AL PROGRAMA ESTADÍSTICO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sesión II INTRODUCCION AL PROGRAMA ESTADÍSTICO TEST ESTADÍSTICOS

  2. Sesión II • Objetivo General: • Conocer y utilizar los comandos mas comunes usados en R para pruebas o test estadísticos. • Realizar rutinas, grafica y poner a prueba ciertas hipótesis.

  3. 1. Test de Chi-cuadrado X2 (Frecuencias) Análisis de unaVariable categórica con n niveles. El Test Chi-cuadrado puede usarse como un Prueba de bondad de ajuste. H0: p = p p = 1 H1: p ≠ p p ≠ 1 Problema 1 Supóngase que la proporción observada de hembras vs machos de pepinos de mar en un área determinada del intermareal es de 29/29 respectivamente. > pepino<- c(29,29) # vector formado guarda las frecuencias observadas > chisq.test(pepino) # Test Chi-cuadrado bondad de ajuste. salida Chi-squared test for given probabilities data: pepino X-squared = 0, df = 1, p-value = 1

  4. Problema 2 Supóngase que la proporción de hembras vs machos de pulpos en un área determinada del intermareal rocoso es de 49/9 respectivamente. Genere el vector “pulpos” y aplique el test de Chi-cuadrado. > pulpos<-c(49,9) > chisq.test(pulpos) salida Chi-squared test for given probabilities data: c X-squared = 27.5862, df = 1, p-value = 1.502e-07

  5. Problema 3. Asignando una probabilidad. Supóngase que la proporción de hembras vs machos que se espera para una especie de pez intermareal es desconocida y se quiere probar que será de un 10%: H0: p = 0.1 H1: p ≠ 0.1 Suponiendo que una muestra aleatoria de 100 erizos de mar encontramos 16 machos. > pez<-c(16,84) > sexo<-c(0.1,0.9) > chisq.test(pez,p=sexo) # vector a almacena frecuencias observadas # vector b almacena probabilidades esperadas # Test chi-cuadrado bondad de ajuste salida Chi-squared test for given probabilities data: pez X-squared = 4, df = 1, p-value = 0.0455 > chisq.test(c(16,84),p=c(0.1,0.9)) # alternativamente los vectores a y b pueden ir concatenados salida Chi-squared test for given probabilities data: c(16, 84) X-squared = 4, df = 1, p-value = 0.0455

  6. 1. Test de Chi-cuadrado X2 (Frecuencias) Análisis de 2 o mas variables categóricas con 2 o mas niveles. H0: p1 = p2 No existe asociación son independientes H1: p1 ≠ p2 Existe asociacion no son independientes Caso especial: Tablas de contingencia o tablas de 2x2 Estudios de prevalencía o transversales.

  7. Problema 4 Supóngase que interesa saber si existe asociación entre el sexo del paciente y su estado de parasitismo por Taenia solium: Para una muestra de 50 hombres y 60 mujeres, 12 y 4 de ellos resultaron parasitados, respectivamente. > x <- matrix(c(12,6,38,54),nc=2) # x queda almacenada como matriz > chisq.test(x,correct=F) # Test chi-cuadrado sin corrección de Yates o Pearson salida Pearson's Chi-squared test data: x X-squared = 6.5922, df = 1, p-value = 0.01024 > chisq.test(x) # Test chi-cuadrado con corrección de Yates salida Pearson's Chi-squared test with Yates' continuity correction data: x X-squared = 5.2714, df = 1, p-value = 0.02168

  8. Problema 5 Interesa determinar si hay diferencias significativas en el porcentaje de personas con depresión entre dos poblaciones A y B. Para esto, se tomó una muestra de 150 personas de la población A y 200 de la población B, encontrándose 48 y 50 personas con depresión en cada una de las ciudades respectivamente. 1. Construya su tabla de contingencia. 2. Realice la rutina en R para obtener el valor de X2 Pearson. 2. Calcule el valor de chi-cuadrado con corrección de Yates. > depresion1<-matrix(c(48,50,102,150),nc=2) > chisq.test(depresion1,correct=F) Pearson's Chi-squared test data: depresion1 X-squared = 2.0833, df = 1, p-value = 0.1489 > depresion1<-matrix(c(48,50,102,150),nc=2) > chisq.test(depresion1) Pearson's Chi-squared test with Yates' continuity correction data: depresion1 X-squared = 1.7506, df = 1, p-value = 0.1858

  9. Chi-cuadrado desde un Dataframe #Buscando dataframe .txt en el directorio > nombrevector<-read.table(file.choose(), header=T) > attach(nombrevector) > list(nombrevector) > chisq.test(namevar1,namevar2, correct=F)# Test X2 de Pearson. Var1 vs Var2 sin corrección de yates. > chisq.test(namevar1,namevar2) # Test X2 de Pearson. Var1 vs Var2 con corrección de yates.

  10. Test exacto de Fisher n<5 en algunas de las celdas El Test exacto de Fisher, para muestras pequeñas, al igual que el Test chi-cuadrado, se puede obtener a partir de datos tabulados o de variables de un dataframe. > x <- matrix(c(2,8,10,14),nc=2) # matriz x almacena tabla 2x2 > fisher.test(x) # Test exacto de Fisher > fisher.test(variable1,variable2) # Test exacto de Fisher. Var1 vs Var2

  11. 2. Test de Student Análisis de comparación de medias. Caso 1. T Student 1 Muestra. H0: μ = 0 H1: μ ≠ 0 > test.t(x) # si vector numérico x tiene media μ=0 (por defecto μ0=0) > test.t(x,mu=10) # si vector numérico x tiene media μ=10 > test.t(x1,x2,paired=T) # si x1-x2 (datos pareados) tiene media 0 Problema 6. 1. Genere el vector “idea” con 5 datos que permita rechazar la hipotesis nula.

  12. Problema 6. A un total de 10 pacientes con diagnostico de VIH se les midió el número de linfocitos T En la sangre. La siguiente tabla muestra el conteo de linfocitos antes y después de un tratamiento naturista. 1.. Genere los vectores de la tabla conservando los nombres de cabecera.Determine si existen diferencias significativas en el número de linfocitos antes y después del tratamiento > antes<-c(31,157,4,109,283,141,36,164,154,22) > despues<-c(71,93,53,240,181,181,64,367,114,48) > t.test(antes,despues,paired=T) Paired t-test data: antes and despues t = -1.1006, df = 9, p-value = 0.2996 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -95.02074 32.82074 sample estimates: mean of the differences -31.1

  13. Caso 2. T Student para Muestras independientes. El test t de Student para muestras independientes permite docimar la hipótesis nula de igualdad de promedios de dos vectores numéricos x1 y x2. Es decir, H0: μ1 = μ2. H0: μ1 = μ2 H1: μ1 ≠ μ2 > t.test(x1,x2) # si vectores numéricos x1 y x2 tienen igual media

  14. Problema 7 Considerando el numero de linfocitos encontrados en 10 pacientes en la ciudad 1 y en 10 pacientes en la ciudad 2. 1. Genere los vectores de la tabla conservando los nombres de cabecera y determine si existen diferencias significativas en el número de linfocitos en ambas ciudades. <ciudad1<-antes <ciudad1 <ciudad2<-despues <ciudad2 <t.test(ciudad1,ciudad2) <t.test(ciudad1,ciudad2) Welch Two Sample t-test data: ciudad1 and ciudad2 t = -0.7308, df = 17.564, p-value = 0.4745 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -120.66331 58.46331 sample estimates: mean of x mean of y 110.1 141.2

  15. t.test requiere que las muestras estén en columnas distintas, cuando lo habitual es tener los datos en una columna (por ejemplo, en vector x) y los grupos a comparar en otra columna (por ejemplo, en vector grupo, con valores 1 y 2). La solución es: >t.test(x[grupo==1], x[grupo==2]) Problema 8. Tomando los valores de linfocitos y ciudad. Determine si existen diferencias significativas entre una ciudad y otra. Genere los vectores de la tabla conservando los nombres de cabecera. > ciudad<-c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2) >linfocitos<c(31,157,4,109,283,141,36,164,154,22,71,93,53,240,181,181,64,367,114,48) > t.test(linfocitos[ciudad==1],linfocitos[ciudad==2]) Welch Two Sample t-test data: linfocitos[ciudad == 1] and linfocitos[ciudad == 2] t = -0.7308, df = 17.564, p-value = 0.4745 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -120.66331 58.46331 sample estimates: mean of x mean of y 110.1 141.2

  16. Numérica según categórica. Comando boxplot El comando boxplot permite hacer un box-plot (o cajón con bigotes). > boxplot(x) # box-plot de x (variable numerica) > boxplot(num~cat) # box-plot de num para cada nivel de cat opciones útiles (boxplot): main=“Peso según HTA” names=c("(+)", "(-)") xlab=“HTA” ylab=“Peso(kg)” col=“green” # o bien col=3 notch=T # gráfico acinturado horizontal=F # por defecto ylim=c(20,140) log=“both” # también “x”, “y”

  17. Problema 8. Genere un grafico de bigotes, lo mas completo posible, para los datos del ejercicio 8. Propuesta

  18. 3. Test de Kruskal-Wallis Análisis de comparación de medianas entre dos o mas poblaciones. El test de rangos de Kruskal-Wallis permite comparar el parámetro de tendencia central (mediana) entre dos o más poblaciones. Cuando se comparan solo 2 grupos, el test es equivalente al test de rangos de Wilcoxon. > kruskal.test(x,grupos) # si la mediana de x (variable numérica) se # diferencia entre grupos (variable categórica) > kruskal.test(list(x1,x2,x3)) # si existen diferencias entre promedios # de x1, x2 y x3 (no requiere variable categórica)

  19. 4. Test de Normalidad Análisis para comparar distribuciones de variables frente a una normal. El comando ks.test permite determinar si un vector x tiene distribución Normal. H0: p1 = p2 Son normales H1: p1 ≠ p2 No son normales Test de Shapiro Wilk sirve n<30 una muestra >sw<-shapiro.test(namevariable) >print(sw) Test de Kolmogorov Smirnov sirve n un vector > ks.test(x,pnorm) # si x ~ normal con media 0 y desv.estandar 1 También hay otras distribuciones disponibles. Las más importantes (y los parámetros necesarios en cada una) son: > ks.test(x,ppois,lambda) # si x ~ Poisson con tasa lambda. Ej: ks.test(x,ppois,3) > ks.test(x,pbinom,n,p) # si x ~ Binomial con n y p dados. Test de Kolmogorov Smirnov sirve n<30 dos vectores En comando ks.test también se usa para determinar si dos vectores tienen igual distribución. > ks.test(x,y) # si x e y tienen la misma distribución

  20. 5. Test de asociación. Correlación El comando cor permite obtener la correlación entre dos vectores x e y. > cor(x, y) # correlacion (Pearson) entre x e y. > cor.test(x, y) # correlacion (Pearson) entre x e y, test e IC95% Por defecto, cor entrega la correlación de pearson. Con el subcomando method se controla cuál correlación obtener: pearson, spearman o kendall. > cor(x, y,method=“pearson”) # igual a cor(x,y) > cor(x, y,method=“spearman”) # correlacion de Spearman ordinal/continua > cor(x, y,method=“kendall”) # correlacion de Kendall ordinal/ordinal Si hay observaciones faltantes en x o y el comando producirá un error. La opción use=“complete.obs” borra registros con NA en cualquiera de las dos variables. xyz=cbind(x,y,z) > cor(xyz)

  21. Gráfico de dos variable numéricas. Comando plot El comando plot (además de hacer el Index Graph) permite hacer un gráfico de dispersión de dos variables numéricas. > plot(x,y) # gráfico cartesiano: x versus y > plot(y~x) # formula: y en función de x opciones útiles (plot): main=“Peso en función de Talla” xlab=“Talla(cms)” ylab=“Peso(kg)” xlim=c(1.2,1.9) ylim=c(20,160) col=“forestgreen“ # borde de symbol bg=“white” # interior (default) pch=21 # circle (default) cex=2 # tamaño symbol (def:1) lwd=1 # ancho de lineas

  22. Tarea 2. • Lea la base de datos Litiasis.txt (archivo de texto delimitado por tabulaciones) en R. • Observe las características del dataframe como list(), names(), summaru() • Acceda a los vectores del dataframe usando attach() • Determine si existe asociación entre las variables HTA y PESO Determine si existe asociación entre las variables HTA y FUMA. • Determine si existe asociación entre las variables EDAD y FUMA. • Determine si la variable TALLA tiene distribución normal. • Determine si existe asociacion entre TALLA y EDAD. (grafique). • Finalmente agregue la siguiente instrucción • abline(lm(PESO~TALLA))

  23. 6. Modelos de Regresión. Es una técnica para analizar una variable dependiente numérica (Y) frente a una o mas variables independientes (X) también numéricas sean categóricas o continuas. Y = β0 + β1 x1 + ……+ βn xn + e Tipos de modelo de regresión 1. Modelos de regresión Lineal Y= v.a. numérica continua 2. Modelos de regresión Logística Y= v.a. categórica 3. Modelos de regresión Poisson Y= v.a conteo o tasa

  24. Modelos de regresión Lineal simple <lm (formula = variable Y ~ variable X) Modelos de regresión Lineal múltiple <lm (formula = variable Y ~ variable X1+ variable X2 +…+ variable Xn)

  25. Problema X. • Lee la base datos en Excel llamada “bacteria1” y luego “bacteria2” en R. ¿Porque razon “bacteria1” no se puede leer?. • Realiza una prueba de normalidad para la variable cantbact. • Realiza un modelo de regresión lineal simple para cada una de las variables. • Realiza un modelo de regresión lineal múltiple. <vector<-lm (formula = variable Y ~ variable X) <vector<-lm (formula = variable Y ~ variable X1+ variable X2 +…+ variable Xn)

  26. GRACIAS

  27. Gráfico de dos grupos de datos: points y legend El comando points permite agregar puntos a un dispositivo gráfico abierto. El comando legend permite agregar leyendas a un gráfico. > points(x,y) > legend(locator(1)) Opciones útiles (points): pch=19 # simbolo (19 = circulo lleno) col=“black” # color del simbolo (borde) bg=“green” # color del simbolo (interior) cex=1.2 # tamaño de simbolo (defecto:1) Opciones útiles (legend): pch=19 # simbolo col=“black” # borde de simbolo c(“Masc”,”Fem”) # texto de legenda Ejemplo: gráfico de dispersión de peso (eje Y) según talla (eje X), diferenciando los puntos según sexo (1=Masc y 2=Fem). > plot(peso~talla, main="Peso según Talla", type="n") > points(talla[sexo==1],peso[sexo==1], col=“black”, bg="red", pch=19, cex=1.2) > points(talla[sexo==2],peso[sexo==2], col=“black”, bg="green", pch=19, cex=1.2) > legend(locator(1), pch=c(19,19), col=c("red","green"), c("Masc","Fem"))

  28. Gráfico de dos grupos de datos: points y legend

  29. BONUS TRACK Agregar línea de tendencia a un plot El comando abline permite agregar una línea de tendencia (regresión lineal simple) a un gráfico de dispersión. El intercepto y pendiente se pueden obtener de un modelo (ajustado con comando lm) o se pueden indicar directamente en abline. > plot(peso~talla) > abline( lm(peso~talla) ) opciones útiles (abline): col=“red“ # default: black h=100 # linea en y=100 v=1.7 # linea en x=1.7 lwd=2 # ancho (default:1) lty=1 # tipo linea (2=segmentos) > # intercepto y pendiente conocidos: > abline(-21.52, 52.39, col=“red”)

More Related