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=1−SSR/SSTR2SSRSST

SST=Σ(y−y¯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

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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.