"Scopri" indica che stai esplorando i dati. I test formali sarebbero superflui e sospetti. Invece, applica le tecniche standard di analisi dei dati esplorativi (EDA) per rivelare ciò che potrebbe essere nei dati.
Queste tecniche standard includono la reespressione , l' analisi residua , tecniche robuste (le "tre R" dell'EDA) e il livellamento dei dati come descritto da John Tukey nel suo libro classico EDA (1977). Come condurre alcuni di questi sono delineati nel mio post presso Box-Cox come la trasformazione per variabili indipendenti? e nella regressione lineare, quando è appropriato utilizzare il registro di una variabile indipendente anziché i valori effettivi? , tra l'altro .
Il risultato è che si può vedere molto passando agli assi log-log (riesprendo efficacemente entrambe le variabili), livellando i dati in modo non troppo aggressivo ed esaminando i residui del smooth per verificare cosa potrebbe essersi perso, come illustrerò.
Ecco i dati mostrati con un smooth che, dopo aver esaminato diversi smooth con vari gradi di fedeltà ai dati, sembra un buon compromesso tra troppo e troppo poco. Utilizza Loess, un noto metodo robusto (non è fortemente influenzato da punti verticalmente periferici).
La griglia verticale è a passi di 10.000. Il liscio fa suggerire qualche variante di Grad_median
con dimensione del campione: sembra di cadere come le dimensioni del campione si avvicinano 1000. (Le estremità del liscio non sono affidabili - in particolare per i piccoli campioni, in cui è previsto l'errore di campionamento di essere relativamente grande - così don leggere troppo in loro.) Questa impressione di una caduta reale è supportata dalle bande di confidenza (molto approssimative) disegnate dal software attorno al liscio: i suoi "movimenti" sono maggiori delle larghezze delle bande.
Per vedere cosa potrebbe essere sfuggita a questa analisi, la figura successiva esamina i residui. (Queste sono differenze di logaritmi naturali, che misurano direttamente le discrepanze verticali tra i dati del liscio precedente. Poiché sono numeri piccoli possono essere interpretati come differenze proporzionali; ad esempio, riflette un valore dei dati che è inferiore di circa il rispetto al corrispondente smoothed valore.)20 %- 0,220 %
Siamo interessati a (a) se vi sono ulteriori schemi di variazione al variare delle dimensioni del campione e (b) se le distribuzioni condizionali della risposta - le distribuzioni verticali delle posizioni dei punti - sono plausibilmente simili tra tutti i valori delle dimensioni del campione, oppure se alcuni aspetti di essi (come la loro diffusione o simmetria) potrebbero cambiare.
Questo fluido cerca di seguire i punti dati ancora più da vicino di prima. Tuttavia è essenzialmente orizzontale (nell'ambito delle bande di confidenza, che coprono sempre un valore y di ), suggerendo che non è possibile rilevare ulteriori variazioni. Il leggero aumento della diffusione verticale vicino al centro (dimensioni del campione da 2000 a 3000) non sarebbe significativo se testato formalmente, e quindi sicuramente non è rilevante in questa fase esplorativa. Non esiste una chiara e sistematica deviazione da questo comportamento generale evidente in nessuna delle categorie separate (distinta, non troppo bene, per colore - le ho analizzate separatamente in figure non mostrate qui).0.0
Di conseguenza, questo semplice riassunto:
lo stipendio mediano è inferiore di circa 10.000 per campioni di dimensioni vicine a 1000
acquisisce adeguatamente le relazioni che appaiono nei dati e sembra mantenersi uniformemente in tutte le principali categorie. Se ciò sia significativo, ovvero se si alzerebbe se confrontato con dati aggiuntivi, può essere valutato solo raccogliendo tali dati aggiuntivi.
Per coloro che desiderano controllare questo lavoro o portarlo oltre, ecco il R
codice.
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)