Apakah metode yang kuat benar-benar lebih baik?

17

Saya memiliki dua kelompok subjek, A, dan B, masing-masing dengan ukuran sekitar 400, dan sekitar 300 prediktor. Tujuan saya adalah untuk membangun model prediksi untuk variabel respons biner. Pelanggan saya ingin melihat hasil penerapan model yang dibangun dari A pada B. (Dalam bukunya, "Strategi Pemodelan Regresi", @FrankHarrell menyebutkan bahwa lebih baik untuk menggabungkan dua set data dan membangun model pada itu, karena hal itu menambah kekuatan dan presisi --- lihat halaman 90, Validasi Eksternal. Saya cenderung setuju dengannya, mengingat mengumpulkan jenis data yang saya miliki sangat mahal dan memakan waktu. Tapi saya tidak punya pilihan tentang apa yang diinginkan pelanggan .) Banyak prediktor saya sangat berkorelasi dan juga sangat miring. Saya menggunakan regresi logistik untuk membangun model prediksi saya.

Prediktor saya terutama berasal dari mekanik. Sebagai contoh, total waktu subjek berada di bawah tekanan lebih tinggi dari ambang untuk periode waktu [ t 1 , t 2 ] , untuk berbagai nilai α > 0 dan 0 t 1 < t 2 . Jelas bahwa hanya dari definisi mereka, banyak dari total waktu ini secara aljabar saling terkait. Banyak prediktor yang tidak terkait secara aljabar terkait karena sifatnya: subjek yang berada di bawah tekanan tinggi selama periode waktu [ t 1 , t 2 ]α[t1,t2]α>00t1<t2[t1,t2]cenderung berada di bawah tekanan tinggi selama periode waktu , bahkan jika [ t 1 , t 2 ] [ t 3 , t 4 ] = . Untuk mengurangi dimensi data, saya mengelompokkan prediktor terkait bersama-sama (misalnya, semua waktu stres total bersama-sama) dan menggunakan analisis komponen utama untuk mewakili masing-masing cluster. Karena variabel miring, saya mencoba dua jalur alternatif:[t3,t4][t1,t2][t3,t4]=

  • Sebelum melakukan PCA, saya menggunakan transformasi logaritmik untuk mengurangi kemiringan dalam variabel.
  • Saya menggunakan algoritma ROBPCA Mia Hubert, seperti yang diterapkan oleh paket rrcov di R, (PcaHubert), untuk menemukan komponen utama yang kuat.

Saya menggunakan bentuk keseluruhan kurva ROC, bentuk kurva presisi-recall, dan area di bawah kurva ROC (AUC) sebagai ukuran kinerja saya, dan saya ingin mendapatkan hasil yang serupa untuk kedua set data A dan B Saya mengharapkan untuk mendapatkan hasil yang lebih baik dari menggunakan komponen utama yang kuat, tetapi yang mengejutkan saya, metode pertama melakukan lebih baik: nilai AUC yang lebih baik untuk kedua set data A dan B, lebih banyak persamaan antara kurva ROC, dan lebih banyak lagi penarikan presisi yang serupa. kurva.

Apa penjelasan untuk ini? Dan bagaimana saya bisa menggunakan komponen utama yang kuat, alih-alih mencoba membuat data saya terlihat normal? Apakah ada metode PCA kuat tertentu yang Anda rekomendasikan daripada ROBPCA?

pengguna765195
sumber
"Saya mengelompokkan prediktor terkait bersama-sama" dapatkah Anda menjelaskan lebih baik langkah apa yang melibatkan? "Saya mengharapkan untuk mendapatkan hasil yang lebih baik dari menggunakan komponen utama yang kuat" Bisakah Anda menjelaskan bagaimana Anda mengukur hasil?
user603
Menurut Anda mengapa lebih baik menggabungkan dataset? Saya tidak setuju sama sekali. Salah satu kesulitan yang dimiliki masalah semacam ini adalah terlalu mengandalkan data tertentu. Menguji model pada kumpulan data lain adalah ide yang bagus.
Peter Flom - Reinstate Monica
Dalam hal apa PCA reguler pada variabel log "lebih baik"? Apakah itu lebih masuk akal? Apakah itu memberikan hasil yang lebih baik pada kumpulan data kedua?
Peter Flom - Reinstate Monica
Terima kasih @PeterFlom atas komentar Anda! Saya telah memperbarui pertanyaan per komentar Anda.
user765195
Terima kasih @ user603 atas komentar Anda! Saya telah memperbarui pertanyaan untuk mencerminkan komentar Anda.
user765195

Jawaban:

17

Singkatnya, dan dari deskripsi Anda, Anda membandingkan apel dengan jeruk .... dalam dua cara.

catatan

Pertimbangkan contoh ini:

library("MASS")
library("copula")
library("rrcov")
p<-2;n<-100;

eps<-0.2
l1<-list()
l3<-list(rate=1)
#generate assymetric data
model<-mvdc(claytonCopula(1,dim=p),c("unif","exp"),list(l1,l3));
x1<-rMvdc(ceiling(n*(1-eps)),model);
#adding 20% of outliers at the end:
x1<-rbind(x1,mvrnorm(n-ceiling(n*(1-eps)),c(7,3),1/2*diag(2))) 

data

Sekarang, paskan kedua model (ROBPCA dan pca klasik pada log data):

x2<-log(x1)
v0<-PcaClassic(x2)
v1<-PcaHubert(x2,mcd=FALSE,k=2)

Sekarang, perhatikan sumbu variasi terkecil yang ditemukan oleh masing-masing metode (di sini, untuk kenyamanan, saya memplotnya pada ruang log-transformed tetapi Anda akan mendapatkan kesimpulan yang sama pada ruang asli).

model

Jelas, ROBPCA melakukan pekerjaan yang lebih baik dalam menangani bagian data yang tidak terkontaminasi (titik-titik hijau):

Tapi sekarang, saya sampai pada poin kedua.

Hkamuzsayawsaya

Anda memilikinya (ini terlihat tenang di plot di atas):

sayaHkamu(zsaya)2<sayaHkamu(wsaya)2(1)

Tetapi Anda tampaknya terkejut bahwa:

saya=1n(zsaya)2>saya=1n(wsaya)2(2)

--Dengan cara Anda menggambarkan prosedur pengujian, Anda menghitung kriteria penilaian kecocokan pada seluruh dataset, sehingga kriteria evaluasi Anda adalah fungsi monoton dari (2) di mana Anda harus menggunakan fungsi monoton dari (1) -

Dengan kata lain, jangan berharap kecocokan kuat untuk memiliki jumlah residu ortogonal kuadrat yang lebih kecil daripada prosedur tidak kuat pada dataset lengkap Anda: estimator non robust sudah menjadi minimizer unik dari SSOR pada dataset lengkap.

pengguna603
sumber
1
Terima kasih atas tanggapan Anda. Butuh beberapa saat untuk bereksperimen dengan data lain dan memikirkan respons Anda untuk benar-benar memahaminya.
user765195