Подгонка разных частей данных к разным моделям в R - PullRequest
2 голосов
/ 17 марта 2020

У меня был личный проект с домашним животным, в котором он пытался разобраться в старой диссертации моего отца 1972 года и воспроизвести найденное им вычислительное решение. Его проект был направлен на изучение кинетики переходного состояния глиноземной керамики. После сбора данных он вывел следующую модель для кривой перехода кинети c (см. Прикрепленное изображение из своей диссертации).

Modified Johnson's equation

Если изображение не отображается, данные формируются в виде кривой. Слева от точки перегиба t * данные соответствуют уравнению

y = A * exp(K*t)

Справа от точки перегиба данные соответствуют уравнению

y = 1 - B * exp(-J * t^n)

Он записал фортран программа, использующая Fortran 68, которая выполняет динамическое моделирование c и наименьшие квадраты, соответствующие этому Я пытаюсь «обновить» его код, чтобы посмотреть, смогу ли я сделать это более эффективно в R. Итак, два вопроса:

  1. Как лучше всего построить его модель? т.е. как построить два уравнения таким образом. Мне кажется, что я мог бы сделать это грубой силой с основанием R, но я не уверен, что он будет плавно переходить между двумя уравнениями.
  2. В его модели коэффициенты A, K, B, J и n а также точка перегиба t * неизвестны и оптимизируются методом наименьших квадратов. Он делает свое моделирование в Фортране грубой силой. Есть ли в Rl glm или подобное решение для элегантного решения?

Вот пример данных, которые он сгенерировал:

y <- c(20,30,40,50,55,60,65,70,80,90,100,110,120,150)
t <- c(0.05,0.11,0.185,0.31,0.375,0.445,0.52,0.63,0.8,0.92,0.97,0.98,0.99,0.999)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...