Wie visualisiere ich effektiv Daten, die Änderungen in vielen Proben über zwei Zeiträume zeigen? [abgeschlossen]

Ich habe die Anzahl der Drüsen in einer Pflanze dieses Jahr und letztes Jahr gezählt. Mein vollständiger Datensatz enthält ungefähr 20 Pflanzen (ich habe die Daten von 10 der Pflanzen hier reproduziert). Ich möchte zeigen, dass die Pflanzen in diesem Jahr durchweg niedrigere Drüsenzahlen hatten als letztes Jahr, aber ich möchte die Leser nicht mit zu vielen Datenpunkten in ihren Gesichtern verunsichern. Welche Art von Grafik/Diagramm sollte ich verwenden, um diesen Trend am besten darzustellen?

        Gland Count
PlantID  2015    2016
1        22.92   19.50
2        11.67   7.12
3        19.67   15.33
4        22.33   12.00
5        20.92   18.58
6        25.83   23.83
7        25.67   32.17
8        22.83   17.00
9        28.42   26.25
10       17.92   16.92
Ich kann diesen Artikel aus der PloS-Perspektive nur wärmstens empfehlen: „Beyond Bar and Line Graphs: Time for a New Data Presentation Paradigm“ . @Shawn ist mit ihrer Antwort auf dem richtigen Weg.
IMO, diese Frage ist nicht zum Thema, da es um Datenvisualisierung und nicht um Biologie geht. Ich stimme für die Schließung.
@Remi.b Ich stimme zu, dass es hier kein Thema ist, aber es könnte für Cross Validated ein Thema sein. Wandern?
@RHA Dies ist auch keine Statistikfrage. Auch dort nicht geeignet. Ich bin mir nicht sicher, welche Seite eigentlich geeignet wäre, da solche Fragen normalerweise meinungsbasiert sind.
@WYSIWYG "Cross Validated ist eine Q&A-Site für Personen, die sich für Statistik, maschinelles Lernen, Datenanalyse, Data Mining und Datenvisualisierung interessieren ."

Antworten (4)

Zwei Arten von Diagrammen kommen mir in den Sinn.

  1. Ein einfaches zweischichtiges Histogramm, das die Verteilung der Drüsenzahlen für jedes Jahr zeigt. Dies ist eine Kerndichte im Gegensatz zu einem Histogramm, aber es vermittelt die Idee.Kerndichtediagramm

  2. Liniendiagramm mit Jahr auf der x-Achse und Drüsenzahl auf der y-Achse, mit einer farbigen Linie für jede Pflanze. Dies würde ein wenig mehr Details zeigen und wäre besser, wenn sich die mittlere Drüsenzahl insgesamt nicht viel ändern würde, aber bei den Individuen signifikant abnehmen würde .Liniendiagramm

Die Liniendiagramme sehen großartig aus und sind eine sehr schöne und direkte Möglichkeit, Trends für einzelne Pflanzen anzuzeigen. Allerdings muss beim Erweitern auf n~20 darauf geachtet werden, dass der Graph nicht zu voll wird [insbesondere wenn die (Druck-)Größe klein sein könnte].
Histogramme sind hier eine schlechte Wahl, da die Daten weder kontinuierlich noch geordnet sind (ich nehme an, die Pflanzen-IDs sind willkürlich und es gibt kein "Werk 1.5"). Überlagernde Balken könnten eine sinnvolle Alternative sein, wenn Sie sicherstellen können, dass die verwendeten Farben die Jahreszahlen deutlich voneinander unterscheiden.
Ich stimme den Punkten zu, die @tsttst aufwirft, und würde hinzufügen, dass dieser Diagrammstil darauf beruht, dass die Punkte/Linien visuell unterschiedlich sind, aber eine Erweiterung ermöglicht, um Daten für ein drittes/viertes usw. Jahr anzuzeigen, was ein definitiver Bonus ist. Eine Änderung des Beispiels wäre, auch andere Formen (statt nur Kreise) sowie verschiedene Farben zu haben, um bei der Unterscheidung zu helfen, welche Farbe sich auf eine bestimmte Pflanzennummer bezieht.

Eine Lösung besteht darin, genau die Daten darzustellen, die Sie zu beschreiben versuchen – das Delta in Ihren Werten.

Stellen Sie sich ein Balkendiagramm (mit Konfidenz-/Fehlerbalken) vor, das die Anlagennummer entlang der x-Achse und die y-Achse zeigt, die die Änderung der Zählung mit +ve- und -ve-Werten zeigt.

Anhand der Daten aus Ihrer Frage zeigt diese Visualisierung beispielsweise deutlich, dass alle Werte bis auf eins von 2015 auf 2016 gesunken sind (bitte verzeihen Sie das grobe Diagramm ohne Titel usw.):Geben Sie hier die Bildbeschreibung ein

Natürlich wäre es auch hilfreich, eine Grafik der absoluten Werte zu zeigen, und es ist obligatorisch, auch eine Tabelle mit den genauen Werten beizufügen.

Hatte nur ein paar Minuten Zeit, also habe ich ein Beispiel-Balkendiagramm hinzugefügt, das trivial in Google Sheets über Handy erstellt wurde, um deutlicher zu zeigen, was ich versucht habe, mit Text zu beschreiben. Ich bin bereit, mehr Zeit damit zu verbringen, ein weniger grob gezeichnetes Diagramm zu erstellen, wenn dies für die Zwecke des OP als geeignet erachtet wird.

Stellen Sie sicher, dass die Visualisierung nicht irreführend ist (wenn Sie beabsichtigen, die Visualisierung zu verwenden, um für eine konsequente Reduzierung zu argumentieren):

  • Zählen Sie die Anzahl der Pflanzen, bei denen die Drüsenzahl 2016 niedriger wäre als 2015 (um sicherzustellen, dass sie für die meisten Pflanzen niedriger ist).
  • Führen Sie dann einen zweiseitigen gepaarten nichtparametrischen Test durch, wie z. B. den Wilcoxon-Vorzeichen-Rang-Test (um zu testen, ob es bei den meisten Pflanzen eine Änderung in die gleiche Richtung gab), und geben Sie den p-Wert an.

Visualisierung:

  • Dividieren Sie die Werte von 2016 jeder Pflanze durch den Wert von 2015 derselben Pflanze (vielleicht log2-Transformation) und zeichnen Sie nur die resultierenden Werte als einzelne Punkte entlang der y-Achse (fügen Sie vielleicht eine Hintergrundschattierung oder Linie hinzu, um die Grenze zwischen anzuzeigen). Verringerung und Erhöhung der Drüsenzahl, wenn es dem visuellen Verständnis hilft)
  • Falls Sie eine Publikation vorbereiten: Überlegen Sie, ob der begrenzte Informationsgewinn (im Vergleich zur Darstellung durch p-Werte oder eine ergänzende Tabelle) den Raum wert ist
@Jennser: Bei 20 Personen könnten Sie auch über einen Bootstrapping-Ansatz nachdenken, um 95% Konfidenzintervalle für die Mittelwerte und/oder Mediane für jedes Jahr zu berechnen.
@tsttst. Hi. Mein Hintergrund in Statistik ist nicht sehr stark, also verzeihen Sie mir, wenn diese Frage sehr einfach ist. Ich habe bereits einen zweiseitigen gepaarten t-Test mit den Daten durchgeführt, um sicherzustellen, dass es zwischen den beiden Jahren eine statistisch signifikante Änderung der Drüsenzahlen gab. Liefert der Wilcoxon-Vorzeichen-Rang-Test wesentlich andere Informationen als der t-Test / wäre es aus irgendeinem Grund angemessener, ihn zu verwenden?
Hallo Jennser, eigentlich ist dies eine ausgezeichnete Frage (zumal Alex auf Ihre Stichprobengröße hingewiesen hatte, die weitere statistische Tests ermöglichen könnte). Der t-Test geht von einer zugrunde liegenden Normalverteilung der Drüsenzahlen aus. Sofern es keine sicheren Gründe gibt, eine solche Verteilung anzunehmen (oder Sie ihr Vorhandensein überzeugend zeigen können), ist es besser, konservativ zu sein und den Wilcoxon-Vorzeichen-Rang-Test zu verwenden, der nicht von dieser Annahme abhängt. -> Wilcoxon-Vorzeichen-Rang bedeutet, dass Sie sich um eine Sache weniger Sorgen machen müssen (es ergibt p = 0,06 bei den 10 Pflanzen und wird wahrscheinlich noch besser bei 20).

Einfacher Vergleich von Durchschnittswerten

Am einfachsten und gebräuchlichsten ist es, den Mittelwert und den Standardfehler für jedes Jahr anzuzeigen.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie mehr Jahre haben, möchten Sie vielleicht eine Angabe in der Grafik hinzufügen, die den p-Werten paarweiser Vergleiche entspricht, aber ich glaube nicht, dass Sie mehr als zwei Jahre haben.

Unten ist ein kurzer R-Code, der die Arbeit erledigt. Beachten Sie, dass ich den Standardfehler mit Bootstrap geschätzt habe. Vielleicht möchten Sie auf die Agresti-Coull- Methode umsteigen. Ich persönlich mag Bootstrap. Stellen Sie sicher, dass Sie die Standardfehler verwenden, die angesichts des statistischen Tests, den Sie mit diesen Daten durchgeführt haben, sinnvoll sind.

# Function to calculate the standard error
bootstrap_SE = function(x,reps=1e5, SEorCI="SE")
{
    means = vector("numeric",reps)
    for (rep in 1:reps)
    {
        means[rep] = mean(sample(x,replace=TRUE))
    }
    if (SEorCI == "SE") return ( sqrt(var(means)) ) 
    if (SEorCI == "CI") return ( quantile(means, c(0.025,0.975)) ) 
}

# Your data
d2015 = c(19.50, 7.12, 15.33, 12.00, 18.58, 23.83, 32.17, 17.00, 26.25, 16.92)
d2016 = c(22.92, 11.67, 19.67, 22.33, 20.92, 25.83, 25.67, 22.83, 28.42, 17.92)

# Calculate the averages
yAverages = c(mean(d2015),mean(d2016))

# Calculate standard errors
SE = c(bootstrap_SE(d2015),bootstrap_SE(d2016))

# x-axis
x = c(2015,2016)

# Make the plot
plot(y=yAverages,x=x, xlab="year", ylab="gland count", ylim=c(min(yAverages-SE),max(yAverages+SE)), xlim = c(2014.4,2016.5), xaxp=c(2015,2016,1))
arrows(
    x0=x,
    y0=yAverages,
    x1=x,
    y1=yAverages+SE,
    angle=90
)
arrows(
    x0=x,
    y0=yAverages,
    x1=x,
    y1=yAverages-SE,
    angle=90
)

Konzentrieren Sie sich auf systematische Unterschiede

Wenn Ihr Ziel darin besteht, auf der Existenz systematischer Unterschiede für jede Pflanze zu bestehen, würde ich die Lösung von @kwah (+1) empfehlen. Ich mag die Lösung von @Shawn nicht ganz (nichts für ungut), ich fand die Diagramme kompliziert, nicht intuitiv für kategoriale Variablen und ich fand, dass sie das Konzept der systematischen Unterschiede im Vergleich zur Lösung von @kwah schlecht vermitteln.

Wenn Sie daran denken, einen Paartest durchzuführen, dann klingt es nach einer cleveren Idee, die Lösung von @kwah zu verwenden.