Структура функции SSasym () в статистике - PullRequest
1 голос
/ 19 июня 2019

Я использую SSasym () для создания подгонок для данных за несколько лет. Это все экспоненциальный распад данных о смертности населения. Если я использую предикат () для функции nls, созданной с помощью SSasym (), какова структура уравнения, используемого для генерации этих значений?

некоторые примеры данных:

df = data.frame(value = c(8.96, 6.32, 6.10, 5.85, 5.75, 5.41, 5.91, 5.83, 5.21, 4.84, 5.80, 5.72, 5.58, 5.30, 4.53),
                x = c(5,6,6,7,7,8,9,10,11,12,13,14,15,16,17)

nlsfit = nls(value ~ SSasymp(x, Asym, R0, lrc), data = df)
plot(predict(nlsfit)~df$x, type ='l')

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

1 Ответ

1 голос
/ 20 июня 2019

Это объясняется в ?SSasymp. Выражение: Asym + (R0-Asym)*exp(-exp(lrc)*x).

df <- data.frame(
  value = c(8.96, 6.32, 6.10, 5.85, 5.75, 5.41, 5.91, 5.83, 5.21, 4.84, 5.80, 5.72, 5.58, 5.30, 4.53),
  x = c(5,6,6,7,7,8,9,10,11,12,13,14,15,16,17))

nlsfit <- nls(value ~ SSasymp(x, Asym, R0, lrc), data = df)

coefs <- coef(nlsfit)
Asym <- coefs["Asym"]
R0 <- coefs["R0"]
lrc <- coefs["lrc"]

Asym + (R0-Asym)*exp(-exp(lrc)*df$x)
# [1] 8.935511 6.300831 6.300831 5.641607 5.641607 5.476663 5.435392 5.425066
# [9] 5.422482 5.421836 5.421674 5.421634 5.421624 5.421621 5.421620
predict(nlsfit)
# [1] 8.935511 6.300831 6.300831 5.641607 5.641607 5.476663 5.435392 5.425066
# [9] 5.422482 5.421836 5.421674 5.421634 5.421624 5.421621 5.421620
...