Как выбрать лучшее преобразование для достижения линейности?

10

Я хочу сделать множественную линейную регрессию, а затем предсказать новые значения с небольшой экстраполяцией. У меня есть переменная ответа в диапазоне от -2 до +7 и три предиктора (диапазоны от +10 до +200). Распределение почти нормальное. Но отношения между ответом и предикторами не являются линейными, я вижу кривые на графиках. Например, вот так: http://cs10418.userapi.com/u17020874/153949434/x_9898cf38.jpg

Я хотел бы применить преобразование для достижения линейности. Я попытался преобразовать переменную ответа, проверив различные функции и просмотрев полученные графики, чтобы увидеть линейную связь между ответом и предикторами. И я обнаружил, что есть много функций, которые могут дать мне видимые линейные отношения. Например, функции

t1=log(y+2.5)

t2=1log(y+5)

t3=1y+5

t4=1(y+10)3

t5=1(y+3)13

t=1(y+10)3y=1t1310

Как я могу выбрать лучшее преобразование для моих данных? Есть ли количественный (и не очень сложный) способ оценки линейности? Чтобы доказать, что выбранное преобразование является лучшим или найти его автоматически, если это возможно.

Или единственный способ сделать нелинейную множественную регрессию?

надя
источник
Я попытался улучшить форматирование ваших формул, но, возможно, допустил некоторые ошибки - пожалуйста, проверьте.
Питер Эллис
t1t50200y
1
@whuber Спасибо за ответ. Я сделал графики в R cs9579.userapi.com/u17020874/153949434/z_9fa17c02.jpg cs9579.userapi.com/u17020874/153949434/z_7fa6891c.jpg
Надя
2
1/(y+5)rplot(lm(1/(y+5)~r))

Ответы:

14

Это отчасти искусство, но есть некоторые стандартные, простые вещи, которые всегда можно попробовать.

y

r(r,y)(10,7)(90,0)(180,2)r r(rp1)/pp1/21/311p0log(r)

(07)/(9010)0.088(20)/(18090)0.022p=1/2(07)/(901/211/2101/211/2)16.632.4p07.36.6y=α+βlog(r)y сделать их примерно симметричными и повторять.

y

Whuber
источник
Спасибо за совет преобразования Бокса-Кокса. Имеет ли смысл проверять R-квадрат lm (1 / (y + 5) ~ r) и lm других функций, а затем сравнивать эти R-квадрат?
Надя
rR2rR2
Большое спасибо за ответ! Я не собираюсь преобразовывать свои независимые переменные
Надя
y
@Erich Каждая часть этой книги очень полезна: в конце концов, если вы можете сделать что-то с карандашом и бумагой, то вы можете запрограммировать компьютер, чтобы сделать это :-). С единственной переменной часто приятно преобразовать ее для симметрии (ее эмпирического распределения); Тьюки называет это «маленькой сделкой». Простой способ идентифицировать такое преобразование описан в разделе 3E «Быстрый поиск». Он иллюстрирует то, что можно узнать, взглянув на N-буквенное резюме (Tukey предлагает 7- или 9-буквенное резюме). Приобретение этого навыка более ценно, чем компьютерная программа, которая сделает за вас расчеты.
whuber
1

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

В качестве альтернативы, исследуйте преобразование объясняющих переменных. Наряду с прямыми преобразованиями у вас также есть возможность добавления в квадратичных терминах.

В более общем смысле, трансформация - это больше искусство, чем наука, если нет существующей теории, предлагающей то, что вы должны использовать в качестве основы для трансформации.

Питер Эллис
источник