Apakah menggunakan desil untuk menemukan korelasi merupakan pendekatan yang valid secara statistik?

10

Saya memiliki sampel 1,449 titik data yang tidak berkorelasi (r-squared 0,006).

Ketika menganalisis data, saya menemukan bahwa dengan memecah nilai-nilai variabel independen menjadi kelompok-kelompok positif dan negatif, tampaknya ada perbedaan yang signifikan dalam rata-rata variabel dependen untuk setiap kelompok.

Membagi titik menjadi 10 sampah (desil) dengan menggunakan nilai variabel independen, tampaknya ada korelasi yang lebih kuat antara angka desil dan nilai variabel dependen rata-rata (r-squared 0,27).

Saya tidak tahu banyak tentang statistik, jadi inilah beberapa pertanyaan:

  1. Apakah ini pendekatan statistik yang valid?
  2. Apakah ada metode untuk menemukan jumlah sampah terbaik?
  3. Apa istilah yang tepat untuk pendekatan ini sehingga saya bisa Google?
  4. Apa sajakah sumber pengantar untuk belajar tentang pendekatan ini?
  5. Apa saja pendekatan lain yang bisa saya gunakan untuk menemukan hubungan dalam data ini?

Berikut adalah data decile untuk referensi: https://gist.github.com/georgeu2000/81a907dc5e3b7952bc90

EDIT: Ini adalah gambar dari data: Momentum Industri adalah variabel independen, Kualitas Titik Masuk bergantung

Momentum Industri adalah variabel independen, Kualitas Titik Masuk bergantung

B Tujuh
sumber
Semoga jawaban saya (khususnya tanggapan 2-4) dipahami dalam arti seperti yang dimaksudkan.
Glen_b -Reinstate Monica
Jika tujuan Anda adalah mengeksplorasi bentuk hubungan antara yang independen dan dependen, ini adalah teknik eksplorasi yang bagus. Mungkin menyinggung statistik tetapi digunakan dalam industri sepanjang waktu (misalnya risiko kredit). Jika Anda membangun model prediktif, sekali lagi rekayasa fitur OK - jika dilakukan pada set pelatihan yang divalidasi dengan benar.
B_Miner
Bisakah Anda memberikan sumber daya tentang cara memastikan hasilnya "divalidasi dengan benar"?
B Seven
"tidak berkorelasi (r-squared 0,006)" berarti bahwa mereka tidak berkorelasi linear . Mungkin ada beberapa korelasi lain yang terlibat. Sudahkah Anda merencanakan data mentah (dependen vs independen)?
Emil Friedman
Saya memang memplot data, tetapi tidak berpikir untuk menambahkannya ke pertanyaan. Ide yang bagus! Silakan lihat pertanyaan terbaru.
B Tujuh

Jawaban:

9

0. Korelasi (0,0775) kecil tetapi (secara statistik) berbeda secara signifikan dari 0. Artinya, sepertinya memang ada korelasi, itu hanya sangat kecil / lemah (setara, ada banyak suara di sekitar hubungan).

σ/n

xpersis hasil yang Anda harapkan .

3. Ya. Mungkin mulai dengan pencarian ini , lalu coba sinonim.

4. Ini adalah tempat yang baik untuk memulai; itu adalah buku yang sangat populer yang ditujukan untuk non-ahli statistik.

5. (lebih serius :) Saya sarankan smoothing (seperti melalui regresi polinomial lokal / smoothing kernel, katakanlah) sebagai salah satu cara untuk menyelidiki hubungan. Itu tergantung pada apa yang Anda inginkan, tepatnya, tetapi ini bisa menjadi pendekatan yang valid ketika Anda tidak tahu bentuk hubungan, selama Anda menghindari masalah pengerukan data.


Ada kutipan populer, yang pencetusnya adalah Ronald Coase :

"Jika kamu cukup menyiksa datanya, alam akan selalu mengaku."

Glen_b -Reinstate Monica
sumber
Poin 1 & 2 adalah penjelasan yang baik tentang mengapa pendekatan OP bukan pendekatan statistik yang valid, meskipun heuristik yang berguna untuk meyakinkan tentang Poin 0 (korelasi lemah).
Assad Ebrahim
9

Mungkin Anda akan mendapat manfaat dari alat eksplorasi. Memisahkan data menjadi desil dari koordinat x tampaknya telah dilakukan dengan semangat itu. Dengan modifikasi yang dijelaskan di bawah ini, ini merupakan pendekatan yang sangat bagus.

Banyak metode eksplorasi bivariat telah ditemukan. Yang sederhana yang diusulkan oleh John Tukey ( EDA , Addison-Wesley 1977) adalah "plot skematik pengembaraannya". Anda mengiris koordinat x ke dalam nampan, membangun plot kotak vertikal dari data y terkait di median masing-masing nampan, dan menghubungkan bagian-bagian kunci dari plot kotak (median, engsel, dll.) Ke dalam kurva (opsional menghaluskan mereka). "Jejak penjelajahan" ini memberikan gambaran distribusi bivariat data dan memungkinkan penilaian visual langsung dari korelasi, linieritas hubungan, pencilan, dan distribusi marjinal, serta estimasi yang kuat dan evaluasi yang sesuai untuk setiap fungsi regresi nonlinier .

2k12kk=1,2,3,

Untuk menampilkan populasi bin yang bervariasi, kita dapat membuat lebar setiap kotak box sebanding dengan jumlah data yang diwakilinya.

Skema pengembara yang dihasilkan akan terlihat seperti ini. Data, sebagaimana dikembangkan dari ringkasan data, ditampilkan sebagai titik abu-abu di latar belakang. Lebih dari ini, plot skematik yang berkelana telah digambar, dengan lima jejak warna dan plot kotak (termasuk setiap outlier yang ditampilkan) dalam warna hitam dan putih.

Angka

x=4x=40.074untuk data ini) mendekati nol. Namun, bersikeras menafsirkan bahwa "hampir tidak ada korelasi" atau "korelasi signifikan tetapi rendah" akan menjadi kesalahan yang sama dengan lelucon lama tentang ahli statistik yang senang dengan kepalanya di oven dan kaki di lemari es karena rata-rata suhunya nyaman. Kadang-kadang satu angka saja tidak bisa menjelaskan situasi.

Alat eksplorasi alternatif dengan tujuan yang sama termasuk smooth yang kuat dari jendela kuantil data dan cocok dari regresi kuantil menggunakan berbagai kuantil. Dengan ketersediaan perangkat lunak untuk melakukan perhitungan ini, mereka mungkin menjadi lebih mudah dieksekusi daripada jejak skematik yang berkelana, tetapi mereka tidak menikmati kesederhanaan konstruksi yang sama, kemudahan interpretasi, dan penerapan yang luas.


RKode berikut menghasilkan angka dan dapat diterapkan ke data asli dengan sedikit atau tanpa perubahan. (Abaikan peringatan yang dihasilkan oleh bplt(dipanggil oleh bxp): ia mengeluh ketika tidak memiliki outlier untuk menggambar.)

#
# Data
#
set.seed(17)
n <- 1449
x <- sort(rnorm(n, 0, 4))
s <- spline(quantile(x, seq(0,1,1/10)), c(0,.03,-.6,.5,-.1,.6,1.2,.7,1.4,.1,.6),
            xout=x, method="natural")
#plot(s, type="l")
e <- rnorm(length(x), sd=1)
y <- s$y + e # ($ interferes with MathJax processing on SE)
#
# Calculations
#
q <- 2^(-(2:floor(log(n/10, 2))))
q <- c(rev(q), 1/2, 1-q)
n.bins <- length(q)+1
bins <- cut(x, quantile(x, probs = c(0,q,1)))
x.binmed <- by(x, bins, median)
x.bincount <- by(x, bins, length)
x.bincount.max <- max(x.bincount)
x.delta <- diff(range(x))
cor(x,y)
#
# Plot
#
par(mfrow=c(1,1))
b <- boxplot(y ~ bins, varwidth=TRUE, plot=FALSE)
plot(x,y, pch=19, col="#00000010", 
     main="Wandering schematic plot", xlab="X", ylab="Y")
for (i in 1:n.bins) {
  invisible(bxp(list(stats=b$stats[,i, drop=FALSE],
                     n=b$n[i],
                     conf=b$conf[,i, drop=FALSE],
                     out=b$out[b$group==i],
                     group=1,
                     names=b$names[i]), add=TRUE, 
                boxwex=2*x.delta*x.bincount[i]/x.bincount.max/n.bins, 
                at=x.binmed[i]))
}

colors <- hsv(seq(2/6, 1, 1/6), 3/4, 5/6)
temp <- sapply(1:5, function(i) lines(spline(x.binmed, b$stats[i,], 
                                             method="natural"), col=colors[i], lwd=2))
whuber
sumber
@EngrStudent Harap baca teks posting ini sebelum Anda menjalankan kode. Peringatan itu disebutkan dan dijelaskan.
whuber
Saya tidak tahu dari mana vektor ini berasal c(0,.03,-.6,.5,-.1,.6,1.2,.7,1.4,.1,.6), apakah ini dihasilkan dan data bergantung ( x)? Anda menyebutkan 2^*(-k)tetapi ini tidak terkait.
Maximilian
@ Max Vektor Itu menghasilkan contoh khusus ini.
whuber
ok, tapi bagaimana Anda mengatur angka-angkanya? Ini jelas salah:k <- 1:11; ifelse(quantile(g, seq(0,1,1/10))>0, 2^(-k), 1-2^(-k))
Maximilian
@ Max Saya tidak bisa mengerti apa yang Anda maksud dengan "jelas salah." Anda tidak dapat merujuk ke kode saya: sebagai tanda centang, saya menjalankannya kembali dan mereproduksi angka tersebut di setiap detail.
whuber
6

Saya tidak percaya bahwa binning adalah pendekatan ilmiah untuk masalah ini. Ini adalah kehilangan informasi dan sewenang-wenang. Metode peringkat (ordinal; semiparametri) jauh lebih baik dan tidak kehilangan informasi. Bahkan jika seseorang memutuskan untuk menggunakan bin decile, metode ini masih sewenang-wenang dan tidak dapat direproduksi oleh orang lain, hanya karena banyaknya definisi yang digunakan untuk kuantil dalam kasus ikatan dalam data. Dan seperti yang disinggung dalam komentar penyiksaan data yang bagus di atas, Howard Wainer memiliki makalah yang bagus yang menunjukkan bagaimana menemukan bins yang dapat menghasilkan asosiasi positif, dan menemukan bins yang dapat menghasilkan asosiasi negatif, dari dataset yang sama:

 @Article{wai06fin,
   author =          {Wainer, Howard},
   title =       {Finding what is not there through the unfortunate
    binning of results: {The} {Mendel} effect},
   journal =     {Chance},
   year =        2006,
   volume =      19,
   number =      1,
   pages =       {49-56},
   annote =      {can find bins that yield either positive or negative
    association;especially pertinent when effects are small;``With four
    parameters, I can fit an elephant; with five, I can make it wiggle its
    trunk.'' - John von Neumann}
 }
Frank Harrell
sumber
Ini yang saya duga. Jika Anda memilih jumlah tempat sampah yang berbeda, Anda dapat menemukan korelasi terbaik untuk menampilkan apa pun yang dicari. Tetapi hasilnya tidak dapat direproduksi atau valid secara ilmiah. Apakah Anda tahu sumber pengantar tentang peringkat?
B Tujuh
3
Ini sepertinya posisi yang terlalu ekstrem. Tentu saja metode berbasis peringkat kehilangan informasi juga: mereka membuang semua informasi tentang nilai-nilai aktual. Jadi pertanyaan mengenai apakah kehilangan informasi merupakan masalah timbul mengapa analisis dilakukan? Jika itu untuk penemuan dan eksplorasi, berbagai bentuk binning yang dipandu dapat melakukan pekerjaan dengan baik sedangkan mengganti segala sesuatu dengan peringkat akan mengaburkan dan mengubah hubungan. Jika itu untuk konfirmasi atau pengujian hipotesis maka komentar Anda akan lebih berlaku dan dapat dipertahankan.
whuber
2
π3πY|X
2

Membagi data menjadi desil berdasarkan X yang diamati ("Kualitas Titik Masuk") tampaknya merupakan generalisasi dari metode lama yang pertama kali diusulkan oleh Wald dan kemudian oleh orang lain untuk situasi di mana X dan Y dapat mengalami kesalahan. (Wald membagi data menjadi dua kelompok. Nair & Shrivastava dan Bartlett membaginya menjadi tiga.) Hal ini dijelaskan dalam bagian 5C dari Understanding kuat dan eksplorasi Analisis Data , diedit oleh Hoaglin, Mosteller dan Tukey (Wiley, 1983). Namun, banyak pekerjaan pada "Kesalahan Pengukuran" atau "Kesalahan dalam Model Variabel" telah dilakukan sejak saat itu. Buku teks yang saya lihat adalah Kesalahan Pengukuran: Model, Metode dan Aplikasi oleh John Buonaccorsi (CRC Press,

Situasi Anda mungkin agak berbeda karena scatterplot Anda membuat saya curiga bahwa kedua pengamatan adalah variabel acak dan saya tidak tahu apakah masing-masing berisi kesalahan pengukuran. Apa yang diwakili oleh variabel?

Emil Friedman
sumber
Entry Point Quality adalah seberapa banyak saham naik atau turun dalam jangka pendek pada titik waktu tertentu. Momentum Industri adalah ukuran "momentum" dalam industri untuk saham pada saat yang bersamaan. Hipotesisnya adalah bahwa ada korelasi antara momentum industri dan harga saham di masa depan.
B Seven
1
Kami biasanya meletakkan respons pada sumbu vertikal. Inspeksi visual menunjukkan bahwa bahkan jika ada korelasi nyata, variasi dalam kualitas titik masuk membuatnya sangat tidak berguna. Tetapi karena Anda berurusan dengan harga saham, banyak hal menjadi lebih rumit karena rangkaian waktu terlibat.
Emil Friedman
2

Saya menemukan paket localgauss sangat berguna untuk ini. https://cran.r-project.org/web/packages/localgauss/index.html

Paket berisi

Rutinitas komputasi untuk memperkirakan dan memvisualisasikan parameter Gaussian lokal. Parameter Gaussian lokal berguna untuk mengkarakterisasi dan menguji ketergantungan non-linear dalam data bivariat.

Contoh:

library(localgauss)
x=rnorm(n=1000)
y=x^2 + rnorm(n=1000)
lgobj = localgauss(x,y)
plot(lgobj)

Hasil:

masukkan deskripsi gambar di sini

SunWuKung
sumber