Cara mengevaluasi hasil regresi linier

8

Saya memiliki masalah regresi linier. Singkatnya, saya punya dataset, saya membaginya menjadi dua himpunan bagian. Satu subset digunakan untuk menemukan regresi linier (subset pelatihan), yang lain digunakan untuk mengevaluasinya (subset evaluasi). Pertanyaan saya adalah bagaimana cara mengevaluasi hasil regresi linier ini setelah menerapkannya pada subset evaluasi data?

Berikut detailnya:

Di bagian pelatihan, saya melakukan regresi linier: y=ax+bdimana y adalah groundtruth (juga dikenal sebagai target), xadalah variabel independen. Lalu saya menemukana dan b. (x dan y diberikan dalam subset pelatihan).

Sekarang, gunakan a dan b ditemukan di atas dari bagian pelatihan, menerapkannya ke bagian evaluasi, saya menemukan y=ax+b. Dengan kata lain, iniy ditemukan dari regresi linier dengan x. Sekarang, sebagai tambahany, Saya juga punya ydari set evaluasi. Bagaimana cara mengevaluasi hasil saya (berapa banyaky berbeda dari y)? Adakah model matematika umum untuk melakukan itu? Perlu semacam model / rumus matematika. Saya bisa memikirkan cara yang berbeda untuk melakukannya, tetapi mereka semua agak ad-hoc atau sederhana, tetapi ini adalah untuk karya ilmiah, sehingga hal-hal yang terdengar ad-hoc tidak dapat digunakan di sini, sayangnya.

Ada ide?

mobil van
sumber
6
Saya tidak berpikir penilaian semacam ini umumnya digunakan dengan model regresi sederhana. Apa yang akan memberitahu Anda bahwa Anda tidak akan menemukan menggunakan seluruh dataset untuk menghasilkan parameter regresi Anda? Biasanya alasan untuk menggunakan dataset evaluasi adalah untuk mencegah overfitting, tetapi itu bukan masalah ketika Anda sudah tahu bahwa model Anda hanya akan berisi satu variabel independen.
octern
Agar jelas, @octern berbicara tentang regresi linier. Pelatihan-tes split adalah praktik yang sangat baik untuk melakukan ini dengan regresi logistik. Bahkan bisa masuk akal dalam regresi linier jika set tes memiliki distribusi yang berbeda / non-stasioner dari pelatihan, atau berasal dari periode waktu yang berbeda (misalnya kampanye iklan, perilaku belanja).
smci

Jawaban:

11

Saya setuju dengan @Octern bahwa orang jarang melihat orang menggunakan kereta / split tes (atau bahkan hal-hal seperti cross-validation) untuk model linier. Overfitting (hampir) tentu bukan masalah dengan model yang sangat sederhana seperti ini.

Jika Anda ingin memahami "kualitas" model Anda, Anda mungkin ingin melaporkan interval kepercayaan (atau setara Bayesiannya) di sekitar koefisien regresi Anda. Ada beberapa cara untuk melakukan ini. Jika Anda tahu / dapat berasumsi bahwa kesalahan Anda terdistribusi secara normal, ada rumus sederhana (dan sebagian besar paket analisis data populer akan memberi Anda nilai-nilai ini). Alternatif populer lainnya adalah menghitungnya melalui resampling (mis. Bootstrap atau jackknifing), yang membuat lebih sedikit asumsi tentang distribusi kesalahan. Dalam kedua kasus, saya akan menggunakan set data lengkap untuk perhitungan.

Matt Krause
sumber
1
Anda juga harus melakukan analisis residual dengan memplot.
kjetil b halvorsen
1

jika Anda benar-benar baik-baik saja dengan model trainig linier Anda dan ingin tahu seberapa baik itu akan memprediksi data pengujian Anda, maka yang harus Anda lakukan adalah menggunakan rumus model linier yang sudah Anda miliki dan menyertakan koefisien estimasi a (= intersep) dan b (koefisien regresi, juga disebut kemiringan) yang dihasilkan dari model pertama.

akan terlihat seperti y = a + b * X di sini beberapa angka imajiner ... y = 2 + 0,5 * X

Perangkat lunak apa yang Anda gunakan? Apakah Anda menggunakan R? jika demikian, Anda dapat menggunakan fungsi predict.lm () dan menerapkannya pada dataset ke-2 Anda.

Jens
sumber
1

Meskipun hal ini sangat tergantung pada tujuan Anda, cara sederhana dan standar untuk melakukan ini adalah mengukur mean squared error (MSE) . Jadi, jika Anda memiliki dataset pengujian AndaD yang terdiri dari pasangan input / output, D={(x1,y1),(x2,y2),,(xn,yn)} dan parameter Anda a dan b, maka UMK dapat dihitung sebagai

MSEa,b=1ni=1n(yi(axi+b))2.

Ini mungkin cara yang masuk akal untuk mengukur kesalahan Anda juga karena ini kemungkinan adalah kriteria yang Anda gunakan untuk menemukan parameter a dan b. Jika Anda ingin mendapatkan gagasan yang lebih baik tentang seberapa baik parameter perkiraan Anda digeneralisasi, Anda harus melihat ke sesuatu seperti cross validation .

alto
sumber