Surpreendentemente, não consegui encontrar uma resposta para a seguinte pergunta usando o Google:
Eu tenho alguns dados biológicos de vários indivíduos que mostram um comportamento de crescimento aproximadamente sigmóide com o tempo. Assim, desejo modelá-lo usando um crescimento logístico padrão
P(t) = k*p0*exp(r*t) / (k+p0*(exp(r*t)-1))
com p0 sendo o valor inicial em t = 0, k sendo o limite assintótico em t-> infinito er sendo a velocidade de crescimento. Tanto quanto eu posso ver, posso modelar isso facilmente usando nls (falta de entendimento da minha parte: por que não posso modelar algo semelhante usando a regressão de logit padrão ao escalonar tempo e dados? EDIT: Obrigado Nick, aparentemente as pessoas fazem, por proporções, mas raramente http://www.stata-journal.com/article.html?article=st0147 A próxima pergunta sobre essa tangente seria se o modelo pode lidar com valores extremos> 1).
Agora, desejo permitir alguns efeitos fixos (principalmente categóricos) e aleatórios (um ID individual e possivelmente também um ID de estudo) nos três parâmetros k, p0 e r. O nlme é a melhor maneira de fazer isso? O modelo SSlogis parece sensato para o que estou tentando fazer, está correto? Um dos seguintes é um modelo sensato para começar? Parece que não consigo acertar os valores iniciais e update () parece funcionar apenas para efeitos aleatórios, não fixos - alguma dica?
nlme(y ~ k*p0*exp(r*t) / (k+p0*(exp(r*t)-1)), ## not working at all (bad numerical properties?)
data = data,
fixed = k + p0 + r ~ var1 + var2,
random = k + p0 + r ~ 1|UID,
start = c(p0=1, k=100, r=1))
nlme(y ~ SSlogis(t, Asym, xmid, scal), ## not working, as start= is inappropriate
data = data,
fixed = Asym + xmid + scal ~ var1 + var2, ## works fine with ~ 1
random = Asym + xmid + scal ~ 1|UID,
start = getInitial(y ~ SSlogis(Dauer, Asym, xmid, scal), data = data))
Como sou novo nos modelos mistos não lineares em particular e não lineares em geral, gostaria de receber algumas recomendações de leitura ou links para tutoriais / FAQs com perguntas para iniciantes.
fonte
Respostas:
Eu queria compartilhar algumas das coisas que aprendi desde que fiz essa pergunta. O nlme parece uma maneira razoável de modelar efeitos mistos não lineares em R. Comece com um modelo básico simples:
Em seguida, use a atualização para aumentar a complexidade do modelo. O parâmetro de início é um pouco complicado de trabalhar, pode levar alguns ajustes para descobrir a ordem. Observe como o novo efeito fixo para var1 no Asym segue o efeito fixo regular do Asym.
O lme4 parecia mais robusto contra os outliers no meu conjunto de dados e parecia oferecer uma convergência mais confiável para os modelos mais complexos. No entanto, parece que o lado negativo é que as funções de probabilidade relevantes precisam ser especificadas manualmente. A seguir, é apresentado o modelo de crescimento logístico com um efeito fixo de var1 (binário) no Asym. Você pode adicionar efeitos fixos no xmid e scal de maneira semelhante. Observe a maneira estranha de especificar o modelo usando uma fórmula dupla como resultado - efeitos fixos - efeitos aleatórios.
fonte