Каков наиболее подходящий способ преобразования пропорций, когда они являются независимой переменной?

12

Я думал, что понял эту проблему, но теперь я не так уверен, и я хотел бы проверить с другими, прежде чем продолжить.

У меня есть две переменные, Xи Y. Yявляется отношением, и оно не ограничено 0 и 1 и обычно нормально распределено. Xявляется пропорцией, и он ограничен 0 и 1 (он работает от 0,0 до 0,6). Когда я запускаю линейную регрессию , Y ~ Xи я считаю, что Xи Yсущественно линейно связаны. Все идет нормально.

Но потом я исследовать дальше , и я начинаю думать , что , может быть , Xи Yотношения «s может быть более криволинейным по сравнению с линейными. Для меня это выглядит как отношения Xи Yможет быть ближе к Y ~ log(X), Y ~ sqrt(X)или Y ~ X + X^2, или что - то в этом роде. У меня есть эмпирические основания полагать, что отношения могут быть криволинейными, но нет оснований полагать, что любое нелинейное отношение может быть лучше, чем любое другое.

У меня есть пара связанных вопросов здесь. Во-первых, моя Xпеременная принимает четыре значения: 0, 0,2, 0,4 и 0,6. Когда я записываю или преобразовываю квадратные корни этих данных, расстояние между этими значениями искажается, так что значения 0 находятся намного дальше от всех остальных. Из-за отсутствия лучшего способа спросить, это то, что я хочу? Я предполагаю, что это не так, потому что я получаю очень разные результаты в зависимости от уровня искажения, которое я принимаю. Если это не то, чего я хочу, как мне этого избежать?

Во-вторых, чтобы преобразовать эти данные в лог, я должен добавить некоторую сумму к каждому Xзначению, потому что вы не можете взять журнал 0. Когда я добавляю очень маленькую сумму, скажем, 0,001, я получаю очень существенное искажение. Когда я добавляю большее количество, скажем 1, я получаю очень мало искажений. Есть ли «правильное» количество для добавления к Xпеременной? Или неуместно добавлять что-либо в Xпеременную вместо выбора альтернативного преобразования (например, корень куба) или модели (например, логистическая регрессия)?

То, что мне удалось найти там по этому вопросу, заставляет меня чувствовать, что я должен действовать осторожно. Для других пользователей R этот код будет создавать некоторые данные с такой же структурой, как у меня.

X = rep(c(0, 0.2,0.4,0.6), each = 20)
Y1 = runif(20, 6, 10)
Y2 = runif(20, 6, 9.5)
Y3 = runif(20, 6, 9)
Y4 = runif(20, 6, 8.5)
Y = c(Y4, Y3, Y2, Y1)
plot(Y~X)
Bajcz
источник
Вы говорите, что Y - это пропорция, но по вашим данным она составляет от 6 до 10?
Да, я исправил это выше - это соотношение, а не пропорция.
Байч

Ответы:

13

Основной вопрос о преобразовании пропорций (я буду использовать качестве символа, аналогично, но не идентично вашей записи), дает некоторые общие комментарии.x

В дальнейшем я полагаю, что основным мотивом для преобразования пропорций, являющихся ковариатами (предикторами, независимыми переменными), является улучшение приближения к линейности отношений или, если в исследовательском режиме, чтобы получить более четкое представление графически о форме или действительно существовании любые отношения. Как обычно, является ли ковариата (например) приблизительно нормально распределенной, не критичной как таковой. (Пропорции являются не слишком отдаленным родственником индикаторных переменных со значениями которые никогда не могут быть распределены нормально, и пропорции тоже обязательно ограничены.)0,1

Если пропорции могут достигать точных нулей или точных, важно, чтобы преобразование было определено для тех пределов, которые явно исключают , так как log 0 является неопределенным. Кроме того, конкретная форма в идеале требует некоторого предметного (научного, практического) обоснования, но при отсутствии простого следствия из какого-либо простого анализа следует, что log ( x + c ) очень чувствителен к значению c , как вы намекаете. logxlog0log(x+c)c

Это немного легче увидеть с логарифмами по основанию , поэтому временно давайте рассмотрим c = 10 k, чтобы log 10 ( x + 10 k ) отображало x = 0 в k .10c=10klog10(x+10k)x=0k

Следовательно, отображает x = 0 в 0, а x = 1 - приблизительно в 0,301 , в то время как k = - 3 , c = 0,001 отображает x = 0 в - 3, а x = 1 только в smidgen больше 0 .k=0,c=1x=00x=10.301k=3,c=0.001x=03x=10

Аналогично, что бы ни означало, что 0 отображается в те же пределы, тогда как во все более хорошем приближении x = 1 отображается в 0 .k=6,9,0x=10

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

Просто люди, предлагающие это, предположительно представляют себе, что (теперь для любой базы, которая вам нравится) должна вести себя очень похоже на log x для малого c , что явно верно для большого x , но совсем не верно для малого x . Иначе говоря, более крутой и крутой наклон log x как функции x при x 0 здесь может сильно кусаться.log(x+c)logxcxxlogxxx0

Представляется предпочтительным сосредоточиться на преобразованиях, которые изменяются более постепенно вблизи и (по другим, но связанным причинам) также вблизи x = 1 .x=0x=1

xpx=0,10

xp(1x)pp=1/2p=1/3

logit x=logxlog(1x)p0x=0,1p0

01

  • 0.010.02x0.01

  • 0.980.99x0.011x

  • 0.500.51x0.01

01

x=0,1

log(x+0.001)

Два основных момента, которые я хотел бы подчеркнуть:

  1. log(x+c)x

  2. Для данных вашего примера никакое преобразование, которое я пробовал, похоже, не поможет.

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

01

введите описание изображения здесь

R2=3.7=0.994

введите описание изображения здесь

y610

РЕДАКТИРОВАТЬ: Исходные данные могут быть нанесены здесь, потому что ОП кратко опубликовал данные, но затем удалил их.

Другие темы, использующие сложенные полномочия, включают

Преобразование данных пропорции: когда квадратного корня арксин недостаточно

Регрессия: график рассеяния с низким квадратом R и высокими значениями p

Построить сильно искаженный набор данных

Ник Кокс
источник
Отличный ответ и очень тщательный. Я думаю, что я должен сказать, что Yэто соотношение, а не пропорция, что, вероятно, является довольно существенной разницей, так что это было хорошо с вашей стороны.
Байч
Пропорции ограничены, как я их определяю. Спасибо за разъяснения, которые не имеют никакого значения для моего анализа (именно поэтому я назвал его крошечной деталью).
Ник Кокс
2
Дальнейший комментарий: В принципе, вы можете проверять кривизну и т. Д., Используя сплайны или сглаживатели, но это всего лишь 4 различных уровня предиктора, что не легко. Я бы рассмотрел квантильную регрессию для ваших данных.
Ник Кокс
x2x310x=0,1