Интересно, может ли кто-нибудь здесь помочь мне.Пропорциональное моделирование - ошибки Betareg
Я пытаюсь соответствовать бета GLM с betareg
пакета, так как моей зависимой переменной является доля (относительная плотность китов в 500m размер сетки) колеблется от 0 до 1. У меня есть три ковариат:
- Глубина (измеряется в метрах от 4 до 100 м),
- Расстояние до побережья (измеряется в метрах от 0 до 21346 м) и
- Расстояние до лодок (измеряется в метрах от 0 до 20621).
Моя зависимая переменная имеет много 0 и много значений, которые слишком близки к 0 (как в 7.8e-014
). Когда я пытаюсь подобрать модель следующая ошибка показывает:
invalid dependent variable, all observations must be in (0, 1).
Из того, что я смотрел из предыдущих обсуждений, кажется, это вызвано моим 0s в наборе данных (не должно быть никаких 0s или 1s). Когда я изменить все мои 0 только положительно определенной (например 0.0000000000000001) сообщение об ошибке я получаю:
Error in chol.default(K) :
the leading minor of order 2 is not positive definite
In addition: Warning messages:
1: In digamma(mu * phi) : NaNs produced
2: In digamma(phi) : NaNs produced
Error in chol.default(K) :
the leading minor of order 2 is not positive definite
In addition: Warning messages:
1: In betareg.fit(X, Y, Z, weights, offset, link, link.phi, type, control) :
failed to invert the information matrix: iteration stopped prematurely
2: In digamma(mu * phi) : NaNs produced
Из того, что я видел на нескольких форумах, кажется, это происходит потому, что моя матрица не является положительно определенной. Он может быть либо неопределенным (т. Е. Иметь как положительные, так и отрицательные собственные значения), или моя матрица может быть близка к сингулярной, т. Е. Наименьшее собственное значение очень близко к 0 (и, следовательно, вычислительно оно равно 0).
Мой вопрос: так как у меня есть только этот набор данных, есть ли способ решить эти проблемы и запустить бета-регрессию? Или, есть ли какая-нибудь другая модель, которую я мог бы использовать вместо пакета betareg, который мог бы работать?
Вот мой код:
betareg(Density~DEPTH+DISTANCE_TO_COAST+DIST_BOAT,data=misti)
трудно сказать, не воспроизводимый пример, но я хотел бы попробовать (1) добавление большого смещения ваших 0 значений, чтобы убедиться, вы находитесь далеко от границы (например, 1e-6); (2) масштабирование и центрирование ваших переменных-предикторов. Работают ли однократные бета-регрессии (например, «betareg (Density-DEPTH, data = misti)»? В конечном итоге вам придется учитывать нулевую инфляцию. –