Última actualización de este sitio: 28 junio, 2023
————————
Explicar como se realiza el ajuste de un modelo no-lineal de efectos mixtos.
Un modelo de efectos mixtos permite obtener efectos aleatorios que alteran sus parametros (i.e., fijos) para la estructura jerárquica definida Salas et al. (2008). Esto en términos simples, implica que los parametros del modelo tiene una desviación debido a dicha estructura.
Estos efectos aleatorios se predicen al momento de ajustar el modelo de efectos mixtos (generalmente mediante el método de máxima verosimilitud). Es decir, se pueden conocer para los datos usados en el ajuste del modelo, sin embargo, si uno quisiera ocupar el modelo en el contexto de predicción (i.e., para observaciones no ocupadas en el ajuste del modelo), dicho efectos aleatorios no son conocidos. Mayores detalles teóricos y aplicados pueden ser revisados en Gregoire & Schabenberger (1996) y Pinheiro & Bates (2000).
Se ocupará la dataframe \({\tt orange2}\) del paquete \({\tt datana}\) del libro Análisis de datos con el programa estadístico R: una introducción aplicada de Salas-Eljatib (2021). Esta dataframe contiene mediciones de diámetro de árboles de diferentes especies.
> library(datana)
> library(nlme)
> data(dgorange2)
> df <- dgorange2
> head(df)
> df<-groupedData(dap~tiempo|arbol,data=df)
> plot(dap~tiempo, data=df)
Dado que los datos tiene una estructura temporal, es necesario realizar un gráfico de serie de tiempo, para lo cual Ud. puede emplear una función del autor para dichos fines. Para esto, debe bajar a su computador el siguiente archivo que contiene la función a emplear.
> source("timeSerPlot.R")
> timeSerPlot(df, y="dap", x="tiempo", obs.unit = "arbol")
Otra alternativa es realizando un gráfico de serie de tiempo como es explicado en el libro de Salas-Eljatib (2021), y detallado en el siguiente link, al emplear la librería \({\tt lattice}\), como sigue
> library(lattice)
Attaching package: 'lattice'
The following object is masked _by_ '.GlobalEnv':
parallel
> xyplot(dap ~ tiempo, group=arbol,
+ data=df, type="b")
Se empleará como modelo de referencia, o base, un modelo no lineal asintotico, expresado como
\[{y_{ij}}= {\alpha} \left(1-e^{-e^{(-\beta t_{ij})}}\right)+ \epsilon_{ij} \tag{1}\] donde \(y_{ij}\) y \(t_{ij}\) son el diámetro a la altura del pecho del \(i\)-ésimo árbol en la \(j\)-ésimo ocasión y la edad del \(i\)-ésimo árbol en la \(j\)-ésimo ocasión; \(\epsilon_{ij}\) es el error aleatorio que sigue una distribucion Gaussiana con valor esperado cero y varianza \(\sigma^2_\epsilon\); mientras que \(\alpha, \beta\) son parámetros a ser estimados.
Representaremos la funcion 1 en R mediante el objeto \({\tt asympOri}\)
> asympOri <- function (b0, b1, x) {
+ b0*(1-exp(-exp(-b1)*x))
+ }
16172. (2.62e+00): par = (70 6)
2487.8 (5.61e-01): par = (60.214 6.8102)
2292.6 (4.60e-01): par = (72.92 7.1722)
2120.2 (3.46e-01): par = (86.604 7.4173)
1975.3 (2.07e-01): par = (109.29 7.7115)
1894.3 (2.71e-03): par = (114.76 7.7262)
1894.3 (5.47e-06): par = (114.75 7.7254)
Formula: dap ~ asympOri(b0, b1, x = tiempo)
Parameters:
Estimate Std. Error t value Pr(>|t|)
b0 114.752 46.874 2.45 0.02
b1 7.725 0.543 14.22 1.2e-15
Residual standard error: 7.58 on 33 degrees of freedom
Number of iterations to convergence: 6
Achieved convergence tolerance: 5.47e-06
Emplearemos la función \(\tt{nlme()}\) del paquete \(\tt{nlme}\) Pinheiro et al. (2021)
> m1 <- nlme(dap ~ asympOri(b0, b1, x=tiempo), data=df,
+ fixed = b0+ b1 ~ 1, random = b0 ~ 1,
+ start = c(b0=70,b1=6) )
>
> summary(m1)
Nonlinear mixed-effects model fit by maximum likelihood
Model: dap ~ asympOri(b0, b1, x = tiempo)
Data: df
AIC BIC logLik
206.94 213.16 -99.472
Random effects:
Formula: b0 ~ 1 | arbol
b0 Residual
StdDev: 17.109 3.2564
Fixed effects: b0 + b1 ~ 1
Value Std.Error DF t-value p-value
b0 104.6 17.2556 29 6.062 0
b1 7.6 0.2025 29 37.525 0
Correlation:
b0
b1 0.886
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-2.277806 -0.564852 -0.010944 0.848158 1.485987
Number of Observations: 35
Number of Groups: 5
nlme
: Linear and nonlinear mixed effects
models. https://CRAN.R-project.org/package=nlme.