Co się stanie, jeśli zmienne objaśniające i odpowiedzi zostaną posortowane niezależnie przed regresją?


302

Załóżmy, że mamy zestaw danych z n punktami. Chcemy przeprowadzić regresję liniową, ale najpierw sortujemy wartości X_i i wartości Y_i niezależnie od siebie, tworząc zestaw danych (X_i, Y_j) . Czy jest jakaś sensowna interpretacja regresji w nowym zbiorze danych? Czy to ma imię?(Xi,Yi)X i Y i ( X i , Y j )nXiYi(Xi,Yj)

Wyobrażam sobie, że to głupie pytanie, więc przepraszam, nie jestem formalnie wyszkolony w statystyce. Moim zdaniem to całkowicie niszczy nasze dane, a regresja jest bez znaczenia. Ale mój menedżer mówi, że dostaje „lepsze regresje przez większość czasu”, kiedy to robi (tutaj „lepszy” oznacza bardziej przewidywalny). Mam wrażenie, że sam siebie oszukuje.

EDYCJA: Dziękuję za wszystkie twoje miłe i cierpliwe przykłady. Pokazałem mu przykłady @ RUser4512 i @gung, a on pozostaje wierny. Staje się poirytowany, a ja się wyczerpuję. Czuję się załamany. Prawdopodobnie wkrótce zacznę szukać innych ofert pracy.


120
Ale mój menedżer twierdzi, że „robi to przez większość czasu”, kiedy to robi. O Boże ...
Jake Westfall,

56
Na pewno nie ma powodu, abyś czuł się zawstydzony!
Jake Westfall,

36
„Nauka jest tym, czym chcemy.” - Dr Leo Spaceman.
Sycorax,

52
Ten pomysł musi konkurować z innym, z którym się spotkałem: jeśli twoja próbka jest mała, po prostu połącz ją z kilkoma kopiami tych samych danych.
Nick Cox,

47
Powinieneś powiedzieć swojemu szefowi, że masz lepszy pomysł. Zamiast korzystać z rzeczywistych danych, po prostu wygeneruj własne, ponieważ łatwiej będzie modelować.
dsaxton,

Odpowiedzi:


147

Nie jestem pewien, co twój szef uważa za „bardziej przewidywalny”. Wiele osób błędnie uważa, że ​​niższe wartości oznaczają lepszy / bardziej przewidywalny model. To niekoniecznie jest prawdą (jest to przypadek). Jednak wcześniejsze samodzielne sortowanie obu zmiennych zagwarantuje niższą wartość . Z drugiej strony możemy ocenić dokładność predykcyjną modelu, porównując jego prognozy z nowymi danymi wygenerowanymi przez ten sam proces. Robię to poniżej w prostym przykładzie (zakodowanym ). pppR

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"))

wprowadź opis zdjęcia tutaj

Górny lewy wykres pokazuje oryginalne dane. Istnieje pewna zależność między i (viz., Korelacja wynosi około ). W prawym górnym fabuła pokazuje, co dane wyglądać po niezależnie sortowania obu zmiennych. Łatwo można zauważyć, że siła korelacji znacznie wzrosła (obecnie wynosi około ). Jednak na niższych wykresach widzimy, że rozkład błędów predykcyjnych jest znacznie bliższy dla modelu wyuczonego na oryginalnych (nieposortowanych) danych. Średni bezwzględny błąd predykcyjny dla modelu wykorzystującego oryginalne dane wynosi , podczas gdy średni bezwzględny błąd predykcyjny dla modelu wyuczonego na posortowanych danych wynosiY 0,31 0,99 0 1,1 1,98 R 68 %xy.31.9901.11.98- prawie dwa razy większy. Oznacza to, że prognozy posortowanego modelu danych są znacznie dalej od prawidłowych wartości. Wykres w prawym dolnym kwadrancie jest wykresem kropkowym. Wyświetla różnice między błędem predykcyjnym w przypadku danych oryginalnych i danych posortowanych. Umożliwia to porównanie dwóch odpowiednich prognoz dla każdej nowej symulowanej obserwacji. Niebieskie kropki po lewej to czasy, w których oryginalne dane były bliższe nowej wartości , a czerwone kropki po prawej to czasy, w których posortowane dane dały lepsze prognozy. Dokładniejsze prognozy z modelu przeszkolonego na oryginalnych danych czasu. y68%


Stopień, w jakim sortowanie spowoduje te problemy, jest funkcją zależności liniowej istniejącej w danych. Jeżeli zależność między a był już nie sortowanie nie ma to znaczenia, a więc są szkodliwe. Z drugiej strony, gdyby korelacja wynosiłay 1,0 - 1,0xy1.01.0, sortowanie całkowicie odwróciłoby związek, czyniąc model tak niedokładnym, jak to możliwe. Gdyby dane były pierwotnie całkowicie nieskorelowane, sortowanie miałoby pośredni, ale wciąż dość duży, szkodliwy wpływ na dokładność predykcyjną wynikowego modelu. Ponieważ wspominasz, że Twoje dane są zwykle skorelowane, podejrzewam, że zapewniło pewną ochronę przed szkodami nieodłącznie związanymi z tą procedurą. Niemniej jednak sortowanie jako pierwsze jest zdecydowanie szkodliwe. Aby zbadać te możliwości, możemy po prostu ponownie uruchomić powyższy kod z różnymi wartościami dla B1(używając tego samego materiału źródłowego dla odtwarzalności) i zbadać dane wyjściowe:

  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
Twoja odpowiedź jest bardzo dobra, ale może nie tak jasna, jak mogłaby i powinna. Dla laika (niekoniecznie kierownika PO) niekoniecznie oczywiste jest, co te wszystkie wątki na końcu (nie wspominając o kodzie R) faktycznie pokazują i sugerują. IMO, twoja odpowiedź może naprawdę użyć paragrafu wyjaśniającego lub dwóch.
Ilmari Karonen,

3
Dzięki za komentarz, @IlmariKaronen. Czy możesz zasugerować coś do dodania? Próbowałem uczynić kod tak zrozumiałym, jak to tylko możliwe i obszernie go skomentowałem. Ale mogę już nie widzieć tych rzeczy oczami kogoś, kto nie zna tych tematów. Dodam trochę tekstu, aby opisać działki na dole. Jeśli możesz wymyślić coś jeszcze, daj mi znać.
gung

13
+1 To wciąż jedyna odpowiedź, która odnosi się do proponowanej sytuacji: gdy dwie zmienne wykazują już pewne pozytywne skojarzenia, to jednak błędem jest regresja niezależnie posortowanych wartości. Wszystkie pozostałe odpowiedzi zakładają, że nie ma żadnego powiązania lub że jest ono faktycznie przeczące. Chociaż są to dobre przykłady, ponieważ nie mają zastosowania, nie będą przekonujące. Nadal brakuje nam intuicyjnego przykładu danych rzeczywistych na poziomie jelit, takich jak te symulowane tutaj, gdzie charakter błędu jest żenująco oczywisty.
whuber

8
+1 za brak wpływu ortodoksji i użycie „=” do przypisania w R.
dsaxton

@dsaxton, <-czasami używam , ale moim celem na CV jest napisanie kodu R tak blisko pseudokodu, jak to możliwe, aby był bardziej czytelny dla osób, które nie są zaznajomione z R. =Jest dość uniwersalny wśród języków programowania jako operator przypisania .
gung

103

Jeśli chcesz przekonać swojego szefa, możesz pokazać, co się dzieje z symulowanymi, losowymi, niezależnymi danymi . Z R:x,ywprowadź opis zdjęcia tutaj

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")

Oczywiście posortowane wyniki oferują znacznie ładniejszą regresję. Biorąc jednak pod uwagę proces generowania danych (dwie niezależne próbki), absolutnie nie ma szans, że jednej można użyć do przewidzenia drugiej.


8
To prawie jak cały Internet „reklamy przed vs po” :)
Tim

To dobry przykład, ale nie sądzę, by go przekonał, ponieważ nasze dane mają pozytywną korelację przed sortowaniem. Sortowanie po prostu „wzmacnia” relację (choć niepoprawną).
dowolny użytkownik

17
@arbitraryuser: Cóż, posortowane dane zawsze będą wykazywały dodatnią (dobrze, nieujemną) korelację, bez względu na ewentualną korelację oryginalnych danych. Jeśli wiesz, że oryginalne dane i tak zawsze mają dodatnią korelację, to jest to „przypadkowo poprawne” - ale dlaczego w ogóle warto zadawać sobie trud sprawdzania korelacji, skoro już wiesz, że są obecne i pozytywne? Test przeprowadzany przez kierownika przypomina trochę „wykrywacz jakości powietrza”, który zawsze mówi „wykryto powietrze do oddychania” - działa idealnie, o ile nigdy nie zabierzesz go w miejsce, gdzie nie ma powietrza do oddychania.
Ilmari Karonen,

2
@arbitraryuser Innym przykładem, który może okazać się bardziej przekonujący, jest przyjęcie x = 0: 50, ay = 0: -50, idealnej linii o nachyleniu -1. Jeśli je posortujesz, związek zmieni się w idealną linię ze spadkiem 1. Jeśli prawda jest taka, że ​​twoje zmienne różnią się w doskonałym opozycji, a ty tworzysz receptę na podstawie błędnego przekonania, że ​​różnią się one w idealnej zgodzie, będziesz robić dokładnie coś złego.
John Rauser

99

Twoja intuicja jest prawidłowa: niezależnie posortowane dane nie mają wiarygodnego znaczenia, ponieważ dane wejściowe i wyjściowe są losowo odwzorowywane względem siebie, a nie jak zaobserwowano związek.

Istnieje (dobra) szansa, że ​​regresja posortowanych danych będzie wyglądać ładnie, ale w kontekście jest bez znaczenia.

Intuicyjny przykład: Załóżmy, że zestaw danych dla pewnej populacji. Wykres niefałszowanych danych prawdopodobnie wyglądałby raczej jak funkcja logarytmiczna lub potęgowa: szybsze tempo wzrostu u dzieci, które spowalnia u późniejszych nastolatków i „asymptotycznie” zbliża się do maksymalnej wysokości dla młodych dorosłych i starszych.(X=age,Y=height)

Jeśli posortujemy w porządku rosnącym, wykres prawdopodobnie będzie prawie liniowy. Zatem funkcja przewidywania polega na tym, że ludzie stają się wyżsi przez całe życie. Nie postawiłbym pieniędzy na ten algorytm przewidywania. x,y


25
+ 1 - ale upuściłbym „zasadniczo” i ponownie podkreśliłbym „bez znaczenia”.
whuber

12
Zauważ, że OP odnosi się do niezależnego sortowania danych, a nie do ich przetasowania . Jest to subtelna, ale ważna różnica, ponieważ dotyczy obserwowanego „związku”, który można zobaczyć po zastosowaniu danej operacji.
kardynał

3
Jestem zdezorientowany dodanym przez ciebie przykładem. Jeśli jest wiekiem, a jest wzrostem, wówczas obie zmienne są już uporządkowane: wiek ani wzrost nikogo nigdy się nie zmniejsza. Sortowanie nie miałoby więc żadnego efektu. DW do @JakeWestfall, który skomentował, że podoba mu się ten przykład. Możesz wytłumaczyć? xy
ameba

12
@amoeba Trywialny zestaw danych: przeciętny nastolatek, centrum NBA w połowie lat 30., przeciętna kobieta w podeszłym wieku. Po posortowaniu algorytm przewidywania jest taki, że najstarszy jest najwyższy.
d0rmLife,

1
@amoeba Rozumiem, jak można to tak interpretować.
d0rmLife,

40

Zróbmy to naprawdę oczywiste i proste. Załóżmy, że przeprowadzam eksperyment, w którym odmierzam 1 litr wody w znormalizowanym pojemniku i patrzę na ilość wody pozostałej w pojemniku w funkcji czasu , utraty wody z powodu parowania:Viti

Załóżmy teraz, że otrzymuję następujące pomiary w godzinach i litrach: Są to oczywiście doskonale skorelowane (i hipotetyczne) dane. Ale gdybym posortował pomiary czasu i objętości, Wniosek z tego posortowanego zestawu danych jest taki, że wraz ze wzrostem czasu wzrasta objętość wody, a ponadto, począwszy od 1 litra wody, można uzyskać po 5 godzinach oczekiwania, więcej niż 1 litr wody. Czy to nie jest niezwykłe? Wniosek jest nie tylko odwrotny do tego, co mówią oryginalne dane, ale także sugeruje, że odkryliśmy nową fizykę! (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).

5
Miły intuicyjny przykład! Z wyjątkiem ostatniej linii. Przy oryginalnych danych uzyskalibyśmy po pewnym czasie ujemną objętość, co jest równie dobrze nową fizyką. Tak naprawdę nigdy nie można ekstrapolować regresji.
Jongsma,

22

Jest to prawdziwa sztuka i wymaga prawdziwego zrozumienia psychologii, aby przekonać niektórych ludzi o błędach ich postępowania. Poza wszystkimi powyższymi doskonałymi przykładami, użyteczną strategią jest czasem wykazanie, że wiara danej osoby prowadzi do niespójności z nią samą. Lub spróbuj tego podejścia. Dowiedz się, o czym tak mocno wierzy szef, na przykład o tym, jak osoby wykonują zadanie Y, nie ma związku z ilością posiadanego atrybutu X. Pokaż, jak podejście własnego szefa doprowadziłoby do zakończenia silnego związku między X i Y. Wykorzystaj przekonania polityczne / rasowe / religijne.

Nieważność twarzy powinna wystarczyć. Co za uparty szef. W międzyczasie szukaj lepszej pracy. Powodzenia.


12

Jeszcze jeden przykład. Wyobraź sobie, że masz dwie zmienne, jedną związaną z jedzeniem czekolady i drugą związaną z ogólnym samopoczuciem. Masz próbkę dwóch, a Twoje dane wyglądają jak poniżej:

chocolateno happinessno chocolatehappiness

Jaki jest stosunek czekolady do szczęścia na podstawie Twojej próbki? A teraz zmień kolejność jednej z kolumn - jaka jest relacja po tej operacji?

Do tego samego problemu można podejść inaczej. Powiedz, że masz większą próbkę, z pewną liczbą przypadków i mierzysz dwie zmienne ciągłe: zużycie czekolady dziennie (w gramach) i szczęście (wyobraź sobie, że masz jakiś sposób, aby ją zmierzyć). Jeśli jesteś zainteresowany, czy są one ze sobą powiązane, możesz zmierzyć korelację lub zastosować model regresji liniowej, ale czasami w takich przypadkach ludzie po prostu dzielą jedną zmienną na dychotomię i używają jej jako czynnika grupującego z testem ( nie jest to najlepszy i nietzalecane podejście, ale pozwól mi użyć go jako przykładu). Dzielisz więc próbkę na dwie grupy: o wysokim zużyciu czekolady i niskim zużyciu czekolady. Następnie porównujesz średnie szczęście w obu grupach. Teraz wyobraź sobie, co by się stało, gdybyś posortował zmienną szczęścia niezależnie od zmiennej grupującej: wszystkie przypadki z wysokim szczęściem przejdą do grupy o wysokim zużyciu czekolady, a wszystkie przypadki o niskim poziomie szczęścia trafią do grupy o niskim zużyciu czekolady - czy taki test hipotez miałby jakiś sens? Można to łatwo ekstrapolować na regresję, jeśli wyobrażasz sobie, że zamiast dwóch grup spożywających czekoladę masz takich grup, po jednej dla każdego uczestnika (zauważ, że test jest związany z regresją).Nt

W regresji lub korelacji dwuwymiarowej interesują nas parami relacje między każdą wartością i wartością , zmiana kolejności obserwacji niszczy tę zależność. Jeśli posortujesz obie zmienne, to zawsze spowoduje, że będą one bardziej pozytywnie skorelowane ze sobą, ponieważ zawsze będzie tak, że jeśli jedna ze zmiennych wzrośnie, druga również się zwiększy (ponieważ są one posortowane!).iXiY

Zauważ, że czasami faktycznie jesteśmy zainteresowani zmianą kolejności spraw, robimy to w metodach ponownego próbkowania . Na przykład możemy celowo przetasować obserwacje wiele razy, aby dowiedzieć się czegoś o zerowym rozkładzie naszych danych (jak wyglądałyby nasze dane, gdyby nie istniały relacje parami), a następnie możemy porównać, czy nasze rzeczywiste dane są lepsze niż losowo przetasowane. To, co robi twój menedżer, jest dokładnie odwrotne - celowo zmusza obserwacje do posiadania sztucznej struktury, w której nie było żadnej struktury, co prowadzi do fałszywych korelacji.


8

Prosty przykład, który być może twój kierownik może zrozumieć:

Załóżmy, że masz Monetę Y i Monetę X, i odwracasz każdą z nich 100 razy. Następnie chcesz przewidzieć, czy zdobycie głów za pomocą Monety X (IV) może zwiększyć szansę na zdobycie głów za pomocą Monety Y (DV).

Bez sortowania związek nie będzie żadnego, ponieważ wynik Monety X nie powinien wpływać na wynik Monety Y. Dzięki sortowaniu relacja będzie prawie idealna.

Jak sensowne jest stwierdzenie, że masz dużą szansę na trafienie monetą w monetę, jeśli właśnie rzuciłeś monetą inną monetą?


1
Potrzebuje tłumaczenia na dowolną walutę oprócz tej, którą zakładasz. (Wiem, że jest to całkowicie trywialny sprzeciw i łatwo jest rozwiązać każdy problem, ale czasami warto podkreślić, że jest to forum międzynarodowe.)
Nick Cox,

8

Ta technika jest naprawdę niesamowita. Znajduję wszelkiego rodzaju związki, których nigdy nie podejrzewałem. Na przykład nie podejrzewałbym, że liczby, które pojawiają się w loterii Powerball, która jest ROSZCZONA, są losowe, w rzeczywistości są bardzo skorelowane z ceną otwarcia akcji Apple tego samego dnia! Ludzie, myślę, że wkrótce zarobimy. :)

> 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

Hmm, wydaje się, że nie ma znaczącego związku. ALE przy użyciu nowej, ulepszonej techniki:

> 
> 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

UWAGA: To nie jest poważna analiza. Po prostu pokaż swojemu menedżerowi, że mogą powiązać WSZYSTKIE dwie zmienne istotnie powiązane, jeśli posortujesz je obie.


6

Wiele dobrych przykładów liczników tutaj. Pozwólcie, że dodam akapit o istocie problemu.

Szukasz korelacji między a . Oznacza to, że zarówno i wydają się być duże dla tego samego i małe dla tego samego . Tak więc korelacja jest właściwością połączoną z , połączoną z i tak dalej. Sortując niezależnie i (w większości przypadków) tracisz parowanie. nie będzie już sparowany z . Zatem korelacja posortowanych wartości nie mierzy połączenia między iXiYiXYiiX1Y1X2Y2XYX1Y1X1Y1 którego szukasz.

Właściwie dodam akapit o tym, dlaczego to „działa”.

Kiedy sortujesz obie listy, nazwijmy nową posortowaną listę , i tak dalej, będzie najmniejszą wartością , a będzie najmniejszą wartością Y. będzie największym i będzie największym . Następnie sprawdzasz nowe listy, jeśli występują małe i duże wartości. Oznacza to, że pytasz, czy jest małe, gdy jest małe. Czy duże, gdy jest duże? Oczywiście odpowiedź brzmi „tak” i oczywiście uzyskamy prawie idealną korelację. Czy to coś mówi oX b X a X Y a X z XXaXbXaXYaXzXYzYXaYaXzYzX1związek z ? Nie.Y1


6

W rzeczywistości opisany test (tj. Sortuj wartości X i wartości Y niezależnie i regresuj jedną względem drugiej) CZY testuje coś, zakładając, że próbki (X, Y) są próbkowane jako niezależne pary z rozkładu dwuwymiarowego. To po prostu nie jest test tego, co twój menedżer chce przetestować. W zasadzie sprawdza liniowość wykresu QQ, porównując rozkład brzeżny Xs z rozkładem brzeżnym Ys. W szczególności „dane” spadną blisko linii prostej, jeśli gęstość Xs (f (x)) jest powiązana z gęstością Ys (g (y)) w ten sposób:

f(x)=g((ya)/b) dla niektórych stałych i . To stawia ich w rodzinie o skali lokalizacji. Niestety nie jest to metoda uzyskiwania prognoz ...ab>0


4

Dziwne, że najbardziej oczywisty kontrprzykład nadal nie występuje wśród odpowiedzi w najprostszej formie.

Niech .Y=X

Jeśli sortujesz zmienne osobno i dopasowujesz model regresji do takich danych, powinieneś uzyskać coś w rodzaju (ponieważ podczas sortowania zmiennych, większe wartości jednej muszą odpowiadać większym wartościom drugiej).Y^X

Jest to swego rodzaju „bezpośrednia odwrotność” wzoru, który być może zechcesz tutaj znaleźć.


Czy możesz wyjaśnić, do jakiego twierdzenia jest to kontrprzykład?
whuber

Twierdzenie menedżera, że ​​można „przez cały czas uzyskiwać lepsze regresje” poprzez niezależne sortowanie danych wejściowych i wyjściowych.
KT.

Dziękuję Ci. Nie rozumiem jednak, dlaczego twój przykład to obala: w obu przypadkach , więc regresje są równie „dobre”. R2=1
whuber

Spróbuj zmierzyć ten na zestawie podtrzymującym. R2
KT.

1
Zauważ też, że wydaje mi się dziwne, że wydajesz się źle rozumieć mój przykład, ignorując wszystkie inne odpowiedzi tutaj. Wszystkie pokazują przykłady modeli, które byłyby niepoprawnie dopasowane przy zastosowaniu podejścia „sortowania”, pomimo faktu, że prawdopodobnie mają lepsze na zestawie treningowym, jeśli są posortowane. Pomyślałem, że rozważenie może być bardziej intuicyjne niż większość innych przykładów tutaj ze względu na jego prostotę i oczywiste niedopasowanie uzyskanych wyników. R2Y=X
KT.

3

Masz rację. Twój menedżer znalazłby „dobre” wyniki! Ale są bez znaczenia. Kiedy sortujesz je niezależnie, zyskujesz, że oba zwiększają się lub zmniejszają podobnie, co daje pozór dobrego modelu. Ale dwie zmienne zostały pozbawione ich rzeczywistej relacji i model jest niepoprawny.


3

To fabuła QQ, prawda? Użyłbyś go do porównania rozkładu x vs. y. Jeśli narysujesz posortowane wyniki relacji takie jak , wykres byłby krzywy, co wskazuje, że i dla niektórych próbek mają różne rozkłady.xx2xx2x

Regresja liniowa jest zwykle mniej rozsądna (istnieją wyjątki, zobacz inne odpowiedzi); ale geometria ogonów i rozkład błędów pokazuje, jak daleko od podobnych rozkładów są.


2

Mam prostą intuicję, dlaczego tak naprawdę jest to dobry pomysł, jeśli funkcja jest monotonna :

Wyobraź sobie, że znasz dane wejściowe i są one uszeregowane, tj. i zakładamy, że jest nieznaną funkcją, którą chcemy oszacować. Możesz zdefiniować losowy model gdzie są niezależnie próbkowane w następujący sposób: gdzie jest równomiernie próbkowany z dyskretnego ustaw . Tutaj kontroluje wariancję. Na przykład nie powoduje hałasu, a daje niezależne wejścia i wyjścia.x1,x2,,xnxi<xi+1f:yi=f(xi)+εiεi

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

Mając na uwadze ten model, proponowana metoda „sortowania” twojego szefa ma doskonały sens: jeśli uszeregujesz dane, w jakiś sposób zmniejszysz ten rodzaj hałasu, a oszacowanie powinno być lepsze przy łagodnych założeniach.f

W rzeczywistości bardziej zaawansowany model zakłada, że są zależne, więc nie możemy obserwować 2 razy tego samego wyniku. W takim przypadku metoda sortowania może być nawet optymalna. Może to mieć silny związek z losowymi modelami rankingowymi, takimi jak losowe permutacje Mallow.εi

PS: Wydaje mi się niesamowite, jak pozornie proste pytanie może prowadzić do interesujących nowych sposobów ponownego przemyślenia modelu standardów. Proszę, dziękuję szefie!


1
Jak definiuje się gdy lub ? i + δ < 1 i + δ > nxi+δi+δ<1i+δ>n
Juho Kokkala,

2

Załóżmy, że masz te punkty na okręgu o promieniu 5. Obliczasz korelację:

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

Następnie posortuj wartości x i y i ponownie wykonaj korelację:

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

Dzięki tej manipulacji zmieniasz zestaw danych z korelacją 0,0 na jeden z korelacją 1,0. To jest problem.


1

Pozwól mi zagrać tutaj w Adwokata diabła. Sądzę, że wiele odpowiedzi przekonywało, że procedura szefa jest zasadniczo błędna. Jednocześnie proponuję kontrprzykład, który pokazuje, że szef mógł rzeczywiście zaobserwować poprawę wyników przy tej błędnej transformacji.

Myślę, że uznanie, że ta procedura mogła „zadziałać” dla szefa, może rozpocząć bardziej przekonujący argument: Jasne, zadziałało, ale tylko w tych szczęśliwych okolicznościach, które zwykle nie są w stanie wytrzymać. Następnie możemy pokazać - jak w doskonale przyjętej odpowiedzi - jak źle może być, gdy nie mamy szczęścia. Który jest przez większość czasu. W izolacji, pokazując szefa jak źle może być nie może przekonać go, ponieważ może on widziałem przypadek, gdy to robi poprawić rzeczy, a postać, że nasza wyobraźnia argument musi mieć wadę gdzieś.

Znalazłem te dane w Internecie i na pewno wydaje się, że regresja jest poprawiona przez niezależne sortowanie X i Y, ponieważ: a) dane są bardzo pozytywnie skorelowane, i b) OLS naprawdę nie radzi sobie z ekstremalnymi (wysokie -średnie) wartości odstające. Wysokość i waga mają korelację 0,19 z zawartą wartością odstającą, 0,77 z wyłączeniem wartości odstającej i 0,78 z X i Y niezależnie posortowanymi.

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")

wprowadź opis zdjęcia tutaj

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

wprowadź opis zdjęcia tutaj

Wydaje mi się więc, że model regresji w tym zestawie danych został ulepszony przez niezależne sortowanie (czarna kontra czerwona linia na pierwszym wykresie) i istnieje widoczna zależność (czarna kontra czerwona na drugim wykresie), ze względu na szczególny zestaw danych wysoce (pozytywnie) skorelowane i posiadające odpowiedni rodzaj wartości odstających, które szkodzą regresji bardziej niż tasowanie, które występuje, gdy niezależnie sortujesz x i y.

Ponownie, nie powiedzenie samodzielnego sortowania nie ma w ogóle nic sensownego, ani że jest to poprawna odpowiedź tutaj. Tylko że szef mógł zobaczyć coś takiego, co zdarzyło się działać w odpowiednich okolicznościach.


1
Wygląda na czysty zbieg okoliczności, że osiągnąłeś podobne współczynniki korelacji. Ten przykład nie wydaje się pokazywać niczego na temat związku między danymi oryginalnymi i niezależnie posortowanymi danymi.
whuber

2
@whuber: Co powiesz na drugi wykres? Wydaje mi się, że jeśli oryginalne dane są wysoce skorelowane, ich sortowanie może tylko tasować wartości, zachowując pierwotną relację +/-. Z kilkoma wartościami odstającymi, sprawy układają się jeszcze bardziej, ale ... Przepraszam, nie mam kotletów matematycznych, które mogłyby pójść dalej.
Wayne

1
Myślę, że intuicja, którą wyrażasz, jest prawidłowa, Wayne. Logika pytania - tak jak je interpretuję - dotyczy tego, co możesz powiedzieć o oryginalnych danych na podstawie samego wykresu rozrzutu posortowanych zmiennych. Odpowiedź brzmi: absolutnie nic poza tym, co można wywnioskować z ich oddzielnych (jednowymiarowych) rozkładów. Chodzi o to, że czerwone kropki na drugim wykresie są spójne nie tylko z wyświetlanymi danymi, ale także ze wszystkimi astronomicznie ogromnymi liczbami innych permutacji tych danych - i nie masz możliwości dowiedzieć się, która z tych permutacji jest prawy.
whuber

2
@ whuber Myślę, że kluczową różnicą jest to, że OP powiedział, że musi „całkowicie zniszczyć” dane. Twoja zaakceptowana odpowiedź pokazuje szczegółowo, jak to jest w ogóle. Nie można przekazywać danych traktowanych w ten sposób i mieć pojęcie, czy wynik będzie sensowny. Ale prawdą jest również to, że menedżer mógł wcześniej poradzić sobie z przykładami takimi jak mój (kontr-) przykład i stwierdził, że ta błędna transformacja faktycznie poprawiła wyniki. Możemy więc zgodzić się, że menedżer zasadniczo się pomylił, ale mógł również mieć szczęście - w tym przypadku działa.
Wayne

@whuber: Zredagowałem wprowadzenie do mojej odpowiedzi w sposób, który moim zdaniem nadaje się do dyskusji. Myślę, że uznanie, w jaki sposób procedura szefa mogła dla niego zadziałać, może być pierwszym krokiem w bardziej przekonującym sporze, który zakochuje się w doświadczeniu szefa. Do rozważenia.
Wayne

-7

Jeśli wstępnie wybrał zmienne monotoniczne, to w rzeczywistości jest dość solidny. „Niewłaściwe modele liniowe” Google i „Robin Dawes” lub „Howard Wainer”. Dawes i Wainer rozmawiają o alternatywnych sposobach wyboru współczynników. John Cook ma krótką kolumnę ( http://www.johndcook.com/blog/2013/03/05/robustness-of-equal-weights/ ) na ten temat.


4
To, co Cook omawia w tym poście na blogu, nie jest tym samym, co sortowanie xiy niezależnie od siebie, a następnie dopasowanie modelu regresji do posortowanych zmiennych.
gung

4
To, co robi szef PO, nie polega na „przewidywaniu [y] tego przez FInverse (G (x)), gdzie F i G to pliki pdf Y i X”. Możesz zobaczyć procedurę w kodzie w mojej odpowiedzi.
gung

4
Czy możesz 1. dodać odniesienie do konkretnego artykułu autorstwa Dawesa i / lub Wainera, 2. wyjaśnić, w jaki sposób odnosi się to do procedury sortowania szefa? A może chodzi o to, że jeśli wartość współczynnika nie ma większego znaczenia, dopóki znak jest poprawny, a znak jest prawidłowy z założenia, to nie ma znaczenia, że ​​procedura szefa podaje dziwne wartości współczynników?
Juho Kokkala,

2
1. Odniesienia: - Dawes, RM „Solidne piękno niewłaściwych modeli liniowych w podejmowaniu decyzji”. Amer. Psychol. 34, nr 7 (1979): 571. - Wainer, H. „Szacowanie współczynników w modelach liniowych: nie ma to żadnego znaczenia”. Psych. Byk. 83, nr 2 (1976): 213. - Dawes, RM i Corrigan, B. „Modele liniowe w podejmowaniu decyzji”. Psych. Bull., 81 95-106 (1974) 2. Zarówno Dawes, jak i Wainer pokazują, że przy rzeczywistych danych i rzeczywistych problemach z prognozowaniem przewidywanie przyszłego Y od X z odchyleniami od ich średnich lub przez dopasowanie rang działa całkiem dobrze, i że raczej niewrażliwy na zbocze.
Bill Raynor,

2
Te odniesienia i wyjaśnienia byłyby lepsze w twojej odpowiedzi niż zakopane w komentarzach.
Scortchi

-8

Pomyślałem o tym i pomyślałem, że jest tu jakaś struktura oparta na statystykach zamówień. Sprawdziłem i wydaje mi się, że menadżer nie jest tak szalony, jak się wydaje

Zamów współczynnik korelacji statystyki jako nowatorski pomiar skojarzenia z aplikacjami do analizy Biosignal

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

Proponujemy nowy współczynnik korelacji oparty na statystykach zamówień i nierównościach w przestawianiu. Proponowany współczynnik stanowi kompromis między współczynnikiem liniowym Pearsona a dwoma współczynnikami opartymi na rangach, mianowicie rho Spearmana i tau Kendalla. Pochodne teoretyczne pokazują, że nasz współczynnik ma te same podstawowe właściwości, co trzy klasyczne współczynniki. Badania eksperymentalne oparte na czterech modelach i sześciu sygnałach biologicznych pokazują, że nasz współczynnik działa lepiej niż dwa współczynniki oparte na rangach przy pomiarze asocjacji liniowych; podczas gdy dobrze wykrywa monotoniczne nieliniowe skojarzenia, takie jak dwa współczynniki oparte na rangach. Obszerne analizy statystyczne sugerują również, że nasz nowy współczynnik ma doskonałą odporność na hałas, małą tendencyjność,


14
To nie opisuje tego pytania. Po zastąpieniu danych statystykami zamówień pary danych są nadal połączone, jak zawsze. Pytanie opisuje operację, która niszczy te połączenia, usuwając wszystkie informacje o ich wspólnej dystrybucji.
whuber

Niekoniecznie. Możliwe jest tworzenie (lub zdarzanie się) zbiorów danych, w których niezależne sortowanie nie niszczy wszystkich informacji o prawdopodobieństwie połączenia.
Daniel

5
Podaj nam wyraźny przykład swojego roszczenia, ponieważ trudno jest zrozumieć, jak coś takiego jest nawet matematycznie możliwe, a tym bardziej niemożliwe w praktyce.
whuber

@ whuber: Proszę zobaczyć moją nową odpowiedź, która zawiera prawdziwy zbiór danych, który spełnia twoje pytanie ... Myślę, że.
Wayne
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.