Estimada comunidad, tengo unas dudas que son muy básicas creo, pero es mi primera incursión en GLM. Estoy ajustando un modelo binomial a unos datos de germinación. El modelo es muy sencillo, tengo un factor "Condicion" con dos niveles: "a" y "b" (nivel de humedad en suelo). Por otro lado, tengo una variable explicativa "HF" (horas frío=estratificación) que va de 0 a 2160 (en el modelo esta variable es HFe por estandarizada y centrada). Acá van mis preguntas: - ¿cómo interpreto la salida? Si, por ejemplo, me encuentro bajo la "condicion a", ¿no incluyo los términos +1.97820*Condicionb y +1.22376*Condicionb*HFe? - cuando tengo que reemplazar los valores HFe en la fórmula, ¿tengo que utilizar los valores centrados y estandarizados o puedo usar los valores "crudos" HF? Pregunto esto porque perdería reproducibilidad del modelo si utilizo los datos centrados Les dejo el summary de mi modelo y agradezco de antemano su colaboración. Saludos Call: glm(formula = prop ~ Condicion + HFe + Condicion * HFe, family = binomial, data = datos) Deviance Residuals: Min 1Q Median 3Q Max -4.0365 -1.2027 0.0994 0.9577 3.4023 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.17749 0.04484 -26.262 < 2e-16 *** Condicionb 1.97820 0.06434 30.745 < 2e-16 *** HFe -0.20626 0.04503 -4.581 4.64e-06 *** Condicionb:HFe 1.22376 0.06667 18.355 < 2e-16 *** --- Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 1923.94 on 139 degrees of freedom Residual deviance: 348.59 on 136 degrees of freedom AIC: 875.09 Number of Fisher Scoring iterations: 4 [[alternative HTML version deleted]]
Hola, ¿qué tal? Es largo contestar a todo lo que planteas, pero déjame darte una recomendación acerca de una de las cuestiones que planteas: la estandarización de la variable HF. No usaría ni los datos crudos ni estandarización vía media-sd. En lugar de eso, colocaría el 0 en un nivel "normal" o "de referencia" (¿existe tal cosa?) para esa variable y tal vez la escalaría para que incrementos de una unidad (escalada) se correspondiesen con incrementos razonables de la variable subyacente (¿cien unidades de la otra?). Así podrías interpretar la salida del modelo en términos del incremento de la probabilidad de la variable objetivo (sea o no a través de los infames *odds*) frente a variaciones de tamaño "normal" frente a niveles "normales" de las variables más relevantes. Además, el término independiente también tendría una interpretación razonable. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El lun., 14 sept. 2020 a las 21:45, Juan Seco Lopez (< juansecolopez en gmail.com>) escribió:> Estimada comunidad, tengo unas dudas que son muy básicas creo, pero es mi > primera incursión en GLM. > Estoy ajustando un modelo binomial a unos datos de germinación. El modelo > es muy sencillo, tengo un factor "Condicion" con dos niveles: "a" y "b" > (nivel de humedad en suelo). Por otro lado, tengo una variable explicativa > "HF" (horas frío=estratificación) que va de 0 a 2160 (en el modelo esta > variable es HFe por estandarizada y centrada). > Acá van mis preguntas: > - ¿cómo interpreto la salida? Si, por ejemplo, me > encuentro bajo la "condicion a", ¿no incluyo los > términos +1.97820*Condicionb y +1.22376*Condicionb*HFe? > - cuando tengo que reemplazar los valores HFe en la > fórmula, ¿tengo que utilizar los valores centrados y estandarizados o > puedo usar los valores "crudos" HF? Pregunto esto porque perdería > reproducibilidad del modelo si utilizo los datos centrados > > Les dejo el summary de mi modelo y agradezco de antemano su colaboración. > Saludos > > > Call: > glm(formula = prop ~ Condicion + HFe + Condicion * HFe, family = binomial, > data = datos) > > Deviance Residuals: > Min 1Q Median 3Q Max > -4.0365 -1.2027 0.0994 0.9577 3.4023 > > Coefficients: > Estimate Std. Error z value > Pr(>|z|) > (Intercept) -1.17749 0.04484 -26.262 < 2e-16 > *** > Condicionb 1.97820 0.06434 30.745 < 2e-16 > *** > HFe -0.20626 0.04503 -4.581 > 4.64e-06 *** > Condicionb:HFe 1.22376 0.06667 18.355 < 2e-16 *** > --- > Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1 > > (Dispersion parameter for binomial family taken to be 1) > > Null deviance: 1923.94 on 139 degrees of freedom > Residual deviance: 348.59 on 136 degrees of freedom > AIC: 875.09 > > Number of Fisher Scoring iterations: 4 > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Francisco Rodriguez Sanchez
2020-Sep-15 09:13 UTC
[R-es] Interpretación de salida de un GLM
Hola Juan, Primero de todo, no estoy seguro de si tu variable respuesta 'prop' representa la proporción de semillas germinadas? No es lo mismo que esa proporción sea 1 de 2 que 50 de 100, aunque el porcentaje de germinación sea el mismo (50%). Ver https://stats.stackexchange.com/questions/241983/using-proportions-directly-instead-of-cbind-in-glm-binomial-regression-is-th. Mi opción preferida para tener en cuenta el tamaño de muestra es proporcionar el número de semillas germinadas y el de no germinadas como variable respuesta, esto es glm(cbind(germin, nogermin) ~ condicion etc, family = binomial) En cuanto a la interpretación de los parámetros, en tu modelo el intercept representaría la probabilidad de germinación (en escala logit) cuando la condición es a y HFe es 0. Para interpretar un modelo así con interacciones creo que lo mejor es visualizarlo, por ejemplo usando el paquete effects o visreg. Aquí tengo algunos ejemplos (https://github.com/Pakillo/LM-GLM-GLMM-intro/blob/trees/glm_binomial.pdf), pero hay mucha más información en internet. Para obtener los valores estimados de germinación en distintas condiciones de humedad y estratificación, creo que lo más fácil es usar la función predict. Le pasas un data frame con los valores de humedad y estratificación y obtienes la probabilidad de germinación, con su incertidumbre. Si usaste HFe como predictor, debes mantener la misma escala. Si te interesa que el modelo se aplique en el futuro a otros datos, mejor usar HF tal cual o usar puntos de referencia fijos (p. ej. HF = 1000 horas) como propone Carlos. Espero que sirva. Suerte Paco On 14/9/20 21:44, Juan Seco Lopez wrote:> Estimada comunidad, tengo unas dudas que son muy básicas creo, pero es mi > primera incursión en GLM. > Estoy ajustando un modelo binomial a unos datos de germinación. El modelo > es muy sencillo, tengo un factor "Condicion" con dos niveles: "a" y "b" > (nivel de humedad en suelo). Por otro lado, tengo una variable explicativa > "HF" (horas frío=estratificación) que va de 0 a 2160 (en el modelo esta > variable es HFe por estandarizada y centrada). > Acá van mis preguntas: > - ¿cómo interpreto la salida? Si, por ejemplo, me > encuentro bajo la "condicion a", ¿no incluyo los > términos +1.97820*Condicionb y +1.22376*Condicionb*HFe? > - cuando tengo que reemplazar los valores HFe en la > fórmula, ¿tengo que utilizar los valores centrados y estandarizados o > puedo usar los valores "crudos" HF? Pregunto esto porque perdería > reproducibilidad del modelo si utilizo los datos centrados > > Les dejo el summary de mi modelo y agradezco de antemano su colaboración. > Saludos > > > Call: > glm(formula = prop ~ Condicion + HFe + Condicion * HFe, family = binomial, > data = datos) > > Deviance Residuals: > Min 1Q Median 3Q Max > -4.0365 -1.2027 0.0994 0.9577 3.4023 > > Coefficients: > Estimate Std. Error z value > Pr(>|z|) > (Intercept) -1.17749 0.04484 -26.262 < 2e-16 > *** > Condicionb 1.97820 0.06434 30.745 < 2e-16 > *** > HFe -0.20626 0.04503 -4.581 > 4.64e-06 *** > Condicionb:HFe 1.22376 0.06667 18.355 < 2e-16 *** > --- > Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1 > > (Dispersion parameter for binomial family taken to be 1) > > Null deviance: 1923.94 on 139 degrees of freedom > Residual deviance: 348.59 on 136 degrees of freedom > AIC: 875.09 > > Number of Fisher Scoring iterations: 4 > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- Dr Francisco Rodríguez-Sánchez https://frodriguezsanchez.net [[alternative HTML version deleted]]
Hola a todos, Veo que ya hay varias contestaciones mientras buscaba una respuesta a un alumno que igual puede servirte: El caso de los niveles de los factores es lo que vimos en la asignatura con regresión con variables categóricas. Se incluyen coeficientes que miden el efecto respecto a un nivel de referencia (por defecto el primero). Mira por ejemplo: https://rubenfcasal.github.io/intror/modelos-lineales.html#regresion-con-variables-categoricas para el caso de regresión lineal. En cuanto a la selección de modelos en principio podrías hacer lo mismo que en el caso lineal, búsqueda exhaustiva o métodos por pasos. Las herramientas que vimos para el caso lineal se pueden extender al caso de modelos lineales generalizados: Mira por ejemplo: https://rubenfcasal.github.io/intror/modelos-lineales-generalizados.html#seleccion-de-variables-explicativas-1 Mi recomendación sería que buscaras bibliografía para estudiar con más detalle este tipo de modelos: 2006 - Extending The Linear Model With R. Generalized Linear, Mixed Effects And Nonparametric Regression Models ? Faraway 2019 - An R Companion to Applied Regression - John Fox, Sanford Weisberg (prueba a buscarlos aquí http://93.174.95.27/) Por si también sirve... Un saludo, Rubén. P.D. Cualquier sugerencia para mejorar el material será bien recibida... El mar., 15 sept. 2020 a las 11:13, Francisco Rodriguez Sanchez (< f.rodriguez.sanc en gmail.com>) escribió:> Hola Juan, > > Primero de todo, no estoy seguro de si tu variable respuesta 'prop' > representa la proporción de semillas germinadas? No es lo mismo que esa > proporción sea 1 de 2 que 50 de 100, aunque el porcentaje de germinación > sea el mismo (50%). Ver > > https://stats.stackexchange.com/questions/241983/using-proportions-directly-instead-of-cbind-in-glm-binomial-regression-is-th. > > > > Mi opción preferida para tener en cuenta el tamaño de muestra es > proporcionar el número de semillas germinadas y el de no germinadas como > variable respuesta, esto es > > glm(cbind(germin, nogermin) ~ condicion etc, family = binomial) > > En cuanto a la interpretación de los parámetros, en tu modelo el > intercept representaría la probabilidad de germinación (en escala logit) > cuando la condición es a y HFe es 0. Para interpretar un modelo así con > interacciones creo que lo mejor es visualizarlo, por ejemplo usando el > paquete effects o visreg. Aquí tengo algunos ejemplos > (https://github.com/Pakillo/LM-GLM-GLMM-intro/blob/trees/glm_binomial.pdf), > > pero hay mucha más información en internet. > > Para obtener los valores estimados de germinación en distintas > condiciones de humedad y estratificación, creo que lo más fácil es usar > la función predict. Le pasas un data frame con los valores de humedad y > estratificación y obtienes la probabilidad de germinación, con su > incertidumbre. Si usaste HFe como predictor, debes mantener la misma > escala. Si te interesa que el modelo se aplique en el futuro a otros > datos, mejor usar HF tal cual o usar puntos de referencia fijos (p. ej. > HF = 1000 horas) como propone Carlos. > > Espero que sirva. Suerte > > Paco > > > On 14/9/20 21:44, Juan Seco Lopez wrote: > > Estimada comunidad, tengo unas dudas que son muy básicas creo, pero es mi > > primera incursión en GLM. > > Estoy ajustando un modelo binomial a unos datos de germinación. El modelo > > es muy sencillo, tengo un factor "Condicion" con dos niveles: "a" y "b" > > (nivel de humedad en suelo). Por otro lado, tengo una variable > explicativa > > "HF" (horas frío=estratificación) que va de 0 a 2160 (en el modelo esta > > variable es HFe por estandarizada y centrada). > > Acá van mis preguntas: > > - ¿cómo interpreto la salida? Si, por ejemplo, me > > encuentro bajo la "condicion a", ¿no incluyo los > > términos +1.97820*Condicionb y +1.22376*Condicionb*HFe? > > - cuando tengo que reemplazar los valores HFe en la > > fórmula, ¿tengo que utilizar los valores centrados y estandarizados o > > puedo usar los valores "crudos" HF? Pregunto esto porque perdería > > reproducibilidad del modelo si utilizo los datos centrados > > > > Les dejo el summary de mi modelo y agradezco de antemano su colaboración. > > Saludos > > > > > > Call: > > glm(formula = prop ~ Condicion + HFe + Condicion * HFe, family > binomial, > > data = datos) > > > > Deviance Residuals: > > Min 1Q Median 3Q Max > > -4.0365 -1.2027 0.0994 0.9577 3.4023 > > > > Coefficients: > > Estimate Std. Error z value > > Pr(>|z|) > > (Intercept) -1.17749 0.04484 -26.262 < > 2e-16 > > *** > > Condicionb 1.97820 0.06434 30.745 < 2e-16 > > *** > > HFe -0.20626 0.04503 -4.581 > > 4.64e-06 *** > > Condicionb:HFe 1.22376 0.06667 18.355 < 2e-16 *** > > --- > > Signif. codes: 0 ?***? 0.001 ?**? 0.01 ?*? 0.05 ?.? 0.1 ? ? 1 > > > > (Dispersion parameter for binomial family taken to be 1) > > > > Null deviance: 1923.94 on 139 degrees of freedom > > Residual deviance: 348.59 on 136 degrees of freedom > > AIC: 875.09 > > > > Number of Fisher Scoring iterations: 4 > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > -- > Dr Francisco Rodríguez-Sánchez > https://frodriguezsanchez.net > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Rubén Fernández Casal https://rubenfcasal.github.io Dep. Matemáticas, Universidade da Coruña Centro de Investigación en Tecnologías de la Información y las Comunicaciones (CITIC) [[alternative HTML version deleted]]