Bagaimana cara menghitung sampel R yang dikuadratkan?

10

Saya tahu ini mungkin telah dibahas di tempat lain, tetapi saya belum dapat menemukan jawaban yang jelas. Saya mencoba menggunakan rumus untuk menghitung out-of-sample dari model regresi linier, di mana adalah jumlah residu kuadrat dan adalah jumlah total kuadrat. Untuk set pelatihan, jelas ituR 2 S S R S S TR2=1SSR/SSTR2SSRSST

SST=Σ(yy¯train)2

Bagaimana dengan set pengujian? Haruskah saya tetap menggunakan untuk sampel , atau menggunakan ?y ˉ y testy¯trSebuahsayanyy¯test

Saya menemukan bahwa jika saya menggunakan , hasil kadang-kadang bisa negatif. Ini konsisten dengan deskripsi fungsi sklearn , di mana mereka menggunakan (yang juga digunakan oleh fungsi linear_model untuk menguji sampel). Mereka menyatakan bahwa "model konstan yang selalu memprediksi nilai y yang diharapkan, mengabaikan fitur input, akan mendapatkan skor R ^ 2 0,0."R2 ˉ y testy¯testR2r2_score()y¯testscore()

Namun, di tempat lain orang telah menggunakan seperti di sini dan di sini (jawaban kedua oleh dmi3kno). Jadi saya bertanya-tanya mana yang lebih masuk akal? Setiap komentar akan sangat dihargai!y¯trSebuahsayan

gila
sumber

Jawaban:

3

Anda benar.

Residu OSR didasarkan pada data pengujian, tetapi baseline harus tetap berupa data pelatihan. Dengan itu, SST Anda adalah ; perhatikan bahwa hal yang sama untuk S S T = Σ ( y - ˉ y t r a i n ) 2 R 22SST=Σ(y-y¯trSebuahsayan)2R2

pengguna152317
sumber
3
Meskipun saya telah memperbaiki beberapa kesalahan yang jelas dan nyata dari suntingan sebelumnya, beberapa notasi dan beberapa makna yang dimaksudkan masih belum jelas.
Nick Cox
Terima kasih atas jawabannya! Apakah Anda punya referensi tentang ini? Sepertinya software stat umumnya menggunakan definisi alternatif, dengan y_test?
Matifou