У меня есть данные временного ряда, где измеряемая переменная представляет собой дискретные положительные целые числа (числа). Я хочу проверить, есть ли тенденция со временем (или нет). Независимая переменная (x) находится в диапазоне 0-500, а зависимая переменная (y) находится в диапазоне 0-8.
Я думал, что я отвечу на это, подгоняя регрессию формы, y = floor(a*x + b)
используя обычные наименьшие квадраты (OLS).
Как бы я сделал это с помощью R (или Python)? Существует ли существующий пакет для него, или мне лучше написать свой собственный алгоритм?
PS: я знаю, что это не идеальный метод, но мне нужно сделать относительно простой анализ, который я действительно могу понять - мой опыт - биология, а не математика. Я знаю, что нарушаю предположения об ошибке в измеряемой переменной и независимости измерений от времени.
источник
Ответы:
Вы можете вписать модель, которую вы указали, используя
nls
функцию (нелинейных наименьших квадратов)R
, но, как вы сказали, это нарушит многие из предположений и все же, вероятно, не будет иметь большого смысла (вы говорите, что прогнозируемый результат является случайным на шаге функция, а не целые значения вокруг плавно растущих отношений).Более распространенный способ подбора данных подсчета - это использование регрессии Пуассона с использованием
glm
функции in.R
Первый пример на странице справки - это регрессия Пуассона, хотя, если вы не очень хорошо знакомы со статистикой, лучше проконсультироваться со статистиком, чтобы убедиться, что что вы делаете вещи правильно.Если значение 8 является абсолютным максимумом (невозможно увидеть большее количество, а не только то, что вы видели), то вы можете рассмотреть вопрос о пропорциональной регрессии логистических шансов, есть несколько инструментов, чтобы сделать это в пакетах
R
, но вы действительно стоит привлечь статистика, если вы хотите это сделать.источник
Однако модель, которую вы предлагаете, может появиться, например, когда вы наблюдаете округленные данные: с обычными ошибками .
Я думаю, что интересно посмотреть, что можно с этим сделать. Обозначим через cdf стандартной нормальной переменной. Если , то с использованием знакомых компьютерных обозначений.F ϵ∼N(0,σ2)
Вы наблюдаете точки данных . Логарифмическая вероятность определяется как Это не идентично наименьших квадратов. Вы можете попытаться максимизировать это с помощью численного метода. Вот иллюстрация в R:(xi,yi)
В красном и синем цвете линии найдены путем численного максимизации этой вероятности и наименьших квадратов соответственно. Зеленая лестница - это для найденного по максимальному правдоподобию ... это говорит о том, что вы можете использовать наименьшие квадраты, вплоть до перевода на 0,5, и получить примерно такой же результат; или, что наименьшие квадраты хорошо соответствуют модели где - ближайшее целое число. Округленные данные встречаются так часто, что я уверен, что это известно и было тщательно изучено ...⌊ a x + b ⌋ a , b b Y i = [ a x i + b + ϵ i ] , [ x ] = ⌊ x + 0,5 ⌋ax+b ⌊ax+b⌋ a,b b
источник