Regressão Não-Linear

Introdução

\[Y_i=f(\mathbf{X}_i,\boldsymbol{\beta})+\varepsilon_i\]

em que \(\mathbf{X}_i\) é o vetor dos valores observados das variáveis preditoras para o \(i\)-ésimo caso:

\[\mathbf{X_i}_{p\times 1}=\left( \begin{array}{c} 1\\ X_{i,1}\\ \vdots\\ X_{i,p-1} \end{array} \right) \]

e \(\boldsymbol{\beta}\) o vetor de coeficientes.

No caso de regressão linear, temos que:

\[f(\mathbf{X}_i,\boldsymbol{\beta})=\mathbf{X_i}^T\boldsymbol{\beta}\]

Introdução

Regressão não-linear:

\[Y_i=f(\mathbf{X}_i,\boldsymbol{\gamma})+\varepsilon_i\]

Exemplos:

\[Y_i=\gamma_0\exp(\gamma_1X_i)+\varepsilon_i\]

\[Y_i=\gamma_0+\gamma_1\exp(\gamma_2X_i)+\varepsilon_i\]

\[Y_i=\frac{\gamma_0}{1+\gamma_1\exp(\gamma_2X_i)}+\varepsilon\]

Exemplo

\[E(Y)=100-50\exp(-2X)\]

Exemplo

\[E(Y)=\frac{10}{1+20\exp(-2X)}\]

Exemplo

\[E(Y)=100-50\exp(-2X)\]

Regressão Não-linear

No caso linear, o número de parâmetros é igual ao número de elementos em \(\mathbf{X}_i\), no caso não-linear não temos, necessariamente, esta relação.

\[Y_i=f(\mathbf{X}_i,\boldsymbol{\gamma})+\varepsilon_i\]

\[\mathbf{X_i}_{q\times 1}=\left( \begin{array}{c} X_{i,1}\\ \vdots\\ X_{i,q} \end{array} \right) \]

\[\boldsymbol{\gamma}_{p\times 1}=\left( \begin{array}{c} \gamma_0\\ \gamma_1\\ \vdots\\ \gamma_{p-1} \end{array} \right) \]

Exemplo - Pacientes

\(X\): dias de hospitalização

\(Y\): prognóstico

##     Y  X
## 1  54  2
## 2  50  5
## 3  45  7
## 4  37 10
## 5  35 14
## 6  25 19
## 7  20 26
## 8  16 31
## 9  18 34
## 10 13 38
## 11  8 45
## 12 11 52
## 13  8 53
## 14  4 60
## 15  6 65

Modelo proposto: \(Y_i=\gamma_0\exp(\gamma_1X_i)+\varepsilon_i\).

Exemplo - Pacientes

\(\hat{Y}_i=58.6065\exp(-0.03959X_i)+\varepsilon_i\).

Mínimos Quadrados

Relembrando, no modelo linear simples:

\[S=\sum_{i=1}^n\varepsilon_i^2 = \sum_{i=1}^n (Y_i-\beta_0-\beta_1X_i)^2\]

No modelo não-linear:

\[S=\sum_{i=1}^n[Y_i-f(\mathbf{X}_i,\boldsymbol{\gamma})]^2\]

Queremos minimizar \(S\) com relação a \(\gamma_0,\gamma_1,\ldots,\gamma_{p-1}\).

Mínimos Quadrados

\[\frac{\partial S}{\partial\gamma_k}=\sum_{i=1}^n-2[Y_i-f(\mathbf{X}_i,\boldsymbol{\gamma})]\left[\frac{\partial f(\mathbf{X}_i,\boldsymbol{\gamma})}{\partial\gamma_k}\right]\]

Igualando as \(p\) derivadas parciais a zero e substituindo os parâmetros \(\gamma_k\) pelas estimativas \(g_k\), temos as \(p\) equações normais:

\[\sum_{i=1}^nY_i\left[\frac{\partial f(\mathbf{X}_i,\boldsymbol{\gamma})}{\partial\gamma_k}\right]_{\boldsymbol{\gamma}=\mathbf{g}}-\sum_{i=1}^nf(\mathbf{X}_i,\mathbf{g})\left[\frac{\partial f(\mathbf{X}_i,\boldsymbol{\gamma})}{\partial\gamma_k}\right]_{\boldsymbol{\gamma}=\mathbf{g}}=0\quad k=0,1,\ldots,p-1\]

em que \(\mathbf{g}\) é o vetor de estimativas por mínimos quadrados:

\[\mathbf{g}_{p\times 1}=\left( \begin{array}{c} g_0\\ g_1\\ \vdots\\ g_{p-1} \end{array} \right) \]

Exemplo - Pacientes

\[Y_i=\gamma_0\exp(\gamma_1X_i)+\varepsilon_i\]

\[f(\mathbf{X}_i,\boldsymbol{\gamma})=\gamma_0\exp(\gamma_1X_i)\]

\[\frac{\partial f(\mathbf{X}_i,\boldsymbol{\gamma})}{\partial\gamma_0}=\exp(\gamma_1X_i)\]

\[\frac{\partial f(\mathbf{X}_i,\boldsymbol{\gamma})}{\partial\gamma_1}=\gamma_0X_i \exp(\gamma_1X_i)\]

Exemplo - Pacientes

Equações normais:

\[\sum_{i=1}^nY_i\left[\frac{\partial f(\mathbf{X}_i,\boldsymbol{\gamma})}{\partial\gamma_k}\right]_{\boldsymbol{\gamma}=\mathbf{g}}-\sum_{i=1}^nf(\mathbf{X}_i,\mathbf{g})\left[\frac{\partial f(\mathbf{X}_i,\boldsymbol{\gamma})}{\partial\gamma_k}\right]_{\boldsymbol{\gamma}=\mathbf{g}}=0\quad k=0,1\]

Temos:

\[\sum_{i=1}^nY_i\exp(g_1X_i)-\sum_{i=1}^ng_0\exp(g_1X_i)\exp(g_1X_i)=0\]

\[\sum_{i=1}^nY_ig_0X_i\exp(g_1X_i)-\sum_{i=1}^ng_0\exp(g_1X_i)g_0X_i\exp(g_1X_i)=0\]

Exemplo - Pacientes

Simplificando:

\[\sum_{i=1}^nY_i\exp(g_1X_i)-g_0\sum_{i=1}^n\exp(2g_1X_i)=0\]

\[\sum_{i=1}^nY_iX_i\exp(g_1X_i)-g_0\sum_{i=1}^nX_i\exp(2g_1X_i)=0\]

As equações normais não são lineares com relação a \(g_0\) e \(g_1\) e não possuem solução com forma fechada. Métodos numéricos devem ser empregados para obter a solução.

Exemplo - Pacientes

m <- nls(Y~gamma0*exp(gamma1*X),data=dados,start=list(gamma0=56.6646,gamma1=-0.03797))
summary(m)$coef
##          Estimate  Std. Error   t value     Pr(>|t|)
## gamma0 58.6065313 1.472159424  39.80991 5.699631e-15
## gamma1 -0.0395864 0.001711292 -23.13246 6.013445e-12

Exemplo - Pacientes

Exemplo - Pacientes

Para obter os valores iniciais, note que podemos linearizar:

\[\log_e\gamma_0[\exp(\gamma_1X_i)]=\log_e\gamma_0+\gamma_1X_1\]

\[Y^*_i=\beta_0+\beta_1X_i+\varepsilon_i\]

em que \(Y^*_i=\log_eY_i\), \(\beta_0=\log_e\gamma_0\) e \(\beta_1=\gamma_1\).

modeloL <- lm(log(Y) ~ X,data=dados)
summary(modeloL)$coef
##                Estimate  Std. Error   t value     Pr(>|t|)
## (Intercept)  4.03715887 0.084103145  48.00247 5.081672e-16
## X           -0.03797418 0.002284209 -16.62465 3.857871e-10

\(g_0^{(0)}=\exp(\hat{\beta}_0)=56.665\) e \(g_1^{(0)}=\hat{\beta}_1=-0.038\).

Leitura