"Cari tahu" menunjukkan Anda sedang menjelajahi data. Tes formal akan berlebihan dan mencurigakan. Alih-alih, terapkan teknik analisis data eksplorasi standar (EDA) untuk mengungkapkan apa yang mungkin ada dalam data.
Teknik-teknik standar ini termasuk ekspresi ulang , analisis residual , teknik yang kuat ("tiga R" dari EDA) dan perataan data seperti yang dijelaskan oleh John Tukey dalam buku klasiknya EDA (1977). Bagaimana melakukan beberapa di antaranya diuraikan dalam posting saya di Box-Cox seperti transformasi untuk variabel independen? dan Dalam regresi linier, kapan tepat menggunakan log variabel independen alih-alih nilai aktual? , antara lain .
Hasilnya adalah banyak yang dapat dilihat dengan mengubah ke log-log sumbu (secara efektif mengekspresikan kembali kedua variabel), menghaluskan data tidak terlalu agresif, dan memeriksa residu halus untuk memeriksa apa yang mungkin terlewatkan, seperti yang akan saya ilustrasikan.
Berikut adalah data yang ditunjukkan dengan smooth yang - setelah memeriksa beberapa smooths dengan berbagai tingkat kesetiaan terhadap data - tampaknya seperti kompromi yang baik antara terlalu banyak dan terlalu sedikit smoothing. Ini menggunakan Loess, metode kuat yang terkenal (tidak banyak dipengaruhi oleh titik-titik terpencil secara vertikal).
Kotak vertikal dalam langkah 10.000. Kelancaran memang menyarankan beberapa variasi Grad_median
dengan ukuran sampel: kelihatannya menurun ketika ukuran sampel mendekati 1000. (Ujung kelancaran tidak dapat dipercaya - terutama untuk sampel kecil, di mana kesalahan pengambilan sampel diperkirakan relatif besar - jadi jangan bisa membaca terlalu banyak tentang mereka.) Kesan drop nyata ini didukung oleh band-band kepercayaan (sangat kasar) yang ditarik oleh perangkat lunak di sekitar smooth: "goyangan" nya lebih besar dari lebar band.
Untuk melihat apa yang mungkin terlewatkan oleh analisis ini, gambar berikutnya melihat residu. (Ini adalah perbedaan logaritma natural, yang secara langsung mengukur perbedaan vertikal antara data smooth sebelumnya. Karena jumlahnya kecil, mereka dapat diinterpretasikan sebagai perbedaan proporsional; misalnya, mencerminkan nilai data sekitar lebih rendah daripada smoothed yang sesuai) nilai.)20 %- 0,220 %
Kami tertarik pada (a) apakah ada pola variasi tambahan saat ukuran sampel berubah dan (b) apakah distribusi kondisional dari respons - distribusi vertikal posisi titik - secara masuk akal serupa di semua nilai ukuran sampel, atau apakah beberapa aspek dari mereka (seperti penyebaran atau simetri) mungkin berubah.
Smooth ini mencoba mengikuti titik data bahkan lebih dekat dari sebelumnya. Namun demikian itu pada dasarnya horisontal (dalam lingkup pita kepercayaan, yang selalu mencakup nilai y ), menunjukkan tidak ada variasi lebih lanjut yang dapat dideteksi. Sedikit peningkatan dalam penyebaran vertikal di dekat tengah (ukuran sampel 2000 hingga 3000) tidak akan signifikan jika diuji secara formal, dan karena itu jelas tidak biasa dalam tahap eksplorasi ini. Tidak ada penyimpangan yang jelas dan sistematis dari perilaku keseluruhan ini yang terlihat dalam kategori yang berbeda (dibedakan, tidak terlalu baik, berdasarkan warna - saya menganalisisnya secara terpisah dalam angka-angka yang tidak ditunjukkan di sini).0,0
Akibatnya, ringkasan sederhana ini:
gaji rata-rata sekitar 10.000 lebih rendah untuk ukuran sampel mendekati 1000
cukup menangkap hubungan yang muncul dalam data dan tampaknya seragam di semua kategori utama. Apakah itu signifikan - yaitu, apakah akan berdiri ketika dihadapkan dengan data tambahan - hanya dapat dinilai dengan mengumpulkan data tambahan tersebut.
Bagi mereka yang ingin memeriksa pekerjaan ini atau mengambilnya lebih lanjut, berikut adalah R
kodenya.
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)