Что произойдет, если переменные объяснения и ответа отсортированы независимо перед регрессией?

302

Предположим, у нас есть набор данных с точками. Мы хотим выполнить линейную регрессию, но сначала мы сортируем значения и независимо друг от друга, формируя набор данных . Есть ли какая-либо значимая интерпретация регрессии в новом наборе данных? У этого есть имя?n X i Y i ( X i , Y j )(Xi,Yi)nXiYi(Xi,Yj)

Я полагаю, что это глупый вопрос, поэтому я прошу прощения, я не обучен статистике. На мой взгляд, это полностью уничтожает наши данные, и регрессия не имеет смысла. Но мой менеджер говорит, что он получает «лучшие регрессии большую часть времени», когда он делает это (здесь «лучше» означает более прогнозирующий). У меня такое чувство, что он обманывает себя.

РЕДАКТИРОВАТЬ: Спасибо за все ваши хорошие и терпеливые примеры. Я показал ему примеры @ RUser4512 и @gung, и он остался верным. Он раздражается, а я истощаюсь. Я чувствую себя удрученным. Я, вероятно, скоро начну искать другую работу.

произвольный пользователь
источник
120
Но мой менеджер говорит, что он получает "лучшие регрессии большую часть времени", когда он делает это. О боже ...
Джейк Уэстфолл
56
Там, конечно, нет причин для вас смущаться!
Джейк Уэстфолл,
36
«Наука это то, что мы хотим, чтобы это было». - Доктор Лео Космонавт.
Sycorax
52
Эта идея должна конкурировать с другой, с которой я столкнулся: если ваш образец небольшой, просто соберите несколько копий одних и тех же данных.
Ник Кокс
47
Вы должны сказать своему боссу, что у вас есть идея получше. Вместо использования реальных данных просто создайте свои собственные, потому что это будет легче моделировать.
dsaxton

Ответы:

147

Я не уверен, что твой босс считает «более предсказательным». Многие люди ошибочно полагают, что более низкие значения означают лучшую / более прогнозирующую модель. Это не обязательно верно (это является показательным примером). Однако независимая предварительная сортировка обеих переменных гарантирует более низкое значение . С другой стороны, мы можем оценить прогнозирующую точность модели, сравнивая ее прогнозы с новыми данными, которые были сгенерированы тем же процессом. Я делаю это ниже в простом примере (закодирован ). рppR

options(digits=3)                       # for cleaner output
set.seed(9149)                          # this makes the example exactly reproducible

B1 = .3
N  = 50                                 # 50 data
x  = rnorm(N, mean=0, sd=1)             # standard normal X
y  = 0 + B1*x + rnorm(N, mean=0, sd=1)  # cor(x, y) = .31
sx = sort(x)                            # sorted independently
sy = sort(y)
cor(x,y)    # [1] 0.309
cor(sx,sy)  # [1] 0.993

model.u = lm(y~x)
model.s = lm(sy~sx)
summary(model.u)$coefficients
#             Estimate Std. Error t value Pr(>|t|)
# (Intercept)    0.021      0.139   0.151    0.881
# x              0.340      0.151   2.251    0.029  # significant
summary(model.s)$coefficients
#             Estimate Std. Error t value Pr(>|t|)
# (Intercept)    0.162     0.0168    9.68 7.37e-13
# sx             1.094     0.0183   59.86 9.31e-47  # wildly significant

u.error = vector(length=N)              # these will hold the output
s.error = vector(length=N)
for(i in 1:N){
  new.x      = rnorm(1, mean=0, sd=1)   # data generated in exactly the same way
  new.y      = 0 + B1*x + rnorm(N, mean=0, sd=1)
  pred.u     = predict(model.u, newdata=data.frame(x=new.x))
  pred.s     = predict(model.s, newdata=data.frame(x=new.x))
  u.error[i] = abs(pred.u-new.y)        # these are the absolute values of
  s.error[i] = abs(pred.s-new.y)        #  the predictive errors
};  rm(i, new.x, new.y, pred.u, pred.s)
u.s = u.error-s.error                   # negative values means the original
                                        # yielded more accurate predictions
mean(u.error)  # [1] 1.1
mean(s.error)  # [1] 1.98
mean(u.s<0)    # [1] 0.68


windows()
  layout(matrix(1:4, nrow=2, byrow=TRUE))
  plot(x, y,   main="Original data")
  abline(model.u, col="blue")
  plot(sx, sy, main="Sorted data")
  abline(model.s, col="red")
  h.u = hist(u.error, breaks=10, plot=FALSE)
  h.s = hist(s.error, breaks=9,  plot=FALSE)
  plot(h.u, xlim=c(0,5), ylim=c(0,11), main="Histogram of prediction errors",
       xlab="Magnitude of prediction error", col=rgb(0,0,1,1/2))
  plot(h.s, col=rgb(1,0,0,1/4), add=TRUE)
  legend("topright", legend=c("original","sorted"), pch=15, 
         col=c(rgb(0,0,1,1/2),rgb(1,0,0,1/4)))
  dotchart(u.s, color=ifelse(u.s<0, "blue", "red"), lcolor="white",
           main="Difference between predictive errors")
  abline(v=0, col="gray")
  legend("topright", legend=c("u better", "s better"), pch=1, col=c("blue","red"))

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

Верхний левый график показывает исходные данные. Существует некоторая взаимосвязь между и (то есть корреляция составляет около .) Верхний правый график показывает, как выглядят данные после независимой сортировки обеих переменных. Вы можете легко увидеть, что сила корреляции существенно возросла (сейчас она составляет около ). Однако на нижних графиках мы видим, что распределение прогнозирующих ошибок намного ближе к для модели, обученной на исходных (несортированных) данных. Средняя абсолютная прогностическая ошибка для модели, в которой использовались исходные данные, составляет , тогда как средняя абсолютная прогностическая ошибка для модели, обученной на отсортированных данных, составляету .31 0,99 0 1,1 1,98 у 68 %xy.31.9901.11.98- почти вдвое больше. Это означает, что прогнозы отсортированной модели данных намного дальше от правильных значений. График в правом нижнем квадранте является точечным. Он отображает различия между прогнозирующей ошибкой с исходными данными и с отсортированными данными. Это позволяет сравнивать два соответствующих прогноза для каждого нового смоделированного наблюдения. Синие точки слева - это времена, когда исходные данные были ближе к новому значению , а красные точки справа - времена, когда отсортированные данные давали лучшие прогнозы. Существовали более точные прогнозы по модели, обученной по исходным данным в случаев. y68%


Степень, в которой сортировка вызовет эти проблемы, является функцией линейных отношений, существующих в ваших данных. Если корреляция между и были уже, сортировка не будет иметь никакого эффекта и , следовательно , не может быть вредным. С другой стороны, если корреляция былау 1,0 - 1,0xy1.01.0сортировка полностью изменила бы отношения, сделав модель настолько неточной, насколько это возможно. Если бы данные изначально были полностью некоррелированными, сортировка имела бы промежуточный, но все же довольно большой вредный эффект на точность прогнозирования полученной модели. Поскольку вы упоминаете, что ваши данные обычно коррелируют, я подозреваю, что это обеспечило некоторую защиту от вреда, присущего этой процедуре. Тем не менее, сортировка первой, безусловно, вредна. Чтобы изучить эти возможности, мы можем просто повторно запустить приведенный выше код с разными значениями для B1(используя один и тот же начальный элемент для воспроизводимости) и проверить вывод:

  1. B1 = -5:

    cor(x,y)                            # [1] -0.978
    summary(model.u)$coefficients[2,4]  # [1]  1.6e-34  # (i.e., the p-value)
    summary(model.s)$coefficients[2,4]  # [1]  1.82e-42
    mean(u.error)                       # [1]  7.27
    mean(s.error)                       # [1] 15.4
    mean(u.s<0)                         # [1]  0.98
    
  2. B1 = 0:

    cor(x,y)                            # [1] 0.0385
    summary(model.u)$coefficients[2,4]  # [1] 0.791
    summary(model.s)$coefficients[2,4]  # [1] 4.42e-36
    mean(u.error)                       # [1] 0.908
    mean(s.error)                       # [1] 2.12
    mean(u.s<0)                         # [1] 0.82
    
  3. B1 = 5:

    cor(x,y)                            # [1] 0.979
    summary(model.u)$coefficients[2,4]  # [1] 7.62e-35
    summary(model.s)$coefficients[2,4]  # [1] 3e-49
    mean(u.error)                       # [1] 7.55
    mean(s.error)                       # [1] 6.33
    mean(u.s<0)                         # [1] 0.44
    
банда
источник
12
Ваш ответ дает очень хорошее замечание, но, возможно, не так ясно, как мог бы и должен. Для непрофессионала (например, менеджера ОП) не обязательно очевидно, что на самом деле показывают и подразумевают все эти графики в конце (не говоря уже о коде R). ИМО, ваш ответ может действительно использовать пояснительный параграф или два.
Илмари Каронен
3
Спасибо за ваш комментарий, @IlmariKaronen. Можете ли вы предложить что-нибудь добавить? Я попытался сделать код как можно более понятным и подробно прокомментировал его. Но я, возможно, больше не смогу видеть эти вещи глазами кого-то, кто не знаком с этими темами. Я добавлю текст для описания графиков внизу. Если вы можете придумать что-нибудь еще, пожалуйста, дайте мне знать.
Gung
13
+1 Это все еще единственный ответ, который касается предложенной ситуации: когда две переменные уже демонстрируют некоторую положительную связь, это, тем не менее, ошибка в регрессии независимо отсортированных значений. Все остальные ответы предполагают, что ассоциации нет или что она на самом деле отрицательная. Хотя они являются хорошими примерами, поскольку они не применяются, они не будут убедительными. Однако нам все еще не хватает интуитивного реального примера данных на уровне кишечника, подобного тем, которые смоделированы здесь, где природа ошибки смущающе очевидна.
whuber
8
+1 за то, что не склонен к ортодоксальности и использует «=» для назначения в R.
dsaxton
@dsaxton, я <-иногда использую , но моя цель на CV состоит в том, чтобы написать код R как можно ближе к псевдокоду, чтобы он был более читабельным для людей, которые не знакомы с R. =Он довольно универсален среди языков программирования в качестве оператора присваивания ,
gung
103

Если вы хотите убедить своего босса, вы можете показать, что происходит с симулированными, случайными, независимыми данными . С R:x,yвведите описание изображения здесь

n <- 1000

y<- runif(n)
x <- runif(n)

linearModel <- lm(y ~ x)


x_sorted <- sort(x)
y_sorted <- sort(y)

linearModel_sorted <- lm(y_sorted ~ x_sorted)

par(mfrow = c(2,1))
plot(x,y, main = "Random data")
abline(linearModel,col = "red")


plot(x_sorted,y_sorted, main = "Random, sorted data")
abline(linearModel_sorted,col = "red")

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

RUser4512
источник
8
Это почти как все объявления в Интернете "до и после" :)
Тим
Это хороший пример, но не думаю, что он убедит его, потому что наши данные имеют положительную корреляцию перед сортировкой. Сортировка просто «укрепляет» отношения (хотя и неправильные).
произвольный пользователь
17
@arbitraryuser: Ну, отсортированные данные всегда будут показывать положительную (хорошо, неотрицательную) корреляцию, независимо от того, какая, если таковая имеется, корреляция исходных данных. Если вы знаете, что исходные данные в любом случае всегда имеют положительную корреляцию, то это «случайно» - но зачем тогда вообще проверять наличие корреляции, если вы уже знаете, что она присутствует и положительна в любом случае? Тест, который проводит ваш менеджер, немного похож на «детектор качества воздуха», который всегда говорит «обнаружен воздухопроницаемый воздух» - он отлично работает, если вы никогда не будете брать его в любом месте, где нет воздухопроницаемого воздуха.
Илмари Каронен
2
@arbitraryuser Другой пример, который вы можете найти более убедительным, это взять x = 0: 50 и y = 0: -50, идеальную линию с наклоном -1. Если вы сортируете их, отношения превращаются в идеальную линию с наклоном 1. Если истина заключается в том, что ваши переменные изменяются в абсолютной оппозиции, и вы делаете рецепт политики, основанный на вашем ошибочном восприятии, что они изменяются в идеальном согласии, вы делать совершенно не то, что нужно.
Джон Раузер
99

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

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

Интуитивно понятный пример: предположим, набор данных для некоторой группы населения. График неизмененных данных, вероятно, будет выглядеть скорее как логарифмическая или степенная функция: более высокие темпы роста для детей, которые замедляются для более поздних подростков и «асимптотически» приближаются к максимальному росту для молодых людей и старше.(X=age,Y=height)

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

d0rmLife
источник
25
+1 - но я бы отбросил «по существу» и еще раз подчеркнул «бессмысленное».
whuber
12
Обратите внимание, что OP означает независимую сортировку данных, а не их перемешивание . Это тонкое, но важное различие, поскольку оно относится к тому, что наблюдаемое «отношение» можно увидеть после применения данной операции.
кардинал
3
Я смущен примером, который вы добавили. Если - это возраст, а - рост, то обе переменные уже упорядочены: ни у кого возраст, ни рост никогда не уменьшаются. Таким образом, сортировка не будет иметь никакого эффекта вообще. Cc @JakeWestfall, который прокомментировал, что ему понравился этот пример. Вы можете объяснить? уxy
амеба
12
@amoeba Тривиальные данные: средний подросток, центр НБА в возрасте 30 лет, средняя женщина пожилого возраста. После сортировки алгоритм прогнозирования заключается в том, что самый старый является самым высоким.
d0rmLife
1
@amoeba Я вижу, как это можно интерпретировать, поясню.
d0rmLife
40

На самом деле, давайте сделаем это действительно очевидным и простым. Предположим, я провожу эксперимент, в котором я отмеряю 1 литр воды в стандартизированном контейнере и смотрю на количество воды, остающееся в контейнере как функцию времени , потери воды из-за испарения:т яViti

Теперь предположим, что я получаю следующие измерения в часах и литрах соответственно: Это совершенно очевидно коррелированные (и гипотетические) данные. Но если бы я сортировал измерения времени и объема, я бы получил И вывод из этого отсортированного набора данных состоит в том, что с увеличением времени объем воды увеличивается, и, более того, начиная с 1 литра воды, вы получите после 5 часов ожидания более 1 литра воды. Разве это не замечательно? Мало того, что заключение противоположно тому, что было сказано в исходных данных, это также говорит о том, что мы открыли новую физику! (ti,Vi)

(0,1.0),(1,0.9),(2,0.8),(3,0.7),(4,0.6),(5,0.5).
(0,0.5),(1,0.6),(2,0.7),(3,0.8),(4,0.9),(5,1.0).
heropup
источник
5
Хороший интуитивный пример! За исключением последней строки. С исходными данными мы получим отрицательный объем за раз, что также является новой физикой. Вы никогда не сможете экстраполировать регрессию.
Jongsma
22

Это настоящее искусство, требующее реального понимания психологии, чтобы убедить некоторых людей в ошибочности своего пути. Помимо всех превосходных примеров, приведенных выше, полезной стратегией иногда является показать, что вера человека ведет к несогласованности с самим собой. Или попробуйте этот подход. Узнайте, что ваш начальник твердо убежден в том, что люди, выполняющие задание Y, не имеют отношения к тому, сколько атрибутов X они имеют. Покажите, как собственный подход вашего босса привел бы к заключению сильной ассоциации между X и Y. Используйте в своих интересах политические / расовые / религиозные убеждения.

Лицо инвалидности должно было быть достаточно. Какой упрямый босс. Ищите лучшую работу в то же время. Удачи.

Фрэнк Харрелл
источник
12

Еще один пример. Представьте, что у вас есть две переменные: одна связана с употреблением шоколада, а вторая связана с общим благополучием. У вас есть выборка из двух, и ваши данные выглядят так:

chocolateno happinessno chocolatehappiness

Какое отношение шоколад и счастье основаны на вашем образце? А теперь измените порядок одного из столбцов - каково отношение после этой операции?

tNt

iXiY

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

Тим
источник
8

Простой пример, который может понять ваш менеджер:

Допустим, у вас есть Coin Y и Coin X, и вы переворачиваете каждую из них 100 раз. Затем вы хотите предсказать, может ли получение голов с помощью Монеты X (IV) повысить вероятность получения голов с помощью Монеты Y (DV).

Без сортировки отношения будут нулевыми, потому что результат Coin X не должен влиять на результат Coin Y. С сортировкой отношения будут почти идеальными.

Как имеет смысл заключить, что у вас есть хороший шанс получить головы на подбрасывании монеты, если вы только что подбросили головы другой монетой?

Hotaka
источник
1
Нужен перевод для любой валюты, кроме той, которую вы предполагаете. (Я знаю, что это совершенно тривиальное возражение, и легко решить любую проблему, но иногда стоит подчеркнуть, что это международный форум.)
Ник Кокс,
8

Эта техника действительно удивительна. Я нахожу все виды отношений, о которых я никогда не подозревал. Например, я бы не подозревал, что числа, которые появляются в лотерее Powerball, которые, как ЗАЯВЛЯЕТСЯ, являются случайными, на самом деле сильно коррелируют с ценой открытия акций Apple в тот же день! Люди, я думаю, что мы собираемся заработать много времени. :)

> powerball_last_number = scan()
1: 69 66 64 53 65 68 63 64 57 69 40 68
13: 
Read 12 items
> #Nov. 18, 14, 11, 7, 4
> #Oct. 31, 28, 24, 21, 17, 14, 10
> #These are powerball dates.  Stock opening prices 
> #are on same or preceding day.
> 
> appl_stock_open = scan()
1: 115.76  115.20 116.26  121.11  123.13 
6: 120.99  116.93  116.70  114.00  111.78
11: 111.29  110.00
13: 
Read 12 items
> hold = lm(appl_stock_open ~ powerball_last_number)
> summary(hold)


Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)           112.08555    9.45628  11.853 3.28e-07 ***
powerball_last_number   0.06451    0.15083   0.428    0.678    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.249 on 10 degrees of freedom
Multiple R-squared:  0.01796,   Adjusted R-squared:  -0.08024 
F-statistic: 0.1829 on 1 and 10 DF,  p-value: 0.6779

Хм, похоже, не имеет существенных отношений. НО используя новую, улучшенную технику:

> 
> vastly_improved_regression = lm(sort(appl_stock_open)~sort(powerball_last_number))
> summary(vastly_improved_regression)

Coefficients:
                            Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 91.34418    5.36136  17.038 1.02e-08 ***
sort(powerball_last_number)  0.39815    0.08551   4.656    9e-04 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.409 on 10 degrees of freedom
Multiple R-squared:  0.6843,    Adjusted R-squared:  0.6528 
F-statistic: 21.68 on 1 and 10 DF,  p-value: 0.0008998

ПРИМЕЧАНИЕ. Это не является серьезным анализом. Просто покажите своему менеджеру, что они могут связать ЛЮБЫЕ две переменные, если вы сортируете их обе.

AlaskaRon
источник
6

Здесь много хороших встречных примеров. Позвольте мне добавить параграф о сути проблемы.

XiYiXYiiX1Y1X2Y2XYX1Y1X1Y1

На самом деле, позвольте мне добавить параграф о том, почему это "работает", а также.

XaXbXaXYaXzXYzYXaYaXzYzX1Y1

user2640528
источник
6

На самом деле, описанный тест (т. Е. Сортировка значений X и значений Y независимо друг от друга и регрессия одного против другого) ДЕЛАЕТ что-то тестирование, предполагая, что (X, Y) отбираются как независимые пары из двумерного распределения. Это просто не проверка того, что хочет проверить ваш менеджер. По сути, это проверка линейности QQ-графика, сравнивая предельное распределение X с предельным распределением Y. В частности, «данные» упадут близко к прямой линии, если плотность Xs (f (x)) связана с плотностью Ys (g (y)) следующим образом:

f(x)=g((ya)/b)ab>0

AlaskaRon
источник
4

Странно, что самый очевидный контрпример все еще отсутствует среди ответов в его простейшей форме.

Y=X

Y^X

Это своего рода «прямая обратная» схема, которую вы, возможно, захотите найти здесь.

KT.
источник
Не могли бы вы объяснить, к какому утверждению это контрпример?
whuber
Утверждение менеджера о том, что вы можете «постоянно улучшать регрессии», независимо сортируя входы и выходы.
КТ.
R2=1
R2
1
R2Y=X
3

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

AlxRd
источник
3

xx2xx2x

Линейная регрессия обычно менее разумна (существуют исключения, см. Другие ответы); но геометрия хвостов и распределения ошибок говорит вам, насколько далеки от подобных распределений.

Микаэль Вейдемо-Йоханссон
источник
2

У меня есть простая интуиция, почему это на самом деле хорошая идея, если функция монотонна :

x1,x2,,xnxi<xi+1f:yi=f(xi)+εiεi

εi=f(xi+δ)f(xi)
δ{Δ,Δ+1,Δ1,Δ}ΔNΔ=0Δ=n

f

εi

PS: я нахожу удивительным, как по-видимому простой вопрос может привести к новым интересным способам переосмысления модели стандартов. Пожалуйста, спасибо, босс!

Гийом
источник
1
xi+δi+δ<1i+δ>n
2

Скажем, у вас есть эти точки на окружности радиуса 5. Вы вычисляете соотношение:

import pandas as pd
s1 = [(-5, 0), (-4, -3), (-4, 3), (-3, -4), (-3, 4), (0, 5), (0, -5), (3, -4), (3, 4), (4, -3), (4, 3), (5, 0)]
df1 = pd.DataFrame(s1, columns=["x", "y"])
print(df1.corr())

   x  y
x  1  0
y  0  1

Затем вы сортируете свои значения x и y и снова делаете корреляцию:

s2 = [(-5, -5), (-4, -4), (-4, -4), (-3, -3), (-3, -3), (0, 0), (0, 0), (3, 3), (3, 3), (4, 4), (4, 4), (5, 5)]
df2 = pd.DataFrame(s2, columns=["x", "y"])
print(df2.corr())

   x  y
x  1  1
y  1  1

С помощью этой манипуляции вы меняете набор данных с корреляцией 0,0 на набор данных с корреляцией 1,0. Это проблема.

hughdbrown
источник
1

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

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

Я нашел эти данные в Интернете, и, конечно же, кажется, что регрессия улучшается благодаря независимой сортировке X и Y, потому что: а) данные имеют высокую положительную корреляцию, и б) OLS действительно плохо справляется с экстремальными (высокими -предельные) выбросы. Рост и вес имеют соотношение 0,19 с включенным выбросом, 0,77 с исключенным выбросом и 0,78 с независимой сортировкой X и Y.

x <- read.csv ("https://vincentarelbundock.github.io/Rdatasets/csv/car/Davis.csv", header=TRUE)

plot (weight ~ height, data=x)

lm1 <- lm (weight ~ height, data=x)

xx <- x
xx$weight <- sort (xx$weight)
xx$height <- sort (xx$height)

plot (weight ~ height, data=xx)

lm2 <- lm (weight ~ height, data=xx)

plot (weight ~ height, data=x)
abline (lm1)
abline (lm2, col="red")

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

plot (x$height, x$weight)
points (xx$height, xx$weight, col="red")

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

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

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

Wayne
источник
1
Это выглядит как чистое совпадение, что вы пришли к аналогичным коэффициентам корреляции. Этот пример не демонстрирует ничего о связи между исходными и независимо отсортированными данными.
whuber
2
@whuber: Как насчет второго графика? Мне кажется, что если исходные данные сильно коррелированы, их сортировка может лишь немного перемешать значения, в основном сохраняя исходные отношения +/-. С парой выбросов все перестраивается больше, но ... Извините, у меня нет математических отбивных, чтобы идти дальше, чем это.
Уэйн
1
Я думаю, что ваша интуиция верна, Уэйн. Логика вопроса - как я понимаю - касается того, что вы можете сказать об исходных данных, основанных на диаграмме рассеяния только отсортированных переменных. Ответ: абсолютно ничего, кроме того, что вы можете вывести из их отдельных (одномерных) распределений. Дело в том, что красные точки на вашем втором графике согласуются не только с данными, которые вы показываете, но также со всем астрономически огромным количеством других перестановок этих данных - и у вас нет никакого способа узнать, какая из этих перестановок является правильный.
whuber
2
@whuber Я думаю, что ключевым отличием здесь является то, что ОП сказал, что он должен «полностью уничтожить» данные. Ваш принятый ответ подробно показывает, как это происходит, в целом. Вы не можете передать данные обработанным таким образом, и у вас нет идеи, если результат будет иметь смысл. НО также верно, что менеджер мог раньше иметь дело с примерами, подобными моему (контр), и обнаружил, что это ошибочное преобразование действительно улучшило результаты. Таким образом, мы можем согласиться с тем, что менеджер был в корне ошибочным, но, возможно, также стал довольно удачливым - и в удачном случае это работает.
Уэйн
@whuber: я отредактировал вступление к своему ответу таким образом, что я думаю, что оно уместно для обсуждения. Я думаю, что признание того, как процедура босса могла сработать для него, могло бы стать первым шагом в более убедительном аргументе, который сочетается с опытом босса. Для вашего рассмотрения.
Уэйн
-7

Если он предварительно выбрал переменные, чтобы быть монотонными, это на самом деле довольно надежно. Google "неправильные линейные модели" и "Робин Доус" или "Говард Уэйнер". Доус и Вайнер говорят об альтернативных способах выбора коэффициентов. У Джона Кука есть небольшая колонка ( http://www.johndcook.com/blog/2013/03/05/robustness-of-equal-weights/ ).

Билл Рейнор
источник
4
То, что Кук обсуждает в этом посте, - это не то же самое, что сортировка x и y независимо друг от друга, а затем подгонка регрессионной модели к отсортированным переменным.
gung
4
То, что делает босс ОП, это не «предсказывать [yhat] по FInverse (G (x)), где F и G - экдфы Y и X». Вы можете увидеть процедуру в коде в моем ответе.
gung
4
Можете ли вы 1. добавить ссылку на конкретный документ Дауэса и / или Вайнера, 2. уточнить, как это относится к процедуре сортировки босса? Или дело в том, что если значение коэффициента не имеет большого значения, пока знак верен, а знак верен по предположению, то не имеет большого значения, что процедура босса дает странные значения для коэффициентов?
Юхо Коккала
2
1. Ссылки: - Доус Р.М. «Надежная красота неправильных линейных моделей в процессе принятия решений». Amer. Psychol. 34, нет 7 (1979): 571. - Вайнер, Х. «Оценка коэффициентов в линейных моделях: это не имеет значения». Psych. Bull. 83, нет. 2 (1976): 213. - Доуэз Р.М. и Корриган Б. «Линейные модели в процессе принятия решений». Psych. Bull., 81 95-106 (1974) 2. Как Дауэс, так и Вайнер показывают, что при наличии реальных данных и проблем реального прогнозирования предсказание будущего Y из X с отклонениями от их средних значений или путем сопоставления рангов работает довольно хорошо, и что это довольно нечувствителен к склону.
Билл Рейнор
2
Эти ссылки и объяснения будут лучше в вашем ответе, чем в комментариях.
Scortchi
-8

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

Коэффициент корреляции статистики заказов как новое измерение ассоциации с приложениями для анализа биосигналов

http://www.researchgate.net/profile/Weichao_Xu/publication/3320558_Order_Statistics_Correlation_Coefficient_as_a_Novel_Association_Measurement_With_Applications_to_Biosignal_Analysis/links/0912f507ed6f94a3c6000000.pdf

Мы предлагаем новый коэффициент корреляции на основе статистики порядка и неравенства перестановок. Предложенный коэффициент представляет собой компромисс между линейным коэффициентом Пирсона и двумя коэффициентами, основанными на ранге, а именно: число Спирмена и тау Кендалла. Теоретические выводы показывают, что наш коэффициент обладает теми же основными свойствами, что и три классических коэффициента. Экспериментальные исследования, основанные на четырех моделях и шести биосигналах, показывают, что наш коэффициент работает лучше, чем два ранговых коэффициента при измерении линейных ассоциаций; тогда как он хорошо способен обнаруживать монотонные нелинейные ассоциации, такие как два ранговых коэффициента. Обширные статистические анализы также показывают, что наш новый коэффициент имеет превосходную устойчивость к шуму, небольшой уклон,

Даниил
источник
14
Это не то, что описывает вопрос. Когда данные заменяются статистикой заказов, пары данных по-прежнему связаны, как и всегда. Вопрос описывает операцию, которая разрушает эти связи, стирая всю информацию об их совместном распространении.
whuber
Не обязательно. Возможно построить (или встретить) наборы данных, где независимая сортировка не уничтожает всю информацию о совместной вероятности.
Даниэль
5
Пожалуйста, дайте нам явный пример вашей претензии, потому что трудно понять, насколько это возможно даже математически, а на практике гораздо реже.
whuber
@whuber: Пожалуйста, посмотрите мой новый ответ, который имеет набор данных реального мира, который удовлетворяет ваш вопрос ... Я думаю.
Уэйн