Если у меня сильно искажены положительные данные, я часто беру логи. Но что мне делать с сильно искаженными неотрицательными данными, которые содержат нули? Я видел два использованных преобразования:
- который имеет аккуратную особенность, которая 0 отображается на 0.
- где c либо оценивается, либо устанавливается как очень небольшое положительное значение.
Есть ли другие подходы? Есть ли веские причины предпочитать один подход другим?
data-transformation
large-data
Роб Хиндман
источник
источник
Ответы:
Мне кажется, что наиболее подходящий выбор преобразования зависит от модели и контекста.
Точка '0' может возникать по нескольким различным причинам, каждая из которых может рассматриваться по-разному:
Я на самом деле не предлагаю ответ, так как подозреваю, что универсального, «правильного» преобразования нет, когда у вас есть нули.
источник
Никто не упомянул обратное преобразование гиперболического синуса. Поэтому для полноты я добавляю это сюда.
Это альтернатива преобразованиям Бокса-Кокса и определяется как где . Для любого значения ноль отображается на ноль. Существует также двухпараметрическая версия, допускающая сдвиг, так же, как и при двухпараметрическом преобразовании BC. Burbidge, Magee и Robb (1988) обсуждают трансформацию IHS, включая оценку .thetas ; > 0 & thetas ; & thetas ;
Преобразование IHS работает с данными, определенными на всей реальной линии, включая отрицательные значения и нули. Для больших значений он ведет себя как преобразование журнала, независимо от значения (кроме 0). Предельный случай как дает .θ θ → 0 f ( y , θ ) → yy θ θ→0 f(y,θ)→y
Мне кажется, что преобразование IHS должно быть лучше известно, чем оно есть.
источник
Полезный подход, когда переменная используется в качестве независимого фактора в регрессии, заключается в замене ее на две переменные: одна представляет собой двоичный индикатор того, является ли она нулевой, а другая представляет собой значение исходной переменной или ее повторное выражение, такой как его логарифм. Эта техника обсуждается в книге Хосмера и Лемешоу по логистической регрессии (и в других местах, я уверен). Усеченные вероятностные графики положительной части исходной переменной полезны для определения подходящего повторного выражения. (См. Анализ по адресу https://stats.stackexchange.com/a/30749/919 для примеров.)
Когда переменная является зависимой в линейной модели, цензурная регрессия (например, Tobit ) может быть полезна, снова устраняя необходимость производить начальный логарифм. Этот метод распространен среди эконометристов.
источник
Лог-преобразования со сдвигами являются частными случаями преобразований Бокса-Кокса :
Это расширенная форма для отрицательных значений, но также применимая к данным, содержащим нули. Бокс и Кокс (1964) представляют алгоритм для поиска подходящих значений для с максимальной вероятностью. Это дает вам окончательное преобразование.λ
Причина, по которой предпочтение отдается преобразованиям Бокса-Кокса, заключается в том, что они разработаны для обеспечения допущений для линейной модели. Была проделана определенная работа, чтобы показать, что даже если ваши данные не могут быть преобразованы в нормальное состояние, то оценочное значение все равно приведет к симметричному распределению.λ
Я не уверен, насколько хорошо это обращается к вашим данным, так как это может быть тот который является просто преобразованием журнала, которое вы упомянули, но, возможно, стоит оценить требуемые , чтобы увидеть, если другой преобразование уместно.λλ=(0,1) λ
В R
boxcox.fit
функция в пакетеgeoR
вычислит параметры для вас.источник
lambda2=TRUE
в аргументахboxcox.fit
. (Также обновленный ответ.)boxcoxfit
.Я предполагаю, что ноль! = Пропущенные данные, так как это совершенно другой вопрос.
Размышляя о том, как обращаться с нулями в множественной линейной регрессии, я склонен учитывать, сколько нулей у нас на самом деле?
Только пара нулей
Если у меня достаточно одного нуля в достаточно большом наборе данных, я склонен:
Меняется ли модель? Как насчет значений параметров? Если модель достаточно устойчива к удалению точки, я пойду на быстрый и грязный подход добавления .c
Вы можете сделать эту процедуру немного менее грубой и использовать метод boxcox со сдвигами, описанными в ответе ars.
Большое количество нулей
Если мой набор данных содержит большое количество нулей, то это говорит о том, что простая линейная регрессия не лучший инструмент для работы. Вместо этого я бы использовал что-то вроде смешанного моделирования (как предложили Срикант и Робин).
источник
Если вы хотите что-то быстрое и грязное, почему бы не использовать квадратный корень?
источник
Я предполагаю, что у вас есть непрерывные данные.
Если данные содержат нули, это означает, что у вас есть всплеск нуля, который может быть связан с каким-то конкретным аспектом ваших данных. Это проявляется, например, в энергии ветра: ветер ниже 2 м / с генерирует нулевую мощность (это называется включением), а ветер свыше (что-то вокруг) 25 м / с также производит нулевую мощность (по соображениям безопасности это называется отключением) , В то время как распределение производимой энергии ветра кажется непрерывным, наблюдается всплеск нуля.
Мое решение: в этом случае я предлагаю обрабатывать нули отдельно, работая со смесью спайка в нуле и модели, которую вы планировали использовать для непрерывной части распределения (с Лебегом).
источник
Сравнение ответа, предоставленного @RobHyndman, с преобразованием log-plus-one, расширенным до отрицательных значений, с формой:
источник
Так как было предложено двухпараметрическое согласование Box-Cox, вот некоторые R, чтобы подогнать входные данные, запустить произвольную функцию для них (например, прогнозирование временных рядов), а затем вернуть инвертированный вывод:
источник
Предположим, Y - это сумма денег, которую каждый американец тратит на новый автомобиль в течение определенного года (общая цена покупки). Y будет всплывать в 0; не будет иметь значений от 0 до 12000; и будет принимать другие ценности в основном в подростковом возрасте, двадцатых и тридцатых тысячах. Предикторы будут прокси для уровня потребности и / или заинтересованности в совершении такой покупки. Потребность или интерес вряд ли можно назвать нулевыми для лиц, которые не делали покупки; в этих масштабах непокупатели были бы намного ближе к покупателям, чем Y или даже журнал Y предложил бы. В случае, похожем на этот, но в сфере здравоохранения, я обнаружил, что наиболее точные прогнозы, судя по перекрестной проверке наборов тестов / наборов тренировок, были получены в порядке возрастания:
Некоторые отшатнутся при этой категоризации непрерывной зависимой переменной. Но хотя это и приносит в жертву некоторую информацию, классификация, кажется, помогает, восстанавливая важный базовый аспект ситуации - опять же, что «нули» намного больше похожи на остальные, чем указывал бы Y.
источник
Обсуждаемое здесь преобразование мощности Йео-Джонсона обладает превосходными свойствами, разработанными для обработки нулей и негативов, в то же время опираясь на сильные стороны преобразования мощности Бокс-Кокса. Это то, к чему я обычно обращаюсь, когда имею дело с нулями или отрицательными данными.
Вот краткое изложение преобразований с плюсами / минусами, чтобы проиллюстрировать, почему Йео-Джонсон предпочтительнее.
Журнал
Плюсы: хорошо с положительными данными.
Минусы: не обрабатывает нули.
Log Plus 1
Плюсы: смещение плюс 1 добавляет возможность обработки нулей в дополнение к положительным данным.
Минусы: не с отрицательными данными
Квадратный корень
Плюсы: использует преобразование мощности, которое может обрабатывать нули и положительные данные.
Минусы: не с отрицательными данными
Box Cox
Код R:
Плюсы: позволяет масштабные преобразования мощности
Минусы: страдает от проблем с нулями и негативами (то есть может обрабатывать только положительные данные.
Йео Джонсон
Код R:
Плюсы: может обрабатывать положительные, нулевые и отрицательные данные.
Минусы: ни о чем я не могу думать. Свойства очень похожи на Box-Cox, но могут обрабатывать ноль и отрицательные данные.
источник
Чтобы прояснить, как обращаться с нулевым логарифмом в регрессионных моделях, мы написали педагогическую статью, объясняющую лучшее решение и распространенные ошибки, которые люди делают на практике. Мы также разработали новое решение для решения этой проблемы.
Вы можете найти документ, нажав здесь: https://ssrn.com/abstract=3444996
В нашей статье мы фактически приводим пример, в котором добавление очень маленьких констант фактически обеспечивает наивысшее смещение. Мы предоставляем производное выражение предвзятости.
На самом деле, пуассоновское псевдо максимальное правдоподобие (PPML) можно рассматривать как хорошее решение этой проблемы. Нужно рассмотреть следующий процесс:
Мы показываем, что эта оценка объективна и что ее можно просто оценить с помощью GMM с помощью любого стандартного статистического программного обеспечения. Например, это можно оценить, выполнив только одну строку кода со Stata.
Мы надеемся, что эта статья поможет, и мы хотели бы получить от вас обратную связь.
Кристоф Беллего и Луи-Даниэль Папе КРЕСТ - Политехническая школа - ENSAE
источник