„Finden Sie heraus , “ zeigt Sie erkunden die Daten. Formale Tests wären überflüssig und suspekt. Wenden Sie stattdessen Standardtechniken zur explorativen Datenanalyse (EDA) an, um zu ermitteln, was in den Daten enthalten sein kann.
Diese Standardtechniken umfassen die Reexpression , die Restanalyse , robuste Techniken (die "drei R" von EDA) und die Glättung der Daten, wie von John Tukey in seinem klassischen Buch EDA (1977) beschrieben. Wie man einige davon durchführt, wird in meinem Post bei Box-Cox beschrieben, wie man unabhängige Variablen transformiert? und Wann ist es in der linearen Regression angebracht, das Protokoll einer unabhängigen Variablen anstelle der tatsächlichen Werte zu verwenden? , Unter anderem .
Das Ergebnis ist, dass viel zu sehen ist, wenn Sie zu Log-Log-Achsen wechseln (beide Variablen effektiv wieder ausdrücken), die Daten nicht zu aggressiv glätten und Reste der Glättung untersuchen, um zu überprüfen, was sie möglicherweise übersehen haben, wie ich veranschaulichen werde.
Hier sind die Daten mit einer Glättung dargestellt, die - nach Prüfung mehrerer Glättungen mit unterschiedlicher Wiedergabetreue - als guter Kompromiss zwischen zu viel und zu wenig Glättung erscheint. Es verwendet Löss, eine bekannte robuste Methode (sie wird nicht stark von vertikal liegenden Punkten beeinflusst).
Das vertikale Raster ist in Schritten von 10.000. Die Glättung weist auf eine Variation der Grad_median
Stichprobengröße hin: Sie scheint abzufallen, wenn sich die Stichprobengröße 1000 nähert. (Die Enden der Glättung sind nicht vertrauenswürdig - insbesondere bei kleinen Stichproben, bei denen ein relativ großer Stichprobenfehler zu erwarten ist Lesen Sie nicht zu viel hinein.) Dieser Eindruck eines echten Tropfens wird durch die (sehr rauen) Vertrauensbereiche gestützt, die von der Software um die Glatte gezogen werden: Ihre "Wackelbewegungen" sind größer als die Breiten der Bereiche.
- 0,220 %
Wir sind interessiert an (a) ob es zusätzliche Variationsmuster gibt, wenn sich die Stichprobengröße ändert, und (b) ob die bedingten Verteilungen der Antwort - die vertikalen Verteilungen der Punktpositionen - über alle Werte der Stichprobengröße plausibel ähnlich sind, oder ob sich ein Aspekt von ihnen (wie ihre Ausbreitung oder Symmetrie) ändern könnte.
0.0
Folglich ist diese einfache Zusammenfassung:
Das Durchschnittsgehalt ist bei Stichprobengrößen nahe 1000 um 10.000 niedriger
erfasst die in den Daten erscheinenden Beziehungen angemessen und scheint über alle Hauptkategorien hinweg einheitlich zu sein. Ob dies von Bedeutung ist, dh ob es angesichts zusätzlicher Daten Bestand haben würde, kann nur durch die Erhebung dieser zusätzlichen Daten beurteilt werden.
Für diejenigen, die diese Arbeit überprüfen oder weiterentwickeln möchten, ist hier der R
Code.
library(data.table)
library(ggplot2)
#
# Read the data.
#
infile <- "https://raw.githubusercontent.com/fivethirtyeight/\
data/master/college-majors/grad-students.csv"
X <- as.data.table(read.csv(infile))
#
# Compute the residuals.
#
span <- 0.6 # Larger values will smooth more aggressively
X[, Log.residual :=
residuals(loess(log(Grad_median) ~ I(log(Grad_sample_size)), X, span=span))]
#
# Plot the data on top of a smooth.
#
g <- ggplot(X, aes(Grad_sample_size, Grad_median)) +
geom_smooth(span=span) +
geom_point(aes(fill=Major_category), alpha=1/2, shape=21) +
scale_x_log10() + scale_y_log10(minor_breaks=seq(1e4, 5e5, by=1e4)) +
ggtitle("EDA of Median Salary vs. Sample Size",
paste("Span of smooth is", signif(span, 2)))
print(g)
span <- span * 2/3 # Look for a little more detail in the residuals
g.r <- ggplot(X, aes(Grad_sample_size, Log.residual)) +
geom_smooth(span=span) +
geom_point(aes(fill=Major_category), alpha=1/2, shape=21) +
scale_x_log10() +
ggtitle("EDA of Median Salary vs. Sample Size: Residuals",
paste("Span of smooth is", signif(span, 2)))
print(g.r)