Que se passe-t-il si les variables explicatives et de réponse sont triées indépendamment avant la régression?


302

Supposons que nous ayons un ensemble de données avec points. Nous voulons effectuer une régression linéaire, mais nous trions d’abord les valeurs et indépendamment les unes des autres, en formant un ensemble de données . Existe-t-il une interprétation significative de la régression sur le nouvel ensemble de données? Est-ce que ça a un nom?n X i Y i ( X i , Y j )(Xi,Yi)nXiYi(Xi,Yj)

J'imagine que c'est une question idiote, donc je m'excuse, je ne suis pas formellement formé aux statistiques. Dans mon esprit, cela détruit complètement nos données et la régression n'a pas de sens. Mais mon manager dit qu'il obtient "de meilleures régressions la plupart du temps" (dans ce cas, "mieux" signifie plus prédictif). J'ai l'impression qu'il se trompe lui-même.

EDIT: Merci pour tous vos bons et patients exemples. Je lui ai montré les exemples de @ RUser4512 et @gung et il reste fidèle. Il s'irrite et je m'épuise. Je me sens découragé. Je vais probablement commencer à chercher d'autres emplois bientôt.


120
Mais mon manager dit qu'il obtient "de meilleures régressions la plupart du temps" lorsqu'il le fait. Oh mon dieu ...
Jake Westfall

56
Il n'y a certainement aucune raison pour que vous vous sentiez embarrassé!
Jake Westfall

36
"La science est ce que nous voulons qu'elle soit." - Dr. Leo Spaceman.
Sycorax

52
Cette idée doit rivaliser avec une autre que j'ai rencontrée: Si votre échantillon est petit, regroupez-le simplement avec plusieurs copies des mêmes données.
Nick Cox

47
Tu devrais dire à ton patron que tu as une meilleure idée. Au lieu d'utiliser les données réelles, générez les vôtres, car elles seront plus faciles à modéliser.
dsaxton

Réponses:


147

Je ne suis pas sûr de ce que votre patron pense par "plus prédictif". Beaucoup de gens croient à tort que des valeurs plus basses signifient un modèle mieux / plus prédictif. Ce n'est pas nécessairement vrai (ceci étant un exemple). Cependant, un tri indépendant préalable des deux variables garantira une valeur inférieure . D'autre part, nous pouvons évaluer la précision prédictive d'un modèle en comparant ses prévisions aux nouvelles données générées par le même processus. Je fais cela ci-dessous dans un exemple simple (codé avec ). 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"))

entrez la description de l'image ici

Le graphique en haut à gauche montre les données d'origine. Il existe une relation entre et (à savoir, la corrélation est d'environ ). Le graphique en haut à droite montre à quoi ressemblent les données après avoir trié indépendamment les deux variables. Vous pouvez facilement voir que la force de la corrélation a considérablement augmenté (elle est maintenant d'environ ). Cependant, dans les graphiques inférieurs, nous voyons que la distribution des erreurs prédictives est beaucoup plus proche de pour le modèle formé sur les données d'origine (non triées). L'erreur prédictive absolue moyenne pour le modèle qui a utilisé les données d'origine est de , tandis que l'erreur prédictive absolue moyenne pour le modèle formé sur les données triées est dey .31 .99 0 1.1 1.98 y 68 %xy.31.9901.11.98... presque deux fois plus gros. Cela signifie que les prédictions du modèle de données triées sont beaucoup plus éloignées des valeurs correctes. Le graphique du quadrant inférieur droit est un graphique en points. Il affiche les différences entre l'erreur prédictive avec les données d'origine et avec les données triées. Cela vous permet de comparer les deux prédictions correspondantes pour chaque nouvelle observation simulée. Les points bleus à gauche sont les moments où les données d'origine étaient plus proches de la nouvelle valeur , et les points rouges à droite, les moments où les données triées ont produit de meilleures prévisions. Il y avait des prévisions plus précises à partir du modèle formé sur les données d'origine du temps. y68%


Le degré auquel le tri causera ces problèmes dépend de la relation linéaire qui existe dans vos données. Si la corrélation entre et était déjà , le tri n'aurait aucun effet et ne serait donc pas préjudiciable. Par contre, si la corrélation étaity 1,0 - 1,0xy1.01.0, le tri renverserait complètement la relation, rendant le modèle aussi inexact que possible. Si les données étaient complètement non corrélées à l'origine, le tri aurait un effet néfaste intermédiaire, mais néanmoins assez important, sur la précision prédictive du modèle obtenu. Étant donné que vous indiquez que vos données sont généralement corrélées, je suppose que cela a fourni une certaine protection contre les inconvénients inhérents à cette procédure. Néanmoins, le tri en premier lieu est définitivement dangereux. Pour explorer ces possibilités, nous pouvons simplement réexécuter le code ci-dessus avec différentes valeurs pour B1(en utilisant la même graine pour la reproductibilité) et examiner le résultat:

  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
Votre réponse soulève un très bon point, mais peut-être pas aussi clairement que possible. Ce n'est pas forcément évident pour un profane (comme, par exemple, le responsable du PO) de ce que toutes ces parcelles à la fin (peu importe le code R) montrent et impliquent réellement. OMI, votre réponse pourrait vraiment utiliser un paragraphe explicatif ou deux.
Ilmari Karonen

3
Merci pour votre commentaire, @IlmariKaronen. Pouvez-vous suggérer des choses à ajouter? J'ai essayé de rendre le code aussi explicite que possible, et je l'ai commenté de manière approfondie. Mais il se peut que je ne sois plus capable de voir ces choses avec les yeux de quelqu'un qui n'est pas familier avec ces sujets. Je vais ajouter du texte pour décrire les graphiques en bas. Si vous pouvez penser à autre chose, s'il vous plaît faites le moi savoir.
gung

13
+1 C’est toujours la seule réponse possible à la situation proposée: lorsque deux variables présentent déjà une association positive, c’est néanmoins une erreur que de régresser les valeurs triées indépendamment. Toutes les autres réponses supposent qu’il n’ya pas d’association ou qu’elle est en fait négative. Bien que ce soient de bons exemples, puisqu'ils ne s'appliquent pas, ils ne seront pas convaincants. Ce qui nous fait encore défaut, c’est cependant un exemple intuitif de données du monde réel, intuitives, comme celles simulées ici, où la nature de l’erreur est gênante.
whuber

8
+1 pour ne pas avoir été influencé par l'orthodoxie et avoir utilisé "=" pour l'attribution dans R.
dsaxton

@dsaxton, j’utilise <-parfois, mais mon objectif sur CV est d’écrire le code R le plus près possible du pseudocode afin qu’il soit plus lisible par des personnes qui ne sont pas familières. R. =est assez universel parmi les langages de programmation en tant qu’opérateur. .
gung

103

Si vous voulez convaincre votre patron, vous pouvez montrer ce qui se passe avec des données simulées, aléatoires et indépendantes . Avec R:x,yentrez la description de l'image ici

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

De toute évidence, les résultats triés offrent une régression beaucoup plus agréable. Cependant, étant donné le processus utilisé pour générer les données (deux échantillons indépendants), il n’ya absolument aucune chance qu’un puisse être utilisé pour prédire l’autre.


8
C’est presque comme tous les internautes "avant vs après" les annonces :)
Tim

C'est un bon exemple, mais il ne pense pas que cela le convaincra, car nos données ont une corrélation positive avant le tri. Le tri ne fait que "renforcer" la relation (même si elle est incorrecte).
utilisateur arbitraire

17
@arbitraryuser: Les données triées indiqueront toujours une corrélation positive (bien que non négative), quelle que soit la corrélation existante , le cas échéant. Si vous savez de toute façon que les données d'origine ont toujours une corrélation positive, alors elles sont "correctes par accident" - mais pourquoi ne pas chercher à vérifier la corrélation, si vous savez déjà qu'elle est présente et positive de toute façon? Le test exécuté par votre responsable est un peu comme un "détecteur de qualité de l'air" qui dit toujours "air détectable détecté" - il fonctionne parfaitement tant que vous ne le faites jamais à un endroit où il n'y a pas d'air respirable.
Ilmari Karonen

2
@arbitraryuser Un autre exemple que vous pourriez trouver plus persuasif est de prendre x = 0: 50 et y = 0: -50, une ligne parfaite avec une pente -1. Si vous les triez, la relation devient une ligne parfaite avec la pente 1. Si la vérité est que vos variables varient parfaitement et que vous formulez une prescription de politique basée sur votre perception erronée qu'elles varient parfaitement, vous serez faire exactement la mauvaise chose.
John Rauser

99

Votre intuition est correcte: les données triées indépendamment n'ont pas de signification fiable car les entrées et les sorties sont mappées de manière aléatoire les unes aux autres plutôt que la relation observée.

Il y a une (bonne) chance que la régression sur les données triées paraisse bien, mais cela n'a pas de sens en contexte.

Exemple intuitif: supposons un ensemble de données pour une population donnée . Le graphique des données non falsifiées ressemblerait probablement à une fonction logarithmique ou de pouvoir: des taux de croissance plus rapides pour les enfants qui ralentissent pour les adolescents ultérieurs et approchent "asymptotiquement" de la taille maximale pour les adultes jeunes et plus âgés.(X=age,Y=height)

Si nous trions en ordre croissant, le graphique sera probablement presque linéaire. Ainsi, la fonction de prédiction est que les personnes grandissent toute leur vie. Je ne parierais pas d'argent sur cet algorithme de prédiction. x,y


25
+ 1 - mais je laisserais tomber le mot "essentiellement" et réaffirmerais le mot "sans signification".
whuber

12
Notez que l'OP fait référence au tri indépendant des données, par opposition à leur réorganisation . C'est une différence subtile mais importante en ce qui concerne ce que la "relation" observée devrait être vue après l'application de l'opération donnée.
cardinal

3
xy

12
@amoeba Trivial data set: adolescent moyen, centre NBA au milieu de la trentaine, femme moyenne âgée. Après avoir trié l’algorithme de prédiction, c’est que le plus ancien est le plus grand.
d0rmLife

1
@ amoeba Je vois comment cela pourrait être interprété comme ça, je vais clarifier.
d0rmLife

40

Viti

(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).
Et la conclusion de cet ensemble de données triées est que, à mesure que le temps augmente, le volume d'eau augmente et qu'en outre, à partir de 1 litre d'eau, vous obtenez après 5 heures d'attente plus de 1 litre d'eau. N'est-ce pas remarquable? Non seulement la conclusion est l'inverse de ce que disent les données originales, mais elle suggère également que nous avons découvert une nouvelle physique!

5
Bel exemple intuitif! Sauf pour la dernière ligne. Avec les données originales, nous aurions un volume négatif après le temps, ce qui constitue tout aussi bien une nouvelle physique. Vous ne pouvez jamais vraiment extrapoler une régression.
Jongsma

22

C’est un art et une compréhension réelle de la psychologie est nécessaire pour convaincre certaines personnes de l’erreur de leur part. Outre tous les excellents exemples ci-dessus, une stratégie utile consiste parfois à montrer que la conviction d'une personne conduit à une incohérence avec elle-même. Ou essayez cette approche. Trouvez quelque chose que votre patron croit fermement, par exemple la manière dont les personnes s’acquittent de la tâche. Y n’a aucune relation avec la quantité d’un attribut X qu’elles possèdent. Montrez comment la propre approche de votre patron pourrait mener à la conclusion d'une association forte entre X et Y. Capitaliser sur les convictions politiques / raciales / religieuses.

L'invalidité de la face aurait dû suffire. Quel patron têtu. Être à la recherche d'un meilleur travail dans l'intervalle. Bonne chance.


12

Un autre exemple. Imaginez que vous avez deux variables, l'une liée à la consommation de chocolat et l'autre liée au bien-être général. Vous avez un échantillon de deux et vos données sont comme ci-dessous:

chocolateno happinessno chocolatehappiness

Quelle est la relation entre le chocolat et le bonheur en fonction de votre échantillon? Et maintenant, changez l'ordre d'une des colonnes - quelle est la relation après cette opération?

tNt

iXiY

Notez que nous sommes parfois intéressés à changer l'ordre des cas, nous le faisons également dans les méthodes de rééchantillonnage . Par exemple, nous pouvons délibérément mélanger les observations plusieurs fois pour en apprendre davantage sur la distribution nulle de nos données (à quoi ressembleraient nos données s'il n'y avait pas de relations par paires), puis nous pourrons comparer si nos données réelles sont de toute façon meilleures que les données aléatoires. mélangé. Ce que fait votre responsable, c'est exactement le contraire: il force intentionnellement les observations à avoir une structure artificielle là où il n'y en a pas, ce qui conduit à des corrélations factices.


8

Un exemple simple que votre responsable pourrait peut-être comprendre:

Supposons que vous avez Coin Y et Coin X, et que vous les retournez 100 fois. Ensuite, vous voulez prédire si une tête avec Pièce X (IV) peut augmenter les chances d’obtenir une tête avec Pièce Y (DV).

Sans tri, la relation sera nulle, car le résultat de Coin X ne devrait pas affecter le résultat de Coin Y. Avec le tri, la relation sera presque parfaite.

En quoi est-il logique de conclure que vous avez de bonnes chances d'obtenir un coup de tête si vous venez de retourner une tête avec une pièce de monnaie différente?


1
Nécessite une traduction pour toute devise autre que celle que vous supposez. (Je sais que c'est une objection tout à fait triviale, et qu'il est facile de résoudre tout problème, mais il est parfois intéressant de souligner qu'il s'agit d'un forum international.)
Nick Cox

8

Cette technique est réellement incroyable. Je trouve toutes sortes de relations que je n'avais jamais soupçonnées. Par exemple, je n'aurais pas soupçonné que les numéros figurant dans la loterie Powerball, dont il est RÉCLAMÉ qu'ils soient aléatoires, sont en réalité fortement corrélés au cours d'ouverture des actions Apple le même jour! Les gens, je pense que nous sommes sur le point de gagner beaucoup d'argent. :)

> 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, ne semble pas avoir une relation significative. MAIS en utilisant la nouvelle technique améliorée:

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

NOTE: Ceci n'est pas censé être une analyse sérieuse. Il suffit de montrer à votre responsable qu’il peut associer TOUTE deux variables de manière significative si vous les triez toutes les deux.


6

Beaucoup de bons exemples de compteur ici. Permettez-moi d'ajouter un paragraphe sur le cœur du problème.

XiYiXYiiX1Y1X2Y2XYX1Y1X1Y1

En fait, permettez-moi d'ajouter un paragraphe expliquant pourquoi cela "fonctionne" également.

XaXbXaXYaXzXYzYXaYaXzYzX1Y1


6

En fait, le test décrit (c.-à-d. Trie les valeurs X et Y indépendamment et régresse l'une contre l'autre) teste quelque chose, en supposant que les (X, Y) sont échantillonnés sous forme de paires indépendantes à partir d'une distribution à deux variables. Ce n'est tout simplement pas un test de ce que votre manager veut tester. Il s'agit essentiellement de vérifier la linéarité d'un graphique QQ, en comparant la distribution marginale des X à la distribution marginale des Y. En particulier, les «données» tomberont près d'une droite si la densité des Xs (f (x)) est liée à la densité des Ys (g (y)) de la manière suivante:

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


4

Étrange que le contre-exemple le plus évident ne soit toujours pas présent parmi les réponses dans sa forme la plus simple.

Y=X

Y^X

C’est un genre d’inverse direct du modèle que vous voudrez peut-être trouver ici.


Pourriez-vous expliquer à quelle affirmation il s'agit d'un contre-exemple?
whuber

L'assertion du responsable selon laquelle vous pouvez "obtenir de meilleures régressions à tout moment" en triant les entrées et les sorties de manière indépendante.
KT.

R2=1

R2

1
R2Y=X

3

Tu as raison. Votre responsable trouverait de "bons" résultats! Mais ils ne veulent rien dire. Ce que vous obtenez lorsque vous les triez indépendamment est que les deux augmentent ou diminuent de la même façon, ce qui donne un semblant de bon modèle. Mais les deux variables ont été dépouillées de leur relation réelle et le modèle est incorrect.


3

xx2xx2x

La régression linéaire est généralement moins raisonnable (des exceptions existent, voir autres réponses); mais la géométrie des queues et de la distribution des erreurs vous indique à quel point les distributions sont similaires.


2

J'ai une simple intuition pour laquelle c'est en fait une bonne idée si la fonction est monotone :

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

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

f

εi

PS: Je trouve incroyable de voir comment une question apparemment simple peut conduire à de nouvelles façons intéressantes de repenser le modèle de normes. S'il vous plaît merci patron!


1
xi+δi+δ<1i+δ>n

2

Disons que vous avez ces points sur un cercle de rayon 5. Vous calculez la corrélation:

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

Ensuite, vous triez vos valeurs x et y et effectuez à nouveau la corrélation:

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

Par cette manipulation, vous modifiez un jeu de données avec une corrélation 0.0 à un avec une corrélation 1.0. C'est un problème.


1

Permettez-moi de jouer à l'avocat du diable ici. Je pense que de nombreuses réponses ont démontré de manière convaincante que la procédure du chef est fondamentalement erronée. En même temps, je propose un contre-exemple qui montre que le patron a peut-être vu les résultats s'améliorer avec cette transformation erronée.

Je pense que le fait de reconnaître que cette procédure aurait pu "fonctionner" pour le patron pourrait engager un argument plus convaincant: bien sûr, cela a fonctionné, mais uniquement dans ces circonstances chanceuses qui ne tiennent généralement pas. Ensuite, nous pouvons montrer - comme dans l’excellente réponse acceptée - à quel point il peut être désagréable de ne pas être chanceux. Ce qui est la plupart du temps. Dans l' isolement, montrant le patron à quel point il peut être peut - être pas le persuader parce qu'il aurait pu voir un cas où il fait améliorer les choses, et la figure que notre argumentation de fantaisie doit avoir une faille quelque part.

J’ai trouvé ces données en ligne et, bien sûr, il semble que la régression soit améliorée par le tri indépendant de X et Y, car: a) les données sont très corrélées positivement, et b) les MCO ne fonctionnent vraiment pas bien avec les valeurs extrêmes. hors boissons). La taille et le poids ont une corrélation de 0,19 avec la valeur aberrante incluse, de 0,77 avec la valeur aberrante exclue et de 0,78 avec X et Y triés indépendamment.

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

entrez la description de l'image ici

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

entrez la description de l'image ici

Il me semble donc que le modèle de régression sur cet ensemble de données est amélioré par le tri indépendant (ligne noire par opposition à ligne rouge dans le premier graphique) et qu'il existe une relation visible (noir par rapport à rouge dans le second graphique), en raison de la fortement corrélé (positivement) et ayant le bon type de valeurs aberrantes qui nuit davantage à la régression qu'au brassage qui se produit lorsque vous triez indépendamment x et y.

Encore une fois, ne pas dire que le tri indépendant fait quelque chose de sensé en général, ni que c'est la bonne réponse ici. Juste que le patron ait peut-être vu quelque chose comme ça qui s'est avéré fonctionner dans les bonnes circonstances.


1
Cela semble être une pure coïncidence si vous êtes arrivé à des coefficients de corrélation similaires. Cet exemple ne semble en aucun cas illustrer une relation entre les données originales et les données triées indépendamment.
whuber

2
@whuber: Qu'en est-il du deuxième graphique? Je pense que si les données d'origine sont fortement corrélées, les trier peut ne mélanger qu'un peu les valeurs, préservant ainsi la relation d'origine +/-. Avec deux ou trois valeurs aberrantes, les choses se réarrangent davantage, mais ... Désolé, je n'ai pas la maturité mathématique pour aller plus loin que cela.
Wayne

1
Je pense que l'intuition que vous exprimez est correcte, Wayne. La logique de la question - telle que je l'interprète - concerne ce que vous pouvez dire sur les données d'origine basées sur le diagramme de dispersion des seules variables triées. La réponse est absolument rien au-delà de ce que vous pouvez déduire de leurs distributions séparées (univariées). Le point est que les points rouges dans votre deuxième graphique sont compatibles non seulement avec les données que vous montrer, mais aussi avec tout le astronomiquement énorme de nombre d' autres permutations de ces données - et vous avez aucun moyen de savoir qui de ces permutations est le le bon.
whuber

2
@whuber Je pense que la distinction clé ici est que le PO a déclaré qu'il devait "détruire complètement" les données. Votre réponse acceptée montre en détail comment c'est le cas, en général. Vous ne pouvez pas recevoir les données traitées de cette manière et avoir aucune idée si le résultat aura un sens. MAIS, il est également vrai que le responsable aurait pu traiter d’exemples tels que le (mon) exemple et avoir constaté que cette transformation malavisée avait amélioré les résultats. Nous pouvons donc convenir que le responsable s’est fondamentalement trompé, mais qu’il aurait peut-être aussi eu beaucoup de chance - et dans le cas de la chance, cela fonctionne.
Wayne

@whuber: J'ai modifié l'introduction de ma réponse d'une manière qui, à mon avis, la rend pertinente pour la discussion. Je pense que reconnaître que la procédure du patron aurait pu fonctionner pour lui pourrait être une première étape dans un argument plus persuasif qui va à l’encontre de l’expérience du patron. Pour votre considération.
Wayne

-7

S'il a présélectionné les variables comme étant monotones, c'est en fait assez robuste. Google "modèles linéaires impropres" et "Robin Dawes" ou "Howard Wainer." Dawes et Wainer parlent d’autres moyens de choisir des coefficients. John Cook a publié une courte rubrique ( http://www.johndcook.com/blog/2013/03/05/robustness-of-equal-weights/ ).


4
Ce que Cook aborde dans cet article de blog n'est pas la même chose que trier x et y indépendamment l'un de l'autre puis ajuster un modèle de régression aux variables triées.
gung

4
Ce que le responsable du PO est en train de faire, ce n’est pas "de prédire le comportement de FInverse (G (x)), où F et G sont les ecdfs de Y et X". Vous pouvez voir la procédure dans le code dans ma réponse.
gung

4
Pouvez-vous 1. ajouter une référence à un article particulier de Dawes et / ou de Wainer, 2. préciser son lien avec la procédure de tri du patron? Ou bien est-ce simplement que si la valeur du coefficient importe peu tant que le signe est correct et que le signe est correct par hypothèse, il importe peu que la procédure du patron donne des valeurs étranges pour les coefficients?
Juho Kokkala

2
1. Les références: - Dawes, RM "La beauté des modèles linéaires inappropriés dans la prise de décision." Amer. Psychol. 34, non. 7 (1979): 571. - Wainer, H. "Estimation des coefficients dans les modèles linéaires: cela ne fait pas de hasard." Psych. Taureau. 83, non. 2 (1976): 213. - Dawes, RM, & Corrigan, B. "Modèles linéaires dans la prise de décision". Psych. Bull., 81 95-106 (1974) 2. Dawes et Wainer montrent que, si on dispose de données réelles et de problèmes de prédiction réels, prédire le futur Y à partir de X avec des écarts par rapport à leurs moyennes ou en faisant correspondre les rangs fonctionne assez bien, ce qui est plutôt insensible à la pente.
Bill Raynor

2
Ces références et explications seraient meilleures dans votre réponse plutôt que d'être enterrées dans des commentaires.
Scortchi

-8

J'y ai pensé et j'ai pensé qu'il existe une structure basée sur les statistiques des commandes. J'ai vérifié, et il semble que le directeur ne soit pas aussi fou que ça en a l'air

Coefficient De Corrélation Statistiques Ordres Comme Une Nouvelle Association Mesure Avec Des Applications à L'analyse Du 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/0912f50a6c6.66)

Nous proposons un nouveau coefficient de corrélation basé sur les statistiques d'ordre et l'inégalité de réarrangement. Le coefficient proposé représente un compromis entre le coefficient linéaire de Pearson et les deux coefficients basés sur les rangs, à savoir le rho de Spearman et le tau de Kendall. Les dérivations théoriques montrent que notre coefficient possède les mêmes propriétés de base que les trois coefficients classiques. Des études expérimentales basées sur quatre modèles et six biosignaux montrent que notre coefficient fonctionne mieux que les deux coefficients basés sur le rang lors de la mesure d'associations linéaires; alors qu'il est bien capable de détecter des associations monotones non linéaires comme les deux coefficients basés sur les rangs. Des analyses statistiques approfondies suggèrent également que notre nouveau coefficient a une robustesse anti-bruit supérieure, une faible biais,


14
Ce n'est pas ce que la question décrit. Lorsque les données sont remplacées par des statistiques d'ordre, les paires de données sont toujours connectées comme elles l'ont toujours été. La question décrit une opération qui détruit ces connexions en effaçant toutes les informations relatives à leur distribution conjointe.
whuber

Pas nécessairement. Possible de construire (ou de se produire sur) des ensembles de données où un tri indépendant ne détruit pas toutes les informations sur la probabilité conjointe.
Daniel

5
S'il vous plaît, donnez-nous un exemple explicite de votre demande, car il est difficile de voir en quoi une telle chose est même mathématiquement possible, encore moins dans la pratique.
whuber

@whuber: S'il vous plaît voir ma nouvelle réponse, qui a un ensemble de données réel qui répond à votre question ... Je pense.
Wayne
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.