Estimados Usuarios de R
mi nombre es Gustavo Giménez soy un
adepto neófito en el uso de R, estoy trabajando en curvas de crecimiento de
frutos de peral, ajustando modelos no lineales, específicamente modelos
logísticos de tercera parametrización. Inicialmente, la estimación de los
parámetros los realizaba mediante el método de mínimos cuadrados(trabajando
con la función nls del paquete stats), y luego obtenía la primer derivada de
la función (función deriv en R) ya que la tasa de crecimiento era de mi
interés como así también la segunda derivada. Además de calcular la bondad
del ajuste mediante R^2( que si bien no es del todo adecuado para los
modelos no lineales lo exigen al momento de publicar),criterios de Akaike y
Bayesiano y medidas de no linealidad (función rms.curv del paquete MASS).
Dado que las mediciones sobre los
frutos se realizan en los mismos frutos marcados a lo largo de todo el ciclo
de crecimiento se evidencia la dependencia de los datos( medidas repetidas o
datos longitudinales) y la utilización de modelos no lineales mixtos capaces
de modelar dicha correlación. *Mi consulta es*:
el paquete a utilizar es nlme? existen otros paquetes?
la función a utilizar dentro de mencionado paquete es nlme?
*(continuando con la consulta y aprovechando un ejemplo de R muy semejante a
mi caso)*
Teniendo en cuenta el ejemplo de crecimiento de pinos Loblolly (un marco de
datos con tres columnas, la primera denominada Height posee la altura de los
pinos en pies (FT), la segunda columna Age, edad de los pinos en años
(Years) y por último la columna Seed, que agrupa a los pinos de acuerdo a la
fuente de semillas), que proporciona el paquete datasets y utilizando la
función nlme del paquete homónimo . Aleatorizando la asíntota superior, las
salidas son:
> fm1 <- nlme (height ~ SSasymp(age, Asym, R0, lrc),
+ data=Loblolly,
+ fixed =Asym + R0 + lrc ~1,
+ random = Asym ~ 1,
+ start = c(Asym= 103, R0 = -8.5, lrc = -3.3))
> summary(fm1)
Nonlinear mixed-effects model fit by maximum likelihood
Model: height ~ SSasymp(age, Asym, R0, lrc)
Data: Loblolly
AIC BIC logLik
239.4856 251.6397 -114.7428
*Random effects:*
Formula: Asym ~ 1 | Seed
Asym Residual
StdDev: 3.650642 0.7188625
Fixed effects: Asym + R0 + lrc ~ 1
Value Std.Error DF t-value p-value
Asym 101.44960 2.4616951 68 41.21128 0
R0 -8.62733 0.3179505 68 -27.13420 0
lrc -3.23375 0.0342702 68 -94.36052 0
Correlation:
Asym R0
R0 0.704
lrc -0.908 -0.827
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-2.23601930 -0.62380854 0.05917466 0.65727206 1.95794425
Number of Observations: 84
mi consulta es como extraer las matrices de correlación del individuo entre
sí (dado que la matriz de la salida es una matriz de correlación de
parámetros)? como extraer las matrices de varianza covarianza del error?
para comparar entre distintos modelos: ¿existe alguna función en R para
realizar el test de razón de verosimilitud?
Desde ya agradezco a la comunidad hispanohablante toda contribución respecto
de mi consulta. Y espero haber sido lo suficientemente claro.
Mis más cordiales saludos
--
Ing. Agr. Gustavo Giménez
Becario de Perfeccionamiento en Investigación
Facultad de Ciencias Agrarias
U.N.Co.
[[alternative HTML version deleted]]
Buenas noches Gustavo, 2009/7/12 Ing. Agr. Gustavo Giménez <>> Estimados Usuarios de R > mi nombre es Gustavo Giménez soy un > adepto neófito en el uso de R, estoy trabajando en curvas de crecimiento > de > frutos de peral, ajustando modelos no lineales, específicamente modelos > logísticos de tercera parametrización. Inicialmente, la estimación de los > parámetros los realizaba mediante el método de mínimos > cuadrados(trabajando > con la función nls del paquete stats), y luego obtenía la primer derivada > de > la función (función deriv en R) ya que la tasa de crecimiento era de mi > interés como así también la segunda derivada. Además de calcular la bondad > del ajuste mediante R^2( que si bien no es del todo adecuado para los > modelos no lineales lo exigen al momento de publicar),criterios de Akaike y > Bayesiano y medidas de no linealidad (función rms.curv del paquete MASS). > Dado que las mediciones sobre los > frutos se realizan en los mismos frutos marcados a lo largo de todo el > ciclo > de crecimiento se evidencia la dependencia de los datos( medidas repetidas > o > datos longitudinales) y la utilización de modelos no lineales mixtos > capaces > de modelar dicha correlación. *Mi consulta es*: > > el paquete a utilizar es nlme?Para lo que describes, si.> existen otros paquetes?Entre otros: http://cran.r-project.org/web/packages/glmmAK/index.html http://cran.r-project.org/web/packages/lme4/index.html http://cran.r-project.org/web/packages/nlmeODE/index.html http://cran.r-project.org/web/packages/PSM/index.html Otra posibilidad es usar regresión cuantil para datos longitudinales (libreria quantreg), pero no estoy seguro de si esta permite ajustar modelos mixtos. Una pequeña búsqueda establece que si: http://portal.acm.org/citation.cfm?id=1032098 :-)> la función a utilizar dentro de mencionado paquete es nlme?Sólo si tu objetivo es hacer modelos mixtos no lineales y decides usar la libreria nlme :-)> > > *(continuando con la consulta y aprovechando un ejemplo de R muy semejante > a > mi caso)* > > Teniendo en cuenta el ejemplo de crecimiento de pinos Loblolly (un marco de > datos con tres columnas, la primera denominada Height posee la altura de > los > pinos en pies (FT), la segunda columna Age, edad de los pinos en años > (Years) y por último la columna Seed, que agrupa a los pinos de acuerdo a > la > fuente de semillas), que proporciona el paquete datasets y utilizando la > función nlme del paquete homónimo . Aleatorizando la asíntota superior, las > salidas son: >[Ejemplo omitido] mi consulta es como extraer las matrices de correlación del individuo entre> sí (dado que la matriz de la salida es una matriz de correlación de > parámetros)? como extraer las matrices de varianza covarianza del error?Recuerda que la estructura de cualquier objeto en R puede obtenerse via str(tuobjetoaqui). En tu ejemplo, str(fm1) sería más que suficiente. Otra opción es utilizar names() despues de usar el summary() de tu modelo: names(summary(fm1)) para obtener el nombre de las componentes que se encuentran en fm1 y luego extraerlas via el operador $. Esta es una posibilidad: # Correlación de los efectos fijos summary(fm1)$corFixed # La varianza summary(fm1)$varFix> > > para comparar entre distintos modelos: ¿existe alguna función en R para > realizar el test de razón de verosimilitud?Si. Esto puede realizarse a través de la función anova() que realiza la prueba LRT <http://en.wikipedia.org/wiki/Likelihood-ratio_test> <http://en.wikipedia.org/wiki/Likelihood-ratio_test> anova(modelo1, modelo2) Si mal no recuerdo, ambos modelos deben ser ajustados via MLE.> > > Desde ya agradezco a la comunidad hispanohablante toda contribución > respecto > de mi consulta. Y espero haber sido lo suficientemente claro.Si, si fuiste lo suficientemente claro. Y el ejemplo AYUDO MUCHISIMO! :-) Espero sea de utilidad, Jorge Ivan Velez> > > Mis más cordiales saludos > -- > Ing. Agr. Gustavo Giménez > Becario de Perfeccionamiento en Investigación > Facultad de Ciencias Agrarias > U.N.Co. > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]