Salah satu cara untuk memastikan ini adalah memastikan Anda telah membuat kode semua hal yang Anda lakukan agar sesuai dengan model, bahkan "bermain-main". Dengan cara ini, ketika Anda menjalankan proses berulang kali, katakan melalui validasi silang, Anda menjaga hal-hal yang konsisten antara berjalan. Ini memastikan bahwa semua sumber variasi potensial ditangkap oleh proses validasi silang.
Hal lain yang sangat penting adalah untuk memastikan bahwa Anda memiliki sampel yang representatif, di kedua set data. Jika kumpulan data Anda tidak mewakili jenis data yang Anda harapkan akan digunakan untuk memprediksi, maka tidak banyak yang dapat Anda lakukan. Semua pemodelan bertumpu pada asumsi bahwa "induksi" bekerja - hal-hal yang belum kita amati berperilaku seperti hal-hal yang telah kita amati.
Sebagai aturan umum, menjauhlah dari prosedur pemasangan model rumit kecuali (i) Anda tahu apa yang Anda lakukan, dan (ii) Anda telah mencoba metode yang lebih sederhana, dan menemukan bahwa mereka tidak bekerja, dan bagaimana metode kompleks memperbaiki masalah dengan metode sederhana. "Sederhana" dan "kompleks" dimaksudkan dalam arti "sederhana" atau "kompleks" bagi orang yang melakukan pemasangan. Alasan mengapa hal ini sangat penting adalah memungkinkan Anda untuk menerapkan apa yang saya suka sebut "tes mengendus" pada hasilnya. Apakah hasilnya terlihat benar? Anda tidak dapat "mencium" hasil dari prosedur yang tidak Anda mengerti.
CATATAN: bagian berikutnya, jawaban saya yang agak panjang didasarkan pada pengalaman saya, yang ada di area , dengan mungkin besar. Saya hampir yakin bahwa apa yang berikut di bawah ini tidak akan berlaku untuk atau kasusN>>p p N≈p N<p
Ketika Anda memiliki sampel besar, perbedaan antara menggunakan dan tidak menggunakan pengamatan yang diberikan sangat kecil, asalkan pemodelan Anda tidak terlalu "lokal". Ini karena pengaruh titik data yang diberikan umumnya urutan . Jadi dalam set data besar, residu yang Anda dapatkan dari "bertahan" pada set data uji pada dasarnya sama dengan residu yang Anda dapatkan dari menggunakannya dalam set data pelatihan. Anda dapat menunjukkan ini menggunakan kuadrat terkecil biasa. Sisa yang Anda dapatkan dari mengecualikan observasi ke- (yaitu apa kesalahan set tes akan jika kita menempatkan pengamatan di set tes) adalah , di mana adalah sisa pelatihan, dan1Nietesti=(1−hii)−1etrainietrainihiiadalah leverage dari titik data ke- . Sekarang kita memiliki , di mana adalah jumlah variabel dalam regresi. Sekarang jika , maka sangat sulit untuk setiap menjadi cukup besar untuk membuat perbedaan yang cukup besar antara set tes dan kesalahan set pelatihan. Kita dapat mengambil contoh yang disederhanakan, misalkan (mencegat dan variabel), desain matriks adalah (baik set pelatihan dan pengujian), dan leveragei∑ihii=ppN>>phiip=21N×pX
hii=xTi(XTX)−1xi=1Ns2x(1xi)(x2¯¯¯¯¯−x¯¯¯−x¯¯¯1)(1xi)=1+x~2iN
Di mana , , dan . Akhirnya, adalah variabel prediktor standar, dan mengukur berapa banyak standar deviasi dari mean. Jadi, kita tahu dari awal bahwa kesalahan set tes akan jauh lebih besar daripada kesalahan set pelatihan untuk pengamatan "di ujung" set pelatihan. Tapi ini pada dasarnya adalah masalah representatif lagi - pengamatan "di ujung" kurang representatif dari pengamatan "di tengah". Selain itu, ini untuk memesan . Jadi jika Anda memiliki pengamatan, bahkan jikax¯¯¯=N−1∑ixix2¯¯¯¯¯=N−1∑ix2is2x=x2¯¯¯¯¯−x¯¯¯2x~i=xi−x¯¯¯sxxi1N100x~i=5 (pencilan dalam ruang x oleh sebagian besar definisi), ini berarti , dan kesalahan pengujian oleh faktor hanya . Jika Anda memiliki kumpulan data besar, katakanlah , itu bahkan lebih kecil, , yang kurang dari . Bahkan, untuk pengamatan , Anda akan memerlukan pengamatan untuk membuat bawah perkiraan kesalahan set tes, menggunakan kesalahan set pelatihan.hii=261001−26100=74100100001−26100001%10000x~=5025%
Jadi untuk set data besar, menggunakan set tes tidak hanya tidak efisien, juga tidak perlu, selama . Ini berlaku untuk OLS dan juga kira-kira berlaku untuk GLM (detailnya berbeda untuk GLM, tetapi kesimpulan umumnya sama). Dalam lebih dari dimensi, "pencilan" didefinisikan oleh pengamatan dengan skor "komponen utama" yang besar. Ini dapat ditunjukkan dengan menulis Di mana adalah matriks vektor eigen (ortogonal) untuk , dengan matriks nilai eigen . Kita mendapatkan manaN>>p2hii=xTiEET(XTX)−1EETxiEXTXΛhii=zTiΛ−1zi=∑pj=1z2jiΛjjzi=ETxiadalah skor komponen utama untuk .xi
Jika set pengujian Anda memiliki observasi , Anda mendapatkan versi matriks , di mana dan adalah baris-baris dari matriks desain dalam set tes. Jadi, untuk regresi OLS, Anda sudah tahu apa kesalahan "set tes" untuk semua kemungkinan pemisahan data ke dalam set pelatihan dan pengujian. Dalam hal ini ( ), tidak perlu membagi data sama sekali. Anda dapat melaporkan kesalahan set uji "kasus terbaik" dan "kasus terburuk" dari hampir semua ukuran tanpa benar-benar harus membagi data. Ini dapat menghemat banyak waktu dan sumber daya PC.ketest{k}=(Ik−H{k})−1etrain{k}H{k}=X{k}(XTX)−1XT{k}X{k}N>>p
Pada dasarnya, semua ini mengurangi penggunaan hukuman, untuk menjelaskan perbedaan antara kesalahan pelatihan dan pengujian, seperti BIC atau AIC. Ini secara efektif mencapai hasil yang sama seperti apa yang dilakukan dengan set tes, namun Anda tidak dipaksa untuk membuang informasi yang berpotensi berguna. Dengan BIC, Anda mendekati bukti untuk model, yang terlihat secara matematis seperti:
p(D|MiI)=p(y1y2…yN|MiI)
Perhatikan bahwa dalam prosedur ini, kami tidak dapat memperkirakan parameter internal apa pun - setiap model harus ditentukan sepenuhnya atau memiliki parameter internal yang terintegrasi. Namun, kita dapat membuat ini tampak seperti validasi silang (menggunakan fungsi kerugian spesifik) dengan berulang kali menggunakan aturan produk, dan kemudian mengambil log hasilnya:Mi
p(D|MiI)=p(y1|MiI)p(y2…yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3…yN|y1y2MiI)
=⋯=∏i=1Np(yi|y1…yi−1MiI)
⟹log[p(D|MiI)]=∑i=1Nlog[p(yi|y1…yi−1MiI)]
Ini menunjukkan bentuk validasi silang, tetapi di mana set pelatihan terus diperbarui, satu pengamatan pada satu waktu dari set tes - mirip dengan Filter Kalman. Kami memprediksi pengamatan selanjutnya dari set tes menggunakan set pelatihan saat ini, mengukur penyimpangan dari nilai yang diamati menggunakan log-kemungkinan bersyarat, dan kemudian memperbarui set pelatihan untuk memasukkan pengamatan baru. Tetapi perhatikan bahwa prosedur ini sepenuhnya mencerna semua data yang tersedia, sementara pada saat yang sama memastikan bahwa setiap pengamatan diuji sebagai kasus "out-of-sample". Ini juga tidak berubah, dalam hal apa pun yang Anda sebut "observasi 1" atau "observasi 10"; hasilnya sama (perhitungan mungkin lebih mudah untuk beberapa permutasi daripada yang lain). Fungsi kerugian juga "adaptif" dalam hal itu jika kita mendefinisikan L i iLi=log[p(yi|y1…yi−1MiI)] , maka ketajaman tergantung pada , karena fungsi kerugian terus diperbarui dengan data baru.Lii
Saya akan menyarankan bahwa menilai model prediksi dengan cara ini akan bekerja dengan baik.