Modelos Estadísticos. Grado Biotecnología
Abstract
Colección de ejercicios sobre modelos lineales generalizados para tablas de contingencia# Cargamos las librerías
library(tidyverse)
library(forcats)
library(broom)
library(reshape2)
library(lmtest)
library(mgcv)
library(MASS)
library(modelr)
library(datasets)
library(dobson)
library(nnet)Ejercicio 1. Los datos siguientes provienen de un estudio de pacientes con una forma de cáncer de piel llamado melanoma maligno. En una muestra de 400 pacientes se recogió información sobre la localización del rumor y su tipo histológico. Los datos son el número de pacientes (fecuency) en cada combinación de tipo de tumor (type) y localización (site). El objetivo básico del análisis es investigar si determinados tipos de tumor están asociados a ciertas localizaciones. Realiza un análisis preliminar de la información recogida y ajusta el modelo que corresponda al objetivo del estudio.
glm_multi_01 = read_csv("https://goo.gl/yeCXsv", col_types = "cci")Ejercicio 2. En el banco de datos siguiente aparecen los datos de un estudio sobre la activad sexual de los adolescentes entre 15 y 16 años. El objetivo básico de interés radica en conocer si han tenido o no relaciones sexuales. Las datos son el numero de adolescentes (frecuencia) que han tenido o no relaciones sexuales (relaciones) en función del sexo del adolescente (sexo) y su raza (raza). Realiza un análisis preliminar de los datos recogidos y contesta a las siguientes preguntas ajustando el modelo que corresponda en cada caso:
raza <- gl(2,4,8,labels = c("Blanca","Negra"))
sexo <- gl(2,2,8,labels = c("Hombre","Mujer"))
relaciones <- gl(2,1,8,labels = c("Si","No"))
frecuencia <- c(43,134,26,149,29,23,22,36)
glm_multi_02 <- data.frame(raza,sexo,relaciones,frecuencia)Ejercicio 3. En un estudio prospectivo sobre una nueva vacuna para la gripe, los pacientes fueron asignados aleatoriamente a dos grupos. A los pacientes de uno de los grupos se les trató con la nueva vacuna y a los otros se les dio un placebo salino. Las respuestas fueron los niveles de anticuerpos inhibidores de hemoglutinina (HIA) encontrados en la sangre seis semanas después de la vacunación. Los datos se encuentran en el banco de datos siguiente. El objetivo del estudio es investigar el efecto de la nueva vacuna, esto es, comprobar si el hecho de dar placebo o vacuna provoca diferente respuesta HIA. Así, la variable HIA es la variable a explicar en función del tipo de tratamiento que ha recibido el paciente y las frecuencias de las celdas.
glm_multi_03 <- read_csv("https://goo.gl/jPcz7x", col_types = "cci")
# Código numérico par factores ordinales
glm_multi_03 <- glm_multi_03 %>%
mutate(response.num = as.numeric(gl(3,1,6)))Ejercicio 4. En un estudio retrospectivo de casos-controles, se reunió a un grupo de pacientes con úlcera y se buscó a otro grupo de individuos de similares características a los anteriores en edad, sexo y estatus socio económico, sobre los que no se sabía que tuvieran úlcera péptica. Los pacientes con úlcera fueron clasificados de acuerdo a la localización de la úlcera: gástrica o duodenal. Se les preguntó a todos si consumían apirina. El objetivo del análisis es averiguar si existe alguna relación entre el consumo de aspirina y la existencia de algún tipo de úlcera. Si existe tal asociación, querríamos comprobar si el consumo de aspirina es más hahitual en los pacientes con úlcera gástrica que en los de úlcera duodenal. Interesa predecir el consumo de aspirina (variable a explicar) en función de si un individuo tiene úlcera o no. y si la tiene, de qué tipo es.
locali <- gl(2,2,8,labels = c("Gástrica","Duodenal"))
ulcera <- gl(2,1,8,labels = c("Si","No"))
aspirina <- gl(2,4,8,labels = c("No","Si"))
frecuencia <- c(39,62,49,53,25,6,8,8)
glm_multi_04 <- data.frame(locali,ulcera,aspirina,frecuencia)Ejercicio 5. En la tabla se muestran una parte de los resultados de un estudio en los Estados Unidos con el que se pretendía investigar el grado de asociación entre las aspiraciones de los estudiantes de bachillerato por proseguir con estudios universitarios y su entorno social, medido en términos del estatus socio-económico de su familia y el hecho de que recibieran apoyo en su familia para continuar estudiando.
estatus <- gl(4,2,16,labels = c("Baja","Media-Baja","Media-Alta","Alta"))
motivacion <- gl(2,1,16,labels=c("Baja","Alta"))
aspiraciones <- gl(2,8,16,labels = c("No","Si"))
frecuencia <- c(749,233,627,330,420,374,153,266,35,133,38,303,37,467,26,800)
glm_multi_05 <- data.frame(estatus,motivacion,aspiraciones,frecuencia)
# Código numérico para factores ordinales
glm_multi_05 <- glm_multi_05 %>%
mutate(Estatus.num = as.numeric(gl(4,2,16)),
Motivacion.num = as.numeric(gl(2,1,16)))Ejercicio 6. En la tabla aparecen los datos de un estudio sobre distintos usos contraceptivos en diferentes grupos generacionales. Entendiendo la variable método contraceptivo como variable respuesta y la variable edad como predictiva, una cuestión de interés puede ser predecir el uso anticonceptivo de una mujer en función de su edad. Esto lo podemos hacer comparando la proporción de mujeres que usa cada uno de los usos anticonceptivos con la de aquellas que no usan ninguno frente a los que si usan o son estériles para los diferentes grupos de edad.
edad <- gl(7,1,21,labels = c("15-19","20-24","25-29","30-34","35-39","40-44","45-49"))
metodo <- gl(3,7,21,labels=c("Esterilación","Otros","Ninguno"))
frecuencia <- c(3,80,216,268,197,150,91,61,137,131,76,50,24,10,232,400,301,203,188,164,183)
glm_multi_06 <- data.frame(edad,metodo,frecuencia)
# Código numérico para factores ordinales
glm_multi_06 = glm_multi_06 %>%
mutate(Edad.num = as.numeric(gl(7,1,21)))Ejercicio 7. Los datos que se presentan corresponden a un estudio en el que se pretendía concluir sobre la relación entre el grado de satisfacción en el trabajo y los ingresos percibidos. El objetivo es predecir el grado de satisfacción en el trabajo en función de los ingresos percibidos (en dólares).
glm_multi_07 = read_csv("https://goo.gl/5T0nh0", col_types = "ciiii")
# Construimos la tabla donde cada fila recoje la frecuenia observada para combinación de las variables
glm_multi_07 = glm_multi_07 %>%
gather(`Muy insatisfecho`,`Poco insatisfecho`,`Moderadamente satisfecho`,`Muy satisfecho`,key = "Estado", value = frecuencia)
# Código numérico para factores ordinales
glm_multi_07 = glm_multi_07 %>%
mutate(Ingresos.num = as.numeric(gl(4,1,16)), Estado.num = as.numeric(gl(4,4,16)))Ejercicio 8. Los datos que se presentan corresponden a una encuesta social en Dinamarca, en la que se clasificó a 165 individuos según su estatus marital (soltero, casado, o divorciado alguna vez} y su edad. Se pretendía establecer una relación entre las variables estatus marital y edad, con el fin de concluir sobre el comportamiento social en Dinamarca.
edad <- gl(8,3,24,labels = c("17-21","21-25","25-30","30-40","40-50","50-60","60-70","+70"))
estado <- gl(3,1,24,labels =c("Solteros","Casados","Divorciados"))
frecuencia <- c(17,1,0,16,8,0,8,17,1,6,22,4,5,21,6,3,17,8,2,8,6,1,3,5)
edad.num <- rep(c(19,23,27.5,35,45,55,65,75),c(3,3,3,3,3,3,3,3))
glm_multi_08 <- data.frame(edad,estado,frecuencia,edad.num)Ejercicio 9. Los datos que se presentan corresponden al status de supervivencia, tras tres años, de pacientes con cáncer de mama, clasificados por su edad (en tres grupos) y por el tipo de tumor (maligno o benigno). Formula al menos dos preguntas de interés científico para contestar a partir de los datos anteriores.
edad <- gl(3,2,12,labels = c("<50","50-69",">70"))
maligno <- gl(2,1,12,labels =c("No","Si"))
supervivencia <- gl(2,6,12,labels =c("Si","No"))
frecuencia <- c(77,51,51,38,7,6,10,13,11,20,3,3)
edad.num <- c(40,40,60,60,80,80,40,40,60,60,80,80)
glm_multi_09 <- data.frame(edad,maligno,supervivencia,frecuencia,edad.num)Ejercicio 10. En la Fiji Fertility Survey de 1975 se entrevistó a 1607 mujeres casadas y embarazadas. Fueron clasificadas por edad actual (4 grupos), nivel de estudios (2 niveles), deseo de tener más hijos y uso de contraceptivos. ¿Están relacionados factores como la educación, la edad o simplemente el deseo de no tener más hijos, con el uso de contraceptivos?
edad <- gl(4,4,32,labels = c("<25","25-29","30-39","40-49"))
estudios <- gl(2,2,32,labels =c("Baja","Alta"))
hijos <- gl(2,1,32,labels =c("Si","No"))
contraceptivos <- gl(2,16,32,labels =c("Si","No"))
frecuencia <- c(53,10,212,50,60,19,155,65,112,77,118,68,35,46,8,12,6,4,52,10,14,10,54,27,33,80,46,78,6,48,8,31)
edad.num <- rep(c(22.5,27.5,35,45,22.5,27.5,35,45),c(4,4,4,4,4,4,4,4))
glm_multi_10 <- data.frame(edad,estudios,hijos,contraceptivos,frecuencia,edad.num)Ejercicio 11. En el banco de datos siguiente recoge la información de un estudio sobre la vinculación del cáncer de pulmón y el consumo de tabaco. Se registra la información de hombres ingresados en hospitales enfermos de cáncer de pulmón y enfermos por otras causas (controles) y se les pregunto sobre su consumo diario de cigarros. ¿Existe relación entre el consumo de cigarros y tener cáncer de pulmón? Si es así ¿cómo cambia la probabilidad de tener cáncer de pulmón en función del consumo diario de cigarros?
consumo <- gl(6,1,12,labels = c("Ninguno","<5","5-14","15-24","25-49","50+"))
sujeto <- gl(2,6,12,labels = c("cáncer","control"))
frecuencia <- c(7,55,489,475,293,38,61,129,570,431,154,12)
edad.num <- rep(c(0,2.5,9.5,19.5,37,55),2)
glm_multi_11 <- data.frame(consumo,sujeto,frecuencia,edad.num)Ejercicio 12. En el banco de datos siguiente recoge la información de un estudio sobre el estudio de cierta sustancia farmacológica que potencialmente podría acarrear malformaciones en el feto. Para ello se toma una muestra de ratones embarazados, se les aplica diferente concentraciones de fármaco y se observan los resultados tras el embarazo (“Muerto”, “Malformaciones”,“Normal”). La concentración, medida en mg/kg por día, tiene los niveles: “N0” = 0, “N1” = 62.5, “N2” = 125, “N3” = 250, “N4” = 500. ¿Influye la concentración en las características finales del feto? Si utilizamos los valores numéricos de concentración ¿Como varía el estado del feto en función de dicha concentración?
concentracion <- gl(5,1,15,labels = c("N0","N1","N2","N3","N4"))
concentracion.num <- rep(c(0,62.5,125,250,500),3)
estado <- gl(3,5,15,labels = c("Muerto","Malformaciones","Normal"))
glm_multi_12 <- data.frame(concentracion,concentracion.num,estado)Copyright © 2018 Javier Morales. Universidad Miguel Hernández de Elche.