Size: a a a

R (язык программирования)

2021 May 16

ЕТ

Евгений Томилов... in R (язык программирования)
Могут быть пропущенные в переменной.
источник

DK

Dm Kb in R (язык программирования)
Используйте параметр функции na.rm = TRUE
источник

AB

Alexander Botvin in R (язык программирования)
Давно, и не очень успешно, ищу для себя ответ на следующий вопрос - какое распределение лучше аппроксимирует отклик, который представлен, как отношение факта чего-либо, к плану чего-либо, к примеру, это может быть KPI. Это, в свою очередь, нужно для выбора адекватной функции связи в GLM. Первое, что приходит в голову - биномиальное распределение, но особенность в том, что факт может быть больше плана и соответственно отношение может быть больше 1.
источник

АЧ

Артем Черемухин... in R (язык программирования)
А у вас теоретический вопрос или есть какие-то практические данные?
источник

AB

Alexander Botvin in R (язык программирования)
Это вопрос из практики, с которым время от времени приходится сталкиваться, когда заказчик приходит именно с такой зависимой переменной и вопросом с чем она связана. Вопрос, конечно решается каждый раз, по-разному, можно все свести к эффективно/неэффективно и решать задачу биномиальной регрессии, можно забить на план и искать связь только с фактом, если он счетный, то решаем пуассоновской регрессией, можно даже поколотить это отношение логарифмированием или Боксом-Коксом и использовать обычную регрессию. Но вопрос именно в эффективности подходов, мне просто правда ничего не попадается, как принято и работать в таком случае, а по теме вроде немало материалов знаю 😂
источник

АЧ

Артем Черемухин... in R (язык программирования)
Просто первый вопрос по этой задаче - знаменатель дроби (KPI) является фиксированным числом или меняющимся? Если фиксированное число (не случайное), то задача сводится к нахождению распределения числителя, то есть распределения факта. А вот если еще и знаменатель меняется, то нужно знать его распределение, и искомое распределение считается как частное двух случайных величин. Теоретически это делается, но там интегралы могут получаться несчитаемые. Все зависит от конкретных данных.
источник

АЧ

Артем Черемухин... in R (язык программирования)
И я еще не уловил - а почему вы говорите про биноминальное распределение? Это же дискретное распределение, а по вашей постановке задачи это точно непрерывное распределение, к тому же с тяжелым правым хвостом. Самый простой пример - экспоненциальное.
источник

AB

Alexander Botvin in R (язык программирования)
Я много примеров видел, когда биномиальное распределение используется в задачах прогноза доли чего-либо, но поскольку там область определения от 0 до 1, в моём случае это не совсем подходит.
Тут правда для ясности надо добавить, что я про фреймворк GLM, биномиальное распределение и логистическую функцию связи говорю
источник

АЧ

Артем Черемухин... in R (язык программирования)
Я понял. Но меня смущает именно постановка задачи. По мне так, вы должны просто по-другому ее формулировать. Не уходите в GLM, тут обычная регрессия должна спокойно работать.
источник

АЧ

Артем Черемухин... in R (язык программирования)
В крайнем случае, если распределение сумасшедшее, то можно квантильную регрессию попробовать.
источник

AB

Alexander Botvin in R (язык программирования)
То есть, вариант с тем, что лучше зависимую переменную сделать к нормальному распределению и работать с нем как есть?
источник

АЧ

Артем Черемухин... in R (язык программирования)
Я бы сказал, что сначала на распределение зависимой переменной (и независимых тоже) надо посмотреть. Вполне возможно, все получится вообще без каких-либо докруток. Может, потребуется и какая-то процедура нормализации
источник

AB

Alexander Botvin in R (язык программирования)
Так-то да, но в практике ни разу не встретил нормального распределения на этих данных. От чего и есть мой вопрос, всё же как эффетиквнее 😂
источник

DK

Dm Kb in R (язык программирования)
формально ваши остатки в таком случае не будут иметь нормальное распределение, но может это и не так важно
источник

АЧ

Артем Черемухин... in R (язык программирования)
Оно и не должно быть нормальным. Скорее всего - что-то типа экспоненциального. Тогда, если уж совсем формально подходить, да, нужно что-то типа квантильной регрессии. Вот что про нее писал Демешев https://bdemeshev.github.io/r_cycle/cycle_files/07_quant_reg.html
источник

AB

Alexander Botvin in R (язык программирования)
Вот это круто, спасибо! 👌
источник

АЧ

Артем Черемухин... in R (язык программирования)
Почему? Не факт. Если у вас есть модель y = 2x+5+ошибка, то если х распределен как-нибудь дико, то и у будет распределен так же дико. А ошибки вполне себе могут иметь нормальное распределение.
источник

DK

Dm Kb in R (язык программирования)
может вам попробывать различные функции связи? а распределение использовать какое-то более общее типа упоминавшегося экспоненциального
источник

DK

Dm Kb in R (язык программирования)
если сделать трансформацию, например logit и потом накинуть регрессию у которой нормальные остатки, то при обратном преобразовании нормальных остатков не будет ...
источник

АЧ

Артем Черемухин... in R (язык программирования)
Да, они точно будут ненормальными и возможны всякие забавности при прогнозировании, это точно. Ну или не делать трансформацию, а просто попробовать другие методы оценки коэффициентов - метод максимального правдоподобия, например.
источник