Я думал, что понял эту проблему, но теперь я не так уверен, и я хотел бы проверить с другими, прежде чем продолжить.
У меня есть две переменные, 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)
Ответы:
Основной вопрос о преобразовании пропорций (я буду использовать качестве символа, аналогично, но не идентично вашей записи), дает некоторые общие комментарии.x
В дальнейшем я полагаю, что основным мотивом для преобразования пропорций, являющихся ковариатами (предикторами, независимыми переменными), является улучшение приближения к линейности отношений или, если в исследовательском режиме, чтобы получить более четкое представление графически о форме или действительно существовании любые отношения. Как обычно, является ли ковариата (например) приблизительно нормально распределенной, не критичной как таковой. (Пропорции являются не слишком отдаленным родственником индикаторных переменных со значениями которые никогда не могут быть распределены нормально, и пропорции тоже обязательно ограничены.)0,1
Если пропорции могут достигать точных нулей или точных, важно, чтобы преобразование было определено для тех пределов, которые явно исключают , так как log 0 является неопределенным. Кроме того, конкретная форма в идеале требует некоторого предметного (научного, практического) обоснования, но при отсутствии простого следствия из какого-либо простого анализа следует, что log ( x + c ) очень чувствителен к значению c , как вы намекаете.logx log0 log(x+c) c
Это немного легче увидеть с логарифмами по основанию , поэтому временно давайте рассмотрим c = 10 k, чтобы log 10 ( x + 10 k ) отображало x = 0 в k .10 c=10k log10(x+10k) x=0 k
Следовательно, отображает x = 0 в 0, а x = 1 - приблизительно в 0,301 , в то время как k = - 3 , c = 0,001 отображает x = 0 в - 3, а x = 1 только в smidgen больше 0 .k=0,c=1 x=0 0 x=1 0.301 k=−3,c=0.001 x=0 −3 x=1 0
Аналогично, что бы ни означало, что 0 отображается в те же пределы, тогда как во все более хорошем приближении x = 1 отображается в 0 .k=−6,−9, 0 x=1 0
Таким образом, нижняя граница растягивается наружу с добавленными все меньшими и меньшими постоянными , тогда как верхняя граница остается примерно такой же. Таким образом, такие преобразования могут чрезмерно растянуть нижнюю часть диапазона и даже создать выбросы из очень малых значений в или около 0 .c 0
Просто люди, предлагающие это, предположительно представляют себе, что (теперь для любой базы, которая вам нравится) должна вести себя очень похоже на log x для малого c , что явно верно для большого x , но совсем не верно для малого x . Иначе говоря, более крутой и крутой наклон log x как функции x при x ↓ 0 здесь может сильно кусаться.log(x+c) logx c x x logx x x↓0
Представляется предпочтительным сосредоточиться на преобразованиях, которые изменяются более постепенно вблизи и (по другим, но связанным причинам) также вблизи x = 1 .x=0 x=1
Два основных момента, которые я хотел бы подчеркнуть:
Для данных вашего примера никакое преобразование, которое я пробовал, похоже, не поможет.
В то же время другие возможности далеко не исчерпаны. (Примечательно, что я не пробовал квадратный корень или кубический корень и подчеркиваю, что во многих других проблемах это могут быть очевидные и серьезные кандидаты.)
РЕДАКТИРОВАТЬ: Исходные данные могут быть нанесены здесь, потому что ОП кратко опубликовал данные, но затем удалил их.
Другие темы, использующие сложенные полномочия, включают
Преобразование данных пропорции: когда квадратного корня арксин недостаточно
Регрессия: график рассеяния с низким квадратом R и высокими значениями p
Построить сильно искаженный набор данных
источник
Y
это соотношение, а не пропорция, что, вероятно, является довольно существенной разницей, так что это было хорошо с вашей стороны.