gamlss Ошибка в while (abs (G.dev.old - G.dev)> c.crit && iter <n.cyc) - PullRequest
0 голосов
/ 23 мая 2018

Я работал с этими данными

year rango_edad Sexo zona_2016 conteo siniestros expuestos upc_millon valor_millon freq 1 2010 01. < 1 F Alejada 180 87 75 121 111 0.48 2 2010 01. < 1 F Ciudades 103453 76219 40228 60755 84981 0.74 3 2010 01. < 1 F Especial 5129 3194 2078 3289 3013 0.62 4 2010 01. < 1 F Normal 27393 18436 10735 15656 16692 0.67 5 2010 01. < 1 M Alejada 185 98 73 116 110 0.53 6 2010 01. < 1 M Ciudades 106915 80731 41719 62991 105135 0.76 costo.medio ratio 1 1.27 0.92 2 1.11 1.40 3 0.94 0.92 4 0.91 1.07 5 1.12 0.94 6 1.30 1.67 , и я пытаюсь смоделировать частоту с помощью gamlss

gamlss(freq~Sexo+zona_2016+rango_edad,family=PO(mu.link = "log"),data=na.omit(subset(datos,is.na(freq)==FALSE ))) gamlss(freq~Sexo+zona_2016+rango_edad,family=NBI(mu.link = "log"),data=na.omit(subset(datos,is.na(freq)==FALSE )))

, ноЯ получил это сообщение об ошибке

Error in while (abs(G.dev.old - G.dev) > c.crit && iter < n.cyc) { : missing value where TRUE/FALSE needed

как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 21 июня 2018

Переменная ответа НЕ является счетчиком, а частотой со значениями от 0 до 1. Подходящей моделью для этой переменной отклика (цели) является бета-распределение.Пожалуйста, попробуйте семья = BE.

0 голосов
/ 21 июня 2018

Я получил похожую ошибку, и, вероятно, она вызвана использованием дробных значений ответа.Например, в приведенном ниже коде случай 1 хорош, но случаи 2-4 не выполняются:

resp1 <- rep(1, 6)
trt <- c("A", "A", "A", "B", "B", "B")
ftd1 <- gamlss(resp1 ~ trt, family = PO(mu.link = "log"))
resp2 <- rep(0.0001, 6)
ftd2 <- gamlss(resp2 ~ trt, family = PO(mu.link = "log"))
resp3 <- resp1
resp3[6] <- 0.0001
ftd3 <- gamlss(resp3 ~ trt, family = PO(mu.link = "log"))
resp4 <- resp1
resp4[6] <- 1.75
ftd4 <- gamlss(resp4 ~ trt, family = PO(mu.link = "log"))

Чтобы ответить на ваш вопрос напрямую, используйте glm () или glm2 (), пока разработчики gamlss не исправят это (я отправил ихссылка на этот пост).Однако, как указывалось в другом ответе, если ваш ответ пропорционален 0 и 1, не имеет смысла в первую очередь подходить Пуассону.

...