Re: [R-es] Coeficientes GLM binomial

2019-12-13 Por tema Jaume Tormo
Hola de nuevo,

Ya está resuelto ¡Muchísimas gracias a los tres!

Jaume.


El jue., 5 dic. 2019 a las 10:19, Marcelino De La Cruz Rot (<
marcelino.delac...@urjc.es>) escribió:

> Hola Jaume:
> Los datos que pones en la fórmula son diferentes de los que introduces
> en el newdata en la función predict(). Además, el Intercept en la
> fórmula lo lo has metido cambiado de signo. Si lo haces correctamente,
> coinciden el resultado del predict y el resultado de la fórmula:
>
>  > prob<- -1.89521331-0.02303313*(25)+4.74499714*(0)+0.02043222*(3)
>  > antilogit(prob)
> [1] 0.08243261
>  >
>
> Saludos,
>
> MArcelino
>
> El 05/12/2019 a las 7:28, Jaume Tormo escribió:
> > Un ejemplo con un modelo más simple:
> > He especificado este modelo:
> >> formula(m2.pile)
> > ger ~ tem + pot + time
> > Si hago predict me da:
> >> predict(m2.pile,newdata=data.frame(tem=25,pot=0,time=3),type="response")
> > 0.08243262
> > Extraigo los coeficientes:
> >> coef(m2.pile)
> > (Intercept) tem pottime
> > -1.89521331 -0.02303313  4.74499714  0.02043222
> > Ahora calculo la probabilidad usando los coeficientes
> >> prob<-1.89521331-0.02303313*(15)+4.74499714*(-0.3)+0.02043222*(3)
> >> prob
> > [1] 0.1875139
> > Transformo la probabilidad por que no está en la forma de la respuesta
> > antilogit<-function(x){exp(x)/(1+exp(x))} #función para transformar
> >> antilogit(prob)
> > [1] 0.5467416
> >
> > Si transformo los coeficientes:
> >> antilogit(coef(m2.pile))
> > (Intercept) tem pottime
> >0.1306512   0.4942420   0.9913799   0.5051079
> > Y aplico la formula
> >> prob<-0.1306512-0.4942420*(15)+0.9913799*(-0.3)+0.5051079*(3)
> >> prob
> > [1] -6.065069
> > Tampoco da nada parecido
> >
> > Como veis, en ningún caso, el resultado se parece en nada al valor del
> > predict, no veo que estoy haciendo mal.
> > ¿Alguna idea?
> >
> > Jaume.
> >
> > El jue., 5 dic. 2019 a las 6:44, Jaume Tormo ()
> > escribió:
> >
> >> Muchas gracias Marcelino y Manuel,
> >>
> >> He seguido vuestros consejos, pero sigo teniendo el mismo problema.
> >> Creo que lo que me ocurre es que no se como montar la formula con los
> >> valores de temperatura, potencial y tiempo.
> >> Lo que quiero decir es:
> >> Yo a R le especifico que el modelo es así:
> >> ger~tem+pot+time+I(tem^2)+I(tem^2):pot
> >> Pero para hacer eso a mano, con los valores de mis variables
> (temperatura,
> >> potencial y tiempo) ¿La formula que debería usar es esta?
> >> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
> >> 0,4923288*temp^2 + 0,4997649*temp^2*pot
> >> Donde los números son los valores de los coeficientes y temp, pot y time
> >> son los valores de mis variables, los que cambio en la formula para
> >> predecir la germinación en distintas condiciones.
> >> Al hacer el predict me da valores entre 0 y 1 que son probabilidades,
> pero
> >> al aplicar esta formula me da valores mayores de 1, no tiene sentido.
> >> Preguntado de otra forma ¿Si en R pone I(tem^2):pot eso equivale a
> >> 0,4997649*temp^2*pot? Siendo 0,4997649 el valor del coeficiente.
> >>
> >> Muchas gracias.
> >>
> >> Jaume.
> >>
> >>
> >>
> >> El jue., 28 nov. 2019 a las 13:27, Jaume Tormo ()
> >> escribió:
> >>
> >>> Estimad@s errer@s
> >>>
> >>> He hecho este modelo glm
> >>> m1.pile<-glm(ger~tem+pot+time+I(tem^2)+I(tem^2):pot
> >>>   ,family="binomial"
> >>>   ,data=long.PILE
> >>>   )
> >>> Que nos da la probabilidad de germinación de una semilla en función de
> >>> tem (Temperatura), pot (Humedad del suelo) y time (Tiempo que la
> semilla
> >>> pasa en esas condiciones).
> >>> Ahora quiero, para diferentes tem, pot y time, predecir la probabilidad
> >>> de germinación.
> >>> Para eso uso:
> >>>
> >>>
> predict(m1.pile,newdata=data.frame(tem=15,pot=-0.3,time=3),type="response")
> >>> Con esto me da valores de probabilidad de germinación lógicos y
> >>> razonables.
> >>>
> >>> Por razones ajenas a mi voluntad, necesito poder hacer esto mismo
> usando
> >>> los coeficientes del modelo.
> >>> Extraigo los coeficientes mediante:
> >>> x<-coefficients(m1.pile)
> >>> y los destransformo por que el GLM los transforma al decirle que es
> >>> binomial (es lo mismo que hace “response” en el predict()... creo)
> >>> Coeficientes buenos <- exp(x)/(1+exp(x))
> >>>
> >>> Hasta aquí todo teóricamente correcto ¿No?
> >>> Al reconstruir la formula del modelo con los coeficientes buenos me
> queda
> >>> esto:
> >>> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
> >>> 0,4923288*temp^2 + 0,4997649*temp^2*pot
> >>>
> >>> Pero al calcular esta formula con unos valores concretos de temp, pot y
> >>> time, no me da los mismos valores que el predict con el mismo imput de
> >>> temp, pot y time.
> >>>
> >>> Mi pregunta es ¿Lo que hay especificado en el modelo se corresponde con
> >>> esta fórmula que yo he escrito aquí? Esa podría ser una causa del
> error.
> >>> Mi otra pregunta es ¿Está bien el proceso que he hecho?
> >>>
> >>> 

Re: [R-es] Coeficientes GLM binomial

2019-12-05 Por tema Marcelino De La Cruz Rot
Hola Jaume:
Los datos que pones en la fórmula son diferentes de los que introduces 
en el newdata en la función predict(). Además, el Intercept en la 
fórmula lo lo has metido cambiado de signo. Si lo haces correctamente, 
coinciden el resultado del predict y el resultado de la fórmula:

 > prob<- -1.89521331-0.02303313*(25)+4.74499714*(0)+0.02043222*(3)
 > antilogit(prob)
[1] 0.08243261
 >

Saludos,

MArcelino

El 05/12/2019 a las 7:28, Jaume Tormo escribió:
> Un ejemplo con un modelo más simple:
> He especificado este modelo:
>> formula(m2.pile)
> ger ~ tem + pot + time
> Si hago predict me da:
>> predict(m2.pile,newdata=data.frame(tem=25,pot=0,time=3),type="response")
> 0.08243262
> Extraigo los coeficientes:
>> coef(m2.pile)
> (Intercept) tem pottime
> -1.89521331 -0.02303313  4.74499714  0.02043222
> Ahora calculo la probabilidad usando los coeficientes
>> prob<-1.89521331-0.02303313*(15)+4.74499714*(-0.3)+0.02043222*(3)
>> prob
> [1] 0.1875139
> Transformo la probabilidad por que no está en la forma de la respuesta
> antilogit<-function(x){exp(x)/(1+exp(x))} #función para transformar
>> antilogit(prob)
> [1] 0.5467416
>
> Si transformo los coeficientes:
>> antilogit(coef(m2.pile))
> (Intercept) tem pottime
>0.1306512   0.4942420   0.9913799   0.5051079
> Y aplico la formula
>> prob<-0.1306512-0.4942420*(15)+0.9913799*(-0.3)+0.5051079*(3)
>> prob
> [1] -6.065069
> Tampoco da nada parecido
>
> Como veis, en ningún caso, el resultado se parece en nada al valor del
> predict, no veo que estoy haciendo mal.
> ¿Alguna idea?
>
> Jaume.
>
> El jue., 5 dic. 2019 a las 6:44, Jaume Tormo ()
> escribió:
>
>> Muchas gracias Marcelino y Manuel,
>>
>> He seguido vuestros consejos, pero sigo teniendo el mismo problema.
>> Creo que lo que me ocurre es que no se como montar la formula con los
>> valores de temperatura, potencial y tiempo.
>> Lo que quiero decir es:
>> Yo a R le especifico que el modelo es así:
>> ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>> Pero para hacer eso a mano, con los valores de mis variables (temperatura,
>> potencial y tiempo) ¿La formula que debería usar es esta?
>> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
>> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>> Donde los números son los valores de los coeficientes y temp, pot y time
>> son los valores de mis variables, los que cambio en la formula para
>> predecir la germinación en distintas condiciones.
>> Al hacer el predict me da valores entre 0 y 1 que son probabilidades, pero
>> al aplicar esta formula me da valores mayores de 1, no tiene sentido.
>> Preguntado de otra forma ¿Si en R pone I(tem^2):pot eso equivale a
>> 0,4997649*temp^2*pot? Siendo 0,4997649 el valor del coeficiente.
>>
>> Muchas gracias.
>>
>> Jaume.
>>
>>
>>
>> El jue., 28 nov. 2019 a las 13:27, Jaume Tormo ()
>> escribió:
>>
>>> Estimad@s errer@s
>>>
>>> He hecho este modelo glm
>>> m1.pile<-glm(ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>>>   ,family="binomial"
>>>   ,data=long.PILE
>>>   )
>>> Que nos da la probabilidad de germinación de una semilla en función de
>>> tem (Temperatura), pot (Humedad del suelo) y time (Tiempo que la semilla
>>> pasa en esas condiciones).
>>> Ahora quiero, para diferentes tem, pot y time, predecir la probabilidad
>>> de germinación.
>>> Para eso uso:
>>>
>>> predict(m1.pile,newdata=data.frame(tem=15,pot=-0.3,time=3),type="response")
>>> Con esto me da valores de probabilidad de germinación lógicos y
>>> razonables.
>>>
>>> Por razones ajenas a mi voluntad, necesito poder hacer esto mismo usando
>>> los coeficientes del modelo.
>>> Extraigo los coeficientes mediante:
>>> x<-coefficients(m1.pile)
>>> y los destransformo por que el GLM los transforma al decirle que es
>>> binomial (es lo mismo que hace “response” en el predict()... creo)
>>> Coeficientes buenos <- exp(x)/(1+exp(x))
>>>
>>> Hasta aquí todo teóricamente correcto ¿No?
>>> Al reconstruir la formula del modelo con los coeficientes buenos me queda
>>> esto:
>>> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
>>> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>>>
>>> Pero al calcular esta formula con unos valores concretos de temp, pot y
>>> time, no me da los mismos valores que el predict con el mismo imput de
>>> temp, pot y time.
>>>
>>> Mi pregunta es ¿Lo que hay especificado en el modelo se corresponde con
>>> esta fórmula que yo he escrito aquí? Esa podría ser una causa del error.
>>> Mi otra pregunta es ¿Está bien el proceso que he hecho?
>>>
>>> Muchas gracias.
>>>
>>> Jaume.
>>>
>>> Dr. Jaume Tormo.
>>> Area of Ecology
>>> Departament of Agrarian and Environmental Sciences
>>> Technological College. Agri-food and Environment
>>> University of Zaragoza, Spain
>>> 0034 974292678
>>> https://es.linkedin.com/in/jaumetormo
>>> https://acercad.wordpress.com/
>>>
>>>
>>>
>>> --
>>> Jaume Tormo.
>>> https://es.linkedin.com/in/jaumetormo
>>> https://acercad.wordpress.com/
>>>
>>

Re: [R-es] Coeficientes GLM binomial

2019-12-05 Por tema Álvaro Hernández Vicente
Hola, Jaume:

En la asignación de 'prob' te falta un signo menos (al no dejar espacios 
es algo difícil de ver) y no evalúas con los mismos datos que pones en 
el predict (tem = 25, pot = 0, time = 3). Cambiando eso ahora sí sale lo 
mismo, como debería.

> prob <- -1.89521331 - 0.02303313*25 + 4.74499714*0 + 0.02043222*3
> prob
[1] -2.409745
> exp(prob)/(1+exp(prob))
[1] 0.08243261

Un saludo
Álvaro

El 5/12/19 a las 7:28, Jaume Tormo escribió:
> Un ejemplo con un modelo más simple:
> He especificado este modelo:
>> formula(m2.pile)
> ger ~ tem + pot + time
> Si hago predict me da:
>> predict(m2.pile,newdata=data.frame(tem=25,pot=0,time=3),type="response")
> 0.08243262
> Extraigo los coeficientes:
>> coef(m2.pile)
> (Intercept) tem pottime
> -1.89521331 -0.02303313  4.74499714  0.02043222
> Ahora calculo la probabilidad usando los coeficientes
>> prob<-1.89521331-0.02303313*(15)+4.74499714*(-0.3)+0.02043222*(3)
>> prob
> [1] 0.1875139
> Transformo la probabilidad por que no está en la forma de la respuesta
> antilogit<-function(x){exp(x)/(1+exp(x))} #función para transformar
>> antilogit(prob)
> [1] 0.5467416
>
> Si transformo los coeficientes:
>> antilogit(coef(m2.pile))
> (Intercept) tem pottime
>0.1306512   0.4942420   0.9913799   0.5051079
> Y aplico la formula
>> prob<-0.1306512-0.4942420*(15)+0.9913799*(-0.3)+0.5051079*(3)
>> prob
> [1] -6.065069
> Tampoco da nada parecido
>
> Como veis, en ningún caso, el resultado se parece en nada al valor del
> predict, no veo que estoy haciendo mal.
> ¿Alguna idea?
>
> Jaume.
>
> El jue., 5 dic. 2019 a las 6:44, Jaume Tormo ()
> escribió:
>
>> Muchas gracias Marcelino y Manuel,
>>
>> He seguido vuestros consejos, pero sigo teniendo el mismo problema.
>> Creo que lo que me ocurre es que no se como montar la formula con los
>> valores de temperatura, potencial y tiempo.
>> Lo que quiero decir es:
>> Yo a R le especifico que el modelo es así:
>> ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>> Pero para hacer eso a mano, con los valores de mis variables (temperatura,
>> potencial y tiempo) ¿La formula que debería usar es esta?
>> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
>> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>> Donde los números son los valores de los coeficientes y temp, pot y time
>> son los valores de mis variables, los que cambio en la formula para
>> predecir la germinación en distintas condiciones.
>> Al hacer el predict me da valores entre 0 y 1 que son probabilidades, pero
>> al aplicar esta formula me da valores mayores de 1, no tiene sentido.
>> Preguntado de otra forma ¿Si en R pone I(tem^2):pot eso equivale a
>> 0,4997649*temp^2*pot? Siendo 0,4997649 el valor del coeficiente.
>>
>> Muchas gracias.
>>
>> Jaume.
>>
>>
>>
>> El jue., 28 nov. 2019 a las 13:27, Jaume Tormo ()
>> escribió:
>>
>>> Estimad@s errer@s
>>>
>>> He hecho este modelo glm
>>> m1.pile<-glm(ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>>>   ,family="binomial"
>>>   ,data=long.PILE
>>>   )
>>> Que nos da la probabilidad de germinación de una semilla en función de
>>> tem (Temperatura), pot (Humedad del suelo) y time (Tiempo que la semilla
>>> pasa en esas condiciones).
>>> Ahora quiero, para diferentes tem, pot y time, predecir la probabilidad
>>> de germinación.
>>> Para eso uso:
>>>
>>> predict(m1.pile,newdata=data.frame(tem=15,pot=-0.3,time=3),type="response")
>>> Con esto me da valores de probabilidad de germinación lógicos y
>>> razonables.
>>>
>>> Por razones ajenas a mi voluntad, necesito poder hacer esto mismo usando
>>> los coeficientes del modelo.
>>> Extraigo los coeficientes mediante:
>>> x<-coefficients(m1.pile)
>>> y los destransformo por que el GLM los transforma al decirle que es
>>> binomial (es lo mismo que hace “response” en el predict()... creo)
>>> Coeficientes buenos <- exp(x)/(1+exp(x))
>>>
>>> Hasta aquí todo teóricamente correcto ¿No?
>>> Al reconstruir la formula del modelo con los coeficientes buenos me queda
>>> esto:
>>> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
>>> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>>>
>>> Pero al calcular esta formula con unos valores concretos de temp, pot y
>>> time, no me da los mismos valores que el predict con el mismo imput de
>>> temp, pot y time.
>>>
>>> Mi pregunta es ¿Lo que hay especificado en el modelo se corresponde con
>>> esta fórmula que yo he escrito aquí? Esa podría ser una causa del error.
>>> Mi otra pregunta es ¿Está bien el proceso que he hecho?
>>>
>>> Muchas gracias.
>>>
>>> Jaume.
>>>
>>> Dr. Jaume Tormo.
>>> Area of Ecology
>>> Departament of Agrarian and Environmental Sciences
>>> Technological College. Agri-food and Environment
>>> University of Zaragoza, Spain
>>> 0034 974292678
>>> https://es.linkedin.com/in/jaumetormo
>>> https://acercad.wordpress.com/
>>>
>>>
>>>
>>> --
>>> Jaume Tormo.
>>> https://es.linkedin.com/in/jaumetormo
>>> https://acercad.wordpress.com/
>>>
>>
>> --
>> Jaume 

Re: [R-es] Coeficientes GLM binomial

2019-12-04 Por tema Jaume Tormo
Un ejemplo con un modelo más simple:
He especificado este modelo:
>formula(m2.pile)
ger ~ tem + pot + time
Si hago predict me da:
>predict(m2.pile,newdata=data.frame(tem=25,pot=0,time=3),type="response")
0.08243262
Extraigo los coeficientes:
> coef(m2.pile)
(Intercept) tem pottime
-1.89521331 -0.02303313  4.74499714  0.02043222
Ahora calculo la probabilidad usando los coeficientes
> prob<-1.89521331-0.02303313*(15)+4.74499714*(-0.3)+0.02043222*(3)
> prob
[1] 0.1875139
Transformo la probabilidad por que no está en la forma de la respuesta
antilogit<-function(x){exp(x)/(1+exp(x))} #función para transformar
> antilogit(prob)
[1] 0.5467416

Si transformo los coeficientes:
> antilogit(coef(m2.pile))
(Intercept) tem pottime
  0.1306512   0.4942420   0.9913799   0.5051079
Y aplico la formula
> prob<-0.1306512-0.4942420*(15)+0.9913799*(-0.3)+0.5051079*(3)
> prob
[1] -6.065069
Tampoco da nada parecido

Como veis, en ningún caso, el resultado se parece en nada al valor del
predict, no veo que estoy haciendo mal.
¿Alguna idea?

Jaume.

El jue., 5 dic. 2019 a las 6:44, Jaume Tormo ()
escribió:

> Muchas gracias Marcelino y Manuel,
>
> He seguido vuestros consejos, pero sigo teniendo el mismo problema.
> Creo que lo que me ocurre es que no se como montar la formula con los
> valores de temperatura, potencial y tiempo.
> Lo que quiero decir es:
> Yo a R le especifico que el modelo es así:
> ger~tem+pot+time+I(tem^2)+I(tem^2):pot
> Pero para hacer eso a mano, con los valores de mis variables (temperatura,
> potencial y tiempo) ¿La formula que debería usar es esta?
> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
> 0,4923288*temp^2 + 0,4997649*temp^2*pot
> Donde los números son los valores de los coeficientes y temp, pot y time
> son los valores de mis variables, los que cambio en la formula para
> predecir la germinación en distintas condiciones.
> Al hacer el predict me da valores entre 0 y 1 que son probabilidades, pero
> al aplicar esta formula me da valores mayores de 1, no tiene sentido.
> Preguntado de otra forma ¿Si en R pone I(tem^2):pot eso equivale a
> 0,4997649*temp^2*pot? Siendo 0,4997649 el valor del coeficiente.
>
> Muchas gracias.
>
> Jaume.
>
>
>
> El jue., 28 nov. 2019 a las 13:27, Jaume Tormo ()
> escribió:
>
>> Estimad@s errer@s
>>
>> He hecho este modelo glm
>> m1.pile<-glm(ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>>  ,family="binomial"
>>  ,data=long.PILE
>>  )
>> Que nos da la probabilidad de germinación de una semilla en función de
>> tem (Temperatura), pot (Humedad del suelo) y time (Tiempo que la semilla
>> pasa en esas condiciones).
>> Ahora quiero, para diferentes tem, pot y time, predecir la probabilidad
>> de germinación.
>> Para eso uso:
>>
>> predict(m1.pile,newdata=data.frame(tem=15,pot=-0.3,time=3),type="response")
>> Con esto me da valores de probabilidad de germinación lógicos y
>> razonables.
>>
>> Por razones ajenas a mi voluntad, necesito poder hacer esto mismo usando
>> los coeficientes del modelo.
>> Extraigo los coeficientes mediante:
>> x<-coefficients(m1.pile)
>> y los destransformo por que el GLM los transforma al decirle que es
>> binomial (es lo mismo que hace “response” en el predict()... creo)
>> Coeficientes buenos <- exp(x)/(1+exp(x))
>>
>> Hasta aquí todo teóricamente correcto ¿No?
>> Al reconstruir la formula del modelo con los coeficientes buenos me queda
>> esto:
>> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
>> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>>
>> Pero al calcular esta formula con unos valores concretos de temp, pot y
>> time, no me da los mismos valores que el predict con el mismo imput de
>> temp, pot y time.
>>
>> Mi pregunta es ¿Lo que hay especificado en el modelo se corresponde con
>> esta fórmula que yo he escrito aquí? Esa podría ser una causa del error.
>> Mi otra pregunta es ¿Está bien el proceso que he hecho?
>>
>> Muchas gracias.
>>
>> Jaume.
>>
>> Dr. Jaume Tormo.
>> Area of Ecology
>> Departament of Agrarian and Environmental Sciences
>> Technological College. Agri-food and Environment
>> University of Zaragoza, Spain
>> 0034 974292678
>> https://es.linkedin.com/in/jaumetormo
>> https://acercad.wordpress.com/
>>
>>
>>
>> --
>> Jaume Tormo.
>> https://es.linkedin.com/in/jaumetormo
>> https://acercad.wordpress.com/
>>
>
>
> --
> Jaume Tormo.
> https://es.linkedin.com/in/jaumetormo
> https://acercad.wordpress.com/
>


-- 
Jaume Tormo.
https://es.linkedin.com/in/jaumetormo
https://acercad.wordpress.com/

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Coeficientes GLM binomial

2019-12-04 Por tema Jaume Tormo
Muchas gracias Marcelino y Manuel,

He seguido vuestros consejos, pero sigo teniendo el mismo problema.
Creo que lo que me ocurre es que no se como montar la formula con los
valores de temperatura, potencial y tiempo.
Lo que quiero decir es:
Yo a R le especifico que el modelo es así:
ger~tem+pot+time+I(tem^2)+I(tem^2):pot
Pero para hacer eso a mano, con los valores de mis variables (temperatura,
potencial y tiempo) ¿La formula que debería usar es esta?
0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
0,4923288*temp^2 + 0,4997649*temp^2*pot
Donde los números son los valores de los coeficientes y temp, pot y time
son los valores de mis variables, los que cambio en la formula para
predecir la germinación en distintas condiciones.
Al hacer el predict me da valores entre 0 y 1 que son probabilidades, pero
al aplicar esta formula me da valores mayores de 1, no tiene sentido.
Preguntado de otra forma ¿Si en R pone I(tem^2):pot eso equivale a
0,4997649*temp^2*pot? Siendo 0,4997649 el valor del coeficiente.

Muchas gracias.

Jaume.



El jue., 28 nov. 2019 a las 13:27, Jaume Tormo ()
escribió:

> Estimad@s errer@s
>
> He hecho este modelo glm
> m1.pile<-glm(ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>  ,family="binomial"
>  ,data=long.PILE
>  )
> Que nos da la probabilidad de germinación de una semilla en función de tem
> (Temperatura), pot (Humedad del suelo) y time (Tiempo que la semilla pasa
> en esas condiciones).
> Ahora quiero, para diferentes tem, pot y time, predecir la probabilidad de
> germinación.
> Para eso uso:
> predict(m1.pile,newdata=data.frame(tem=15,pot=-0.3,time=3),type="response")
> Con esto me da valores de probabilidad de germinación lógicos y razonables.
>
> Por razones ajenas a mi voluntad, necesito poder hacer esto mismo usando
> los coeficientes del modelo.
> Extraigo los coeficientes mediante:
> x<-coefficients(m1.pile)
> y los destransformo por que el GLM los transforma al decirle que es
> binomial (es lo mismo que hace “response” en el predict()... creo)
> Coeficientes buenos <- exp(x)/(1+exp(x))
>
> Hasta aquí todo teóricamente correcto ¿No?
> Al reconstruir la formula del modelo con los coeficientes buenos me queda
> esto:
> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>
> Pero al calcular esta formula con unos valores concretos de temp, pot y
> time, no me da los mismos valores que el predict con el mismo imput de
> temp, pot y time.
>
> Mi pregunta es ¿Lo que hay especificado en el modelo se corresponde con
> esta fórmula que yo he escrito aquí? Esa podría ser una causa del error.
> Mi otra pregunta es ¿Está bien el proceso que he hecho?
>
> Muchas gracias.
>
> Jaume.
>
> Dr. Jaume Tormo.
> Area of Ecology
> Departament of Agrarian and Environmental Sciences
> Technological College. Agri-food and Environment
> University of Zaragoza, Spain
> 0034 974292678
> https://es.linkedin.com/in/jaumetormo
> https://acercad.wordpress.com/
>
>
>
> --
> Jaume Tormo.
> https://es.linkedin.com/in/jaumetormo
> https://acercad.wordpress.com/
>


-- 
Jaume Tormo.
https://es.linkedin.com/in/jaumetormo
https://acercad.wordpress.com/

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Coeficientes GLM binomial

2019-11-28 Por tema Manuel Spínola
Hola Jaume,

Si entendí bien puedes usar la función plogis sobre los coeficientes del
modelo.

Para eso debes especificar los valores que tu quieras a las variables.

Manuel Spínola

On Thu, Nov 28, 2019 at 06:28 Jaume Tormo  wrote:

> Estimad@s errer@s
>
> He hecho este modelo glm
> m1.pile<-glm(ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>  ,family="binomial"
>  ,data=long.PILE
>  )
> Que nos da la probabilidad de germinación de una semilla en función de tem
> (Temperatura), pot (Humedad del suelo) y time (Tiempo que la semilla pasa
> en esas condiciones).
> Ahora quiero, para diferentes tem, pot y time, predecir la probabilidad de
> germinación.
> Para eso uso:
> predict(m1.pile,newdata=data.frame(tem=15,pot=-0.3,time=3),type="response")
> Con esto me da valores de probabilidad de germinación lógicos y razonables.
>
> Por razones ajenas a mi voluntad, necesito poder hacer esto mismo usando
> los coeficientes del modelo.
> Extraigo los coeficientes mediante:
> x<-coefficients(m1.pile)
> y los destransformo por que el GLM los transforma al decirle que es
> binomial (es lo mismo que hace “response” en el predict()... creo)
> Coeficientes buenos <- exp(x)/(1+exp(x))
>
> Hasta aquí todo teóricamente correcto ¿No?
> Al reconstruir la formula del modelo con los coeficientes buenos me queda
> esto:
> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>
> Pero al calcular esta formula con unos valores concretos de temp, pot y
> time, no me da los mismos valores que el predict con el mismo imput de
> temp, pot y time.
>
> Mi pregunta es ¿Lo que hay especificado en el modelo se corresponde con
> esta fórmula que yo he escrito aquí? Esa podría ser una causa del error.
> Mi otra pregunta es ¿Está bien el proceso que he hecho?
>
> Muchas gracias.
>
> Jaume.
>
> Dr. Jaume Tormo.
> Area of Ecology
> Departament of Agrarian and Environmental Sciences
> Technological College. Agri-food and Environment
> University of Zaragoza, Spain
> 0034 974292678
> https://es.linkedin.com/in/jaumetormo
> https://acercad.wordpress.com/
>
>
>
> --
> Jaume Tormo.
> https://es.linkedin.com/in/jaumetormo
> https://acercad.wordpress.com/
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
-- 
*Manuel Spínola, Ph.D.*
Instituto Internacional en Conservación y Manejo de Vida Silvestre
Universidad Nacional
Apartado 1350-3000
Heredia
COSTA RICA
mspin...@una.cr 
mspinol...@gmail.com
Teléfono: (506) 8706 - 4662
Personal website: Lobito de río 
Institutional website: ICOMVIS 

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Coeficientes GLM binomial

2019-11-28 Por tema Marcelino De La Cruz Rot
Hola Jaume:

La transformación de la predicción a la escala de la respuesta la debes 
hacer sobre la predicción, no sobre los coeficientes. La "x" en tu 
fórmula es el predictor lineal completo, no los coeficientes 
individuales. Así que predice con los coeficientes que te da le modelo 
(sin "detransfomar") y luego aplica la fórmula a esa predicción.

Un saludo,

Marcelino

El 28/11/2019 a las 13:27, Jaume Tormo escribió:
> Estimad@s errer@s
>
> He hecho este modelo glm
> m1.pile<-glm(ger~tem+pot+time+I(tem^2)+I(tem^2):pot
>   ,family="binomial"
>   ,data=long.PILE
>   )
> Que nos da la probabilidad de germinación de una semilla en función de tem
> (Temperatura), pot (Humedad del suelo) y time (Tiempo que la semilla pasa
> en esas condiciones).
> Ahora quiero, para diferentes tem, pot y time, predecir la probabilidad de
> germinación.
> Para eso uso:
> predict(m1.pile,newdata=data.frame(tem=15,pot=-0.3,time=3),type="response")
> Con esto me da valores de probabilidad de germinación lógicos y razonables.
>
> Por razones ajenas a mi voluntad, necesito poder hacer esto mismo usando
> los coeficientes del modelo.
> Extraigo los coeficientes mediante:
> x<-coefficients(m1.pile)
> y los destransformo por que el GLM los transforma al decirle que es
> binomial (es lo mismo que hace “response” en el predict()... creo)
> Coeficientes buenos <- exp(x)/(1+exp(x))
>
> Hasta aquí todo teóricamente correcto ¿No?
> Al reconstruir la formula del modelo con los coeficientes buenos me queda
> esto:
> 0,0006077 + 0,7043138*temp + 0,9962766*pot + 0,5060756*time +
> 0,4923288*temp^2 + 0,4997649*temp^2*pot
>
> Pero al calcular esta formula con unos valores concretos de temp, pot y
> time, no me da los mismos valores que el predict con el mismo imput de
> temp, pot y time.
>
> Mi pregunta es ¿Lo que hay especificado en el modelo se corresponde con
> esta fórmula que yo he escrito aquí? Esa podría ser una causa del error.
> Mi otra pregunta es ¿Está bien el proceso que he hecho?
>
> Muchas gracias.
>
> Jaume.
>
> Dr. Jaume Tormo.
> Area of Ecology
> Departament of Agrarian and Environmental Sciences
> Technological College. Agri-food and Environment
> University of Zaragoza, Spain
> 0034 974292678
> https://es.linkedin.com/in/jaumetormo
> https://acercad.wordpress.com/
>
>
>

-- 
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es