Книга Джона Фокса Компаньон R в прикладной регрессии является отличным источником информации о прикладном регрессионном моделировании R. Пакет, carкоторый я использую в этом ответе, является прилагаемым пакетом. Книга также имеет как веб-сайт с дополнительными главами.
Преобразование ответа (он же зависимая переменная, результат)
RlmboxCoxcarλfamily="yjPower"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
Это создает сюжет, подобный следующему:

Лучшая оценка λλ
Чтобы преобразовать вашу зависимую переменную сейчас, используйте функцию yjPowerиз carпакета:
depvar.transformed <- yjPower(my.dependent.variable, lambda)
В функции lambdaдолжно быть округленоλboxCox
Важное замечание: Вместо того, чтобы просто лог-преобразовать зависимую переменную, вы должны рассмотреть возможность установки GLM с лог-ссылкой. Вот некоторые ссылки, которые предоставляют дополнительную информацию: первый , второй , третий . Для этого Rиспользуйте glm:
glm.mod <- glm(y~x1+x2, family=gaussian(link="log"))
где yваша зависимая переменная и x1, и x2т.д. ваши независимые переменные.
Преобразования предикторов
Преобразования строго положительных предикторов могут быть оценены по максимальной вероятности после преобразования зависимой переменной. Для этого используйте функцию boxTidwellиз carпакета (оригинал см. Здесь ). Используйте его так: boxTidwell(y~x1+x2, other.x=~x3+x4). Здесь важно то, что эта опция other.xуказывает условия регрессии, которые не должны быть преобразованы. Это были бы все ваши категориальные переменные. Функция производит вывод следующего вида:
boxTidwell(prestige ~ income + education, other.x=~ type + poly(women, 2), data=Prestige)
Score Statistic p-value MLE of lambda
income -4.482406 0.0000074 -0.3476283
education 0.216991 0.8282154 1.2538274
incomeλincomeдоходn e w= 1 / доходо л г--------√
Еще один очень интересный пост на сайте о преобразовании независимых переменных это одна .
Недостатки преобразований
Хотя логически преобразованные зависимые и / или независимые переменные можно интерпретировать относительно легко , интерпретация других, более сложных преобразований менее интуитивна (по крайней мере, для меня). Как бы вы, например, интерпретировали коэффициенты регрессии после того, как зависимые переменные были преобразованы1 / у√λλ
Моделирование нелинейных отношений
Два довольно гибких метода для подбора нелинейных отношений - это дробные полиномы и сплайны . Эти три статьи предлагают очень хорошее введение в оба метода: первый , второй и третий . Существует также целая книга о дробных полиномах и R. В R пакетеmfp реализует MultiVariable дробных многочленов. (естественные кубические сплайны) и (кубические B-сплайны) из пакета (см.Эта презентация может быть информативной в отношении дробных полиномов. Для подгонки сплайнов вы можете использовать функцию gam(обобщенные аддитивные модели, см. Здесь отличное введение R) из пакетаmgcv или функцийnsbssplines здесь пример использования этих функций). Используя, gamвы можете указать, какие предикторы вы хотите использовать, используя сплайны, используя s()функцию:
my.gam <- gam(y~s(x1) + x2, family=gaussian())
здесь, x1будет соответствовать сплайну и x2линейно, как в обычной линейной регрессии. Внутри gamвы можете указать семейство рассылки и функцию связи, как в glm. Таким образом , чтобы соответствовать модели с функцией логарифмической связи, вы можете указать опцию family=gaussian(link="log")в gamкачестве в glm.
Посмотрите на этот пост с сайта.