Frage:
Wie kann ich eine Ordnungsvariable visualisieren, die ein kontinuierliches Ergebnis vorhersagt?
762
2019-09-24 12:06:44 UTC
view on stackexchange narkive permalink

Wie lässt sich die Beziehung zwischen einem ordinalen Prädiktor und einem kontinuierlichen Ergebnis am besten visualisieren?

Bisher habe ich das Folgende, aber ich habe das Gefühl, dass dies fehlt ...

Enter image description here

So wie ich es modelliert habe, habe ich den Ordnungsprädiktor als Intervall anstatt als kategorial behandelt.Wenn dies nicht der beste Weg ist, um diese Art von Daten zu behandeln, würde ich mich über das Feedback freuen.

1. Gibt es einen bestimmten Grund, sich vorzustellen, dass die Beziehung linear ist?2. Muss tatsächlich eine Kurve oder Linie gezeichnet werden?Warum nicht einfach die Mittelwerte (oder ein anderes geeignetes Maß für den Standort) in jeder Kategorie markieren?3. Können Sie mehr über das kontinuierliche Ergebnis sagen?Was ist das für ein Ding?
Sechs antworten:
Art
2019-09-24 13:02:19 UTC
view on stackexchange narkive permalink

Das Problem dabei ist, dass es keine Möglichkeit gibt zu wissen, wie viele Punkte zusammengeballt sind.Zwei Lösungen, die ich gesehen habe:

Boxplot

Dies würde Ihnen ein engeres Kästchen geben, wenn Datenpunkte zusammengefasst werden.

https://nycdatascience.com/blog/student-works/machine-learning/kaggle-competition-house-pricing-in-ames-iowa/

Blasendiagramm

Ich bin mir nicht sicher, ob dies der offizielle Name ist, aber im Grunde genommen setzen Sie die vertikale Achse in Bins.Die Größe der Blase wird dadurch bestimmt, wie viele Beobachtungen in diesen Behälter fallen.

enter image description here

Wie hilft das Blasendiagramm bei der Anzeige der Ordnungsvariablen?Vielleicht können Sie Ihr Beispielbild in ein Bild mit Ordnungsdaten ändern.
@Pieter Vielen Dank für den Vorschlag, aber ich konnte keinen finden ... aber Sie können sehen, dass die Variablen auf der x-Achse alle Ganzzahlen sind (11, 12, 13, 14, ...). Das ist also ein Beispiel für diskrete Daten.und Sie können Ordnungswerte als diskrete Daten behandeln.
user76284
2019-09-25 05:32:27 UTC
view on stackexchange narkive permalink

Zusätzlich zu der von Art vorgeschlagenen Box-Handlung schlage ich eine Geigen-Handlung vor:

enter image description here

Die explizite Darstellung des Median- und Interquartilbereichs, wie im obigen Bild dargestellt, ist optional.

Zitat aus Wikipedia:

Violin-Plots ähneln Box-Plots, zeigen jedoch auch die Wahrscheinlichkeitsdichte der Daten bei verschiedenen Werten, die normalerweise von einem Kernel-Dichteschätzer geglättet werden.

Ein Geigenplot ist informativer als ein Plain-Box-Plot.Während ein Box-Plot nur zusammenfassende Statistiken wie Mittelwert / Median und Interquartilbereiche anzeigt, zeigt das Geigen-Plot die vollständige Verteilung der Daten.Der Unterschied ist besonders nützlich, wenn die Datenverteilung multimodal ist (mehr als ein Peak).

Eine ähnliche Alternative sind gestapelte Histogramme oder Dichteschätzer:

enter image description here

mkt - Reinstate Monica
2019-09-24 13:08:14 UTC
view on stackexchange narkive permalink

Zu Ihrem Streudiagramm würde ich einen großen Punkt hinzufügen, der den mittleren Y-Wert bei jedem eindeutigen X-Wert angibt, und auch einen oder mehrere der folgenden Schritte ausführen:

  1. Quadratwurzel (oder Kubikwurzel) transformiert Ihre Y-Achse.Beides Transformationen können im Gegensatz zu Protokolltransformationen mit Nullen umgehen. Kubikwurzeln können auch mit negativen Zahlen umgehen.
  2. Machen Sie die Punkte etwas transparent.
  3. Fügen Sie den X-Achsenwerten etwas Jitter hinzu, wenn die vorherigen Schritte nicht ausreichen.
  4. ol>

    Wie Glen_b feststellt, gibt es derzeit nicht genügend Informationen, um zu entscheiden, ob das Hinzufügen einer linearen Regressionslinie sinnvoll ist.

Gibt es Nullen in der Antwort?
@NickCox Schwer zu sagen.Ich kniff die Augen zusammen und es schien, als ob es welche geben könnte.Siehe zum Beispiel X = 3.
Frage bleibt für OP, wer sollte wissen.Übrigens bin ich ein kleiner Fan von Kubikwurzeln, die in Miles, Stokes, Vieli, Cox in _Nature_ verwendet werden.Wir mussten hart arbeiten, um die Rezensenten davon zu überzeugen, dass sie eine gute Idee für eine Antwort waren, die unterschiedlich positiv und negativ war.Aber für die Frage hier würde ich ein Poisson-Modell bevorzugen, das für nicht negative kontinuierliche Antworten gut funktionieren kann.
@NickCox stimmte zu, aber die Frage war, wie man * visualisiert * und nicht wie man modelliert.
Tatsächlich.Das war ein Kommentar, keine Antwort.Ein Poisson-Modell würde jedoch das Zeichnen im logarithmischen Maßstab mit einer sekundären Frage zum Zeichnen der beobachteten Nullen implizieren.
Pieter
2019-09-24 15:51:44 UTC
view on stackexchange narkive permalink

Die von Ihnen gezeigte Handlung ist ziemlich gut.Aber ich denke, Sie können das Daten-Tinten-Verhältnis (erfunden von Edward Tufte) noch weiter verbessern, indem Sie alle Datenpunkte anzeigen.Sie können dies tun, indem Sie der x-Achse Jitter hinzufügen.

Eine weitere Verbesserung besteht darin, zu betonen, dass die Ordnungsvariable kategorisch und nicht kontinuierlich ist.Sie können dies tun, indem Sie für die verschiedenen Ebenen eine andere Farbe verwenden.

Als Beispiel habe ich den Titandatensatz in R dargestellt, wobei die Passagierklasse als Ordnungsvariable und das Passagieralter als kontinuierliche Variable verwendet wurden.

  Bibliothek (tidyverse)
Bibliothek (ggplot2)
Bibliothek (Titanic)

df <itanic_train% >% mutieren (Klasse = Faktor (Klasse))

ggplot (df, aes (Klasse, Alter, Farbe = Klasse)) +
  geom_jitter (height = 0) +
  ggtitle ("Titanic Passagieralter vs. Klasse")
 

enter image description here

Sieht aus wie rot und grün, und ich kann sie auseinanderhalten, aber viele Leute können nicht.Entscheidender: Wenn es so viel Jitter gibt, lenkt es nur ab.Side-by-Side-Quantil-Diagramme wären informativer.
Apropos Daten / Tinten-Verhältnis ... die der Klasse und der zugehörigen Legende zugewiesene Farbe ist wirklich nicht erforderlich
Peter Flom
2019-09-24 16:09:42 UTC
view on stackexchange narkive permalink

Sie geben an, dass eine Variable ordinal ist, und entscheiden sich dann, sie als Intervall zu behandeln.Ist das vernünftig?Wir können es nicht wissen, da Sie nicht gesagt haben, was die Ordnungsvariable tatsächlich ist.Wenn Sie sich dafür entscheiden, die Ordnungszahl beizubehalten, hängt die Vorgehensweise von Ihrer Stichprobengröße ab.Wenn N sehr groß ist, mag ich die Box-Plot-Lösung.Wenn N nicht so groß ist, mag ich Jitter.Es gibt noch weitere Ergänzungen, die Sie zum Streudiagramm vornehmen können - Ich habe eine Präsentation mit SAS darüber geschrieben, aber ich bin sicher, dass sie in R dupliziert werden könnte. (Wenn dieser Link nicht funktioniert, googeln Sie flom, Streudiagramme, Verbesserungen sollten es finden).

Aber was ist, wenn die Behandlung der Variablen als Intervall nicht sinnvoll ist?Sie können zu diesem Schluss kommen, entweder inhaltlich oder indem Sie verschiedene Codierungen ausprobieren und sehen, wie sich die Ergebnisse ändern.In diesem Fall empfehle ich, eine optimale Skalierung zu versuchen.Es gibt eine Optiskala für R-Pakete, die möglicherweise hilfreich ist (ich habe dieses Paket nicht verwendet).

Acccumulation
2019-09-25 03:48:25 UTC
view on stackexchange narkive permalink

Die Grundidee der Regression ist, dass die Wahrscheinlichkeitsverteilung von $ y $ span> von $ x $ span> abhängt : Es gibt eine Familie von Verteilungen $ P_x (y) $ span>. Es wird allgemein angenommen, dass diese Verteilungen alle normal sind und eine konstante Standardabweichung (Homoskedastizität) aufweisen. Dabei bleibt nur der Mittelwert abhängig von $ x $ span>: $ p (Y = y) = N (\ mu_x, \ sigma) $ span>. Bei kontinuierlichen Daten erhalten Sie normalerweise nur ein $ y $ span> für endlich viele $ x $ span> und kein $ y $ span> für den Rest. Schätzen Sie $ \ mu_x $ span>, indem Sie sich nur Ihre Stichprobe $ y $ span> für diesen $ x $ span> funktioniert nicht. Daher wird häufig die weitere Annahme getroffen, dass $ u_x $ span> eine einfache lineare Funktion von $ x $ span> ist dass $ p (Y = y) = N (mx + b, \ sigma) $ span> für einige Zahlen $ m, b , \ sigma $ span>. Die lineare Regressionsformel gibt Ihnen dann eine Schätzung von $ m $ span> (Steigung) und $ b $ span> (Achsenabschnitt) ) für Ihre Daten.

Hier scheinen Sie stark verzerrte Daten zu haben, und es scheint einen allgemeinen Trend zu einer abnehmenden Streuung zu geben. Wenn Sie also eine lineare Regression verwenden würden, wären die Annahmen zur Normalität und Homoskedastizität problematisch. Sie scheinen jedoch einen großen Datensatz für jeden Wert von $ x $ span> zu haben. Um $ \ mu $ span> für einen bestimmten $ x $ span> zu schätzen, muss die Linearität nicht verwendet werden Regressionsformel; Sie können einfach $ \ bar y $ span> für jeden $ x $ span> nehmen. Dies ist informativer für die Vorhersage eines $ y $ span> für $ x = 4 $ span>: Betrachten des $ y $ span> -Werte für $ x = 4 $ span> oder betrachten Sie den $ y $ span> -Werte für $ x = 3 $ span> und $ x = 5 $ span>, und versuchen, zwischen ihnen zu interpolieren?

Möglicherweise möchten Sie andere Zusammenfassungsstatistiken als nur $ \ bar y_x $ span> anzeigen. Ein Box-Plot kann beispielsweise Metian und Quartile anzeigen. Möglicherweise möchten Sie auch die Standardabweichung irgendwie darstellen.

Sie können auch die gesamten Distributionen anzeigen. Sie können dies mit x-Dithering tun, wie Pieter vorgeschlagen hat, oder mit einem anderen Diagrammtyp, wie z. B. Dichtediagrammen. Sie könnten sie nebeneinander stellen, wie in Pieters Antwort, aber mit nur sechs Kategorien ist es möglicherweise möglich, sie zu einem Diagramm zu kombinieren, wobei die Kategorien durch Farben getrennt sind. Hier ist eine Diskussion über Histogramme und Dichtediagramme: https://towardsdatascience.com/histograms-and-density-plots-in-python-f6bda88f5ac0



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...