Как объявить экспоненциальное распределение в gam() в mgcv в R

У меня есть небольшой набор данных, полученный в результате эксперимента, и я хочу подобрать модель, описывающую распределение Y как экспоненциальное со скоростью 0,5.

Мои данные:

x1              x2      y
-1.000000   -1.000000   40
1.000000    -1.000000   5
-1.000000   1.000000    14
1.000000    1.000000    10
-1.414214   0.000000    35
1.414214    0.000000    7
0.000000    -1.414214   18
0.000000    1.414214    9
0.000000    0.000000    7
0.000000    0.000000    4
0.000000    0.000000    0
0.000000    0.000000    2

Я пробовал другой способ передать функции gam тип распределения, но я всегда сталкиваюсь с исключением. Например,

model.gam = gam(y ~ x1 * x2, family = exponential(rate=0.5), data = df)
Error in gam(y ~ x1 * x2, family = exponential(rate = 0.5), data = df): family not recognized

model.gam = gam(y ~ x1 * x2, family = exponential(), data = df)
Error in check_dims(rate, target_dim = dim): argument "rate" is missing, with no default

model.gam = gam(y ~ x1 * x2, family = exponential(), data = df, rate = 0.5)
Error in check_dims(rate, target_dim = dim): argument "rate" is missing, with no default

Ваш совет будет оценен.

1 ответ

Решение

Я не думаю, что gam() поддерживает этот тип семьи.

Возможно, вы захотите рассмотреть gamlss() из пакета gamlss вместо этого вместе с дистрибутивом EXP из пакета gamlss.dist:

https://www.rdocumentation.org/packages/gamlss/versions/5.0-6/topics/gamlss

https://www.rdocumentation.org/packages/gamlss.dist/versions/5.0-4/topics/EXP

Обратите внимание, что распределение EXP имеет средний, а не показатель скорости.

См. http://www.gamlss.com/ для получения подробной информации о пакете gamlss.

Кроме того, для такого небольшого набора данных, я сомневаюсь, что вы можете использовать термин взаимодействия в вашей модели - даже подгонка двух основных эффектов может быть немного натянутой.

Другие вопросы по тегам