2015-01-13 4 views
0

Я пытаюсь подобрать модель логистического роста в R, используя gnls в пакете nlme.Устранение симметрии в модели gnls

Я ранее успешно подобрать модель:

mod1 <- gnls(Weight ~ I(A/(1+exp(b + v0*Age + v1*Sum.T))), 
         data = df, 
         start = c(A= 13.157132, b= 3, v0= 0.16, v1= -0.0059), 
         na.action=na.omit) 

Однако, теперь я хочу, чтобы ограничить b так, чтобы она не установлена ​​на модели, поэтому попытался фитинг второй модели:

mod2 <- gnls(Weight ~ I(A/(1+exp(log((A/1.022)-1) + v0*Age + v1*Sum.T))), 
         data = df, 
         start = c(A= 13.157132, v0= 0.16, v1= -0.0059), 
         na.action=na.omit) 

Эта модель вернула ошибку:

Error in gnls(Weight ~ A/(1 + exp(log((A/1.022) - 1) + v0 * Age + : 
approximate covariance matrix for parameter estimates not of full rank 

Warning messages: 
1: In log((A/1.022) - 1) : NaNs produced 

Поиск в sugg ошибки что проблема вызвана симметрией в модели, а решения конкретных вопросов связаны с адаптацией формулы с разными параметрами. К сожалению, мои статистические знания недостаточно хороши для того, чтобы: a) полностью понять проблему или b) самостоятельно адаптировать формулу.

Что касается предупреждающих сообщений (всего было 15, все равно) Я не понимаю, почему они возникают, потому что этот раздел модели работает один (с номерами примеров).

Любая помощь по любому из этих вопросов будет принята с благодарностью.

ответ

0

Для пользователей может быть информативным знать, что я, наконец, решил это с помощью того, что оказалось простым решением (с помощью друга).

С exp(a+b) = exp(a)*exp(b), уравнение можно переписать:

Weight ~ I(A/(1+((A/1.022)-1) * exp(v0*Age + v1*Sum.T)) 

который подходит без каких-либо проблем. В общем, написать уравнение в другой форме, казалось бы, было бы ответом.