Книга Джона Фокса « Супутник R прикладній регресії» є чудовим ресурсом для моделювання прикладної регресії R. Пакет, carякий я використовую протягом цієї відповіді, - це супровідний пакет. У книзі також є веб-сайт із додатковими розділами.
Трансформація відповіді (він же залежить від змінної, результат)
Перетворення Box-Cox пропонують можливий спосіб вибору трансформації відповіді. Після встановлення вашої моделі регресії, що містить неперетворені змінні, з Rфункцією lm, ви можете використовувати функцію boxCoxз carпакету для оцінки (тобто параметра потужності) за максимальною вірогідністю. Оскільки ваша залежна змінна не є строго позитивним, Box-Cox перетворення не буде працювати , і ви повинні вказати опцію , щоб використовувати перетворення Yeo-Джонсона (див оригінальну статтю тут і цю відповідну посаду ):λfamily="yjPower"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
Це створює сюжет на зразок наступного:

Найкраща оцінка - це значення, яке максимально збільшує профіль, який у цьому прикладі становить приблизно 0,2. Зазвичай оцінка округляється до знайомого значення, яке все ще перебуває в межах 95% інтервалу впевненості, таких як -1, -1/2, 0, 1/3, 1/2, 1 або 2.λλλ
Щоб трансформувати залежну змінну зараз, використовуйте функцію yjPowerз carпакета:
depvar.transformed <- yjPower(my.dependent.variable, lambda)
У функції lambdaмає бути округлена яку ви знайшли перед використанням . Потім знову підходимо до регресії з перетвореною залежною змінною.λboxCox
Важливо: Замість того, щоб просто перетворити журнал на перетворення залежної змінної, вам слід розглянути можливість підключення GLM до log-посилання. Ось декілька посилань, які надають додаткову інформацію: перша , друга , третя . Для цього 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дохідн е ш= 1 / дохідo l d--------√
Ще один дуже цікавий пост на сайті про трансформацію незалежних змінних - це цей .
Недоліки перетворень
1 / у√λλ
Моделювання нелінійних зв’язків
Два досить гнучких способу пристосування нелінійних співвідношень - це дробові многочлени та сплайни . Ці три статті пропонують дуже хороший вступ до обох методів: першого , другого та третього . Існує також ціла книга про дробові многочлени та R. У R пакетіmfp реалізовано багатовимірні дробові многочлени. Ця презентація може бути інформативною щодо дробових многочленів. Для встановлення сплайнів ви можете використовувати функцію gam(узагальнені моделі добавок, див. Тут для відмінного ознайомлення з R) із пакетуmgcv або функційns(природні кубічні сплайни) та bs(кубічні B-сплайни) з упаковки splines(див. тут приклад використання цих функцій). Використовуючи gamви можете вказати, які предиктори, які ви хочете встановити за допомогою сплайнів за допомогою s()функції:
my.gam <- gam(y~s(x1) + x2, family=gaussian())
тут x1би встановлювались за допомогою сплайна і x2лінійно, як у звичайній лінійній регресії. Всередині gamви можете вказати сімейство розповсюдження та функцію посилання, як в glm. Таким чином , щоб відповідати моделі з функцією логарифмічною зв'язку, ви можете вказати опцію family=gaussian(link="log")в gamякості в glm.
Погляньте на цю публікацію з сайту.