Я пытаюсь выполнить множественную регрессию в R
. Однако моя зависимая переменная имеет следующий график:
Вот матрица диаграммы рассеяния со всеми моими переменными ( WAR
это зависимая переменная):
Я знаю, что мне нужно выполнить преобразование для этой переменной (и, возможно, независимых переменных?), Но я не уверен в том, какое именно преобразование требуется. Может ли кто-нибудь указать мне правильное направление? Я рад предоставить любую дополнительную информацию о взаимосвязи между независимыми и зависимыми переменными.
Диагностические графики из моей регрессии выглядят следующим образом:
РЕДАКТИРОВАТЬ
После преобразования зависимых и независимых переменных с использованием преобразований Йео-Джонсона диагностические графики выглядят следующим образом:
Если я использую GLM с лог-ссылкой, диагностические графики:
R
с помощью команды,pairs(my.data, lower.panel = panel.smooth)
гдеmy.data
будет ваш набор данных.lm
boxcox(my.lm.model)
MASS
Ответы:
Книга Джона Фокса Компаньон R в прикладной регрессии является отличным источником информации о прикладном регрессионном моделировании
R
. Пакет,car
который я использую в этом ответе, является прилагаемым пакетом. Книга также имеет как веб-сайт с дополнительными главами.Преобразование ответа (он же зависимая переменная, результат)
R
lm
boxCox
car
family="yjPower"
Это создает сюжет, подобный следующему:
Лучшая оценкаλ λ
Чтобы преобразовать вашу зависимую переменную сейчас, используйте функцию
yjPower
изcar
пакета:В функцииλ
lambda
должно быть округленоboxCox
Важное замечание: Вместо того, чтобы просто лог-преобразовать зависимую переменную, вы должны рассмотреть возможность установки GLM с лог-ссылкой. Вот некоторые ссылки, которые предоставляют дополнительную информацию: первый , второй , третий . Для этого
R
используйтеglm
:где
y
ваша зависимая переменная иx1
, иx2
т.д. ваши независимые переменные.Преобразования предикторов
Преобразования строго положительных предикторов могут быть оценены по максимальной вероятности после преобразования зависимой переменной. Для этого используйте функцию
boxTidwell
изcar
пакета (оригинал см. Здесь ). Используйте его так:boxTidwell(y~x1+x2, other.x=~x3+x4)
. Здесь важно то, что эта опцияother.x
указывает условия регрессии, которые не должны быть преобразованы. Это были бы все ваши категориальные переменные. Функция производит вывод следующего вида:income
income
Еще один очень интересный пост на сайте о преобразовании независимых переменных это одна .
Недостатки преобразований
Хотя логически преобразованные зависимые и / или независимые переменные можно интерпретировать относительно легко , интерпретация других, более сложных преобразований менее интуитивна (по крайней мере, для меня). Как бы вы, например, интерпретировали коэффициенты регрессии после того, как зависимые переменные были преобразованы1 / у√ λ λ
Моделирование нелинейных отношений
Два довольно гибких метода для подбора нелинейных отношений - это дробные полиномы и сплайны . Эти три статьи предлагают очень хорошее введение в оба метода: первый , второй и третий . Существует также целая книга о дробных полиномах и
R
. ВR
пакетеmfp
реализует MultiVariable дробных многочленов. (естественные кубические сплайны) и (кубические B-сплайны) из пакета (см.Эта презентация может быть информативной в отношении дробных полиномов. Для подгонки сплайнов вы можете использовать функциюgam
(обобщенные аддитивные модели, см. Здесь отличное введениеR
) из пакетаmgcv
или функцийns
bs
splines
здесь пример использования этих функций). Используя,gam
вы можете указать, какие предикторы вы хотите использовать, используя сплайны, используяs()
функцию:здесь,
x1
будет соответствовать сплайну иx2
линейно, как в обычной линейной регрессии. Внутриgam
вы можете указать семейство рассылки и функцию связи, как вglm
. Таким образом , чтобы соответствовать модели с функцией логарифмической связи, вы можете указать опциюfamily=gaussian(link="log")
вgam
качестве вglm
.Посмотрите на этот пост с сайта.
источник
mgcv
пакетом иgam
. Если это не поможет, я в своем уме, боюсь. Здесь есть люди, которые гораздо опытнее меня, и, возможно, они могут дать вам дальнейший совет. Я также не разбираюсь в бейсболе. Может быть, есть более логичная модель, которая имеет смысл с этими данными.Вы должны рассказать нам больше о характере вашей ответной (исходной, зависимой) переменной. С вашего первого сюжета это сильно положительный перекос со многими значениями около нуля и некоторыми отрицательными. Исходя из этого, возможно, но не неизбежно, что преобразование поможет вам, но самый важный вопрос заключается в том, приблизит ли преобразование ваши данные к линейным отношениям.
Обратите внимание, что отрицательные значения для отклика исключают прямое логарифмическое преобразование, но не логарифм (отклик + константа) и не обобщенную линейную модель с логарифмической связью.
На этом сайте есть много ответов, посвященных обсуждению журнала (отклик + константа), который разделяет статистиков: некоторым людям не нравится, что он является специальным, и с ним трудно работать, в то время как другие считают его законным устройством.
GLM со ссылкой на журнал все еще возможен.
В качестве альтернативы может оказаться, что ваша модель отражает некий смешанный процесс, и в этом случае хорошей идеей будет индивидуальная модель, более точно отражающая процесс генерации данных.
(ПОЗЖЕ)
OP имеет зависимую переменную WAR со значениями в диапазоне примерно от 100 до -2. Чтобы преодолеть проблемы с получением логарифмов нулевых или отрицательных значений, OP предлагает помадку нулей и отрицательных значений до 0,000001. Теперь в логарифмическом масштабе (основание 10) эти значения варьируются от 2 (100 или около того) до -6 (0,000001). Меньшая часть вымышленных точек в логарифмическом масштабе - теперь меньшинство массивных выбросов. Сюжет log_10 (выдуманная WAR) против всего остального, чтобы увидеть это.
источник