Jak obliczyć z kwadratu próbki R?

10

Wiem, że prawdopodobnie zostało to omówione gdzie indziej, ale nie udało mi się znaleźć jednoznacznej odpowiedzi. Próbuję użyć wzoru aby obliczyć poza próbą modelu regresji liniowej, gdzie jest sumą kwadratów reszt, a jest sumą kwadratów. W przypadku zestawu treningowego jasne jest, żeR2=1SSR/SSTR2SSRSST

SST=Σ(yy¯train)2

Co z zestawem testowym? Czy powinienem nadal używać y¯train dla próbki poza próbą y , czy zamiast tego używać y¯test ?

Odkryłem, że jeśli użyję y¯test , wynikowe R2 może czasami być ujemne. Jest to zgodne z opisem funkcji sklearn r2_score(), w której użyli y¯test (który jest również wykorzystywany przez funkcję ich model_liniowy score()do testowania próbek). Twierdzą, że „stały model, który zawsze przewiduje oczekiwaną wartość y, bez względu na cechy wejściowe, uzyskałby wynik R ^ 2 wynoszący 0,0”.

Jednak w innych miejscach ludzie używali y¯train jak tutaj i tutaj (druga odpowiedź dmi3kno). Zastanawiałem się, co ma więcej sensu? Wszelkie uwagi będą mile widziane!

szalony kierowca
źródło

Odpowiedzi:

3

Masz rację.

Resztki OSR opierają się na danych testowych, ale punktem odniesienia powinny być nadal dane treningowe. Powiedziawszy to, twój SST to ; zauważ, że to samo jest dla2SST=Σ(yy¯train)2R2

użytkownik152317
źródło
3
Chociaż naprawiłem pewne oczywiste i pozorne błędy z poprzednich edycji, niektóre zapisy i niektóre zamierzone znaczenie są nadal niejasne.
Nick Cox,
Dziękuję za odpowiedź! Czy masz na to jakieś odniesienia? Wygląda na to, że oprogramowanie stat często używa alternatywnej definicji, używając y_test?
Matifou,
Czy masz na to referencje? To prawda, że ​​jeśli weźmiesz za porównanie odchyleń, ergo porównanie prawdopodobieństw, które moim zdaniem masz rację. Ale jeśli weźmiesz za proporcję wyjaśnionej wariancji, to nie, ponieważ całkowita suma kwadratów nigdzie się nie pojawi. R2R2
Firebug