Słownik metodologiczny · Modele regresji

Test RESET Ramseya – czy model regresji ma dobrą postać?

Test RESET Ramseya sprawdza, czy model regresji liniowej ma właściwą postać funkcyjną. Pokazujemy, jak działa, przykład w R z pakietem lmtest, opis do pracy i to, czego ten test nie mówi.

Strona główna / Słownik / Test RESET Ramseya
W skrócie: Test RESET Ramseya sprawdza, czy model regresji liniowej ma właściwą postać funkcyjną. Do modelu dodaje się potęgi wartości dopasowanych (zwykle ŷ² i ŷ³) i testem F sprawdza, czy poprawiają dopasowanie. Istotny wynik sygnalizuje błąd specyfikacji, ale nie wskazuje jego przyczyny.

Co to jest test RESET Ramseya?

Test RESET (ang. Regression Equation Specification Error Test) sprawdza, czy model regresji liniowej ma właściwą postać funkcyjną. Ramsey (1969) pokazał, że przy wielu błędach specyfikacji – pominiętych zmiennych czy złej postaci funkcyjnej – reszty MNK mają rozkład normalny, ale z niezerową średnią, i zaproponował procedury wykrywania takich błędów. Hipoteza zerowa mówi, że model jest poprawnie wyspecyfikowany. Odrzucenie jej sugeruje, że zależność nie jest liniowa w przyjętych zmiennych albo że brakuje w modelu jakiejś ich funkcji.

Jak się go liczy?

W wersji stosowanej dziś do modelu dodaje się potęgi wartości dopasowanych, zwykle ŷ² i ŷ³, i testem F sprawdza, czy razem poprawiają dopasowanie. Statystyka ma rozkład F z df1 równym liczbie dodanych potęg. W R test liczy funkcja resettest() z pakietu lmtest. Thursby i Schmidt (1977) w symulacjach Monte Carlo porównali różne zestawy dodawanych zmiennych i najlepiej wypadły potęgi zmiennych objaśniających (w R: type = "regressor").

Przykład

Zasymulowaliśmy w R 150 obserwacji z zależnością krzywoliniową. Dla zwykłego modelu liniowego test dał F(2, 146) = 17.18, p < .001, więc postać funkcyjna jest błędna. Po dodaniu członu x² (zob. regresja krzywoliniowa) wynik był nieistotny: F(2, 145) = 1.29, p = .277.

Jak opisać w pracy

Postać funkcyjną modelu sprawdzono testem RESET Ramseya z kwadratem i sześcianem wartości dopasowanych. Dla modelu liniowego test był istotny, F(2, 146) = 17.18, p < .001, dlatego dodano człon kwadratowy predyktora. W modelu z członem kwadratowym test nie wskazał błędu specyfikacji, F(2, 145) = 1.29, p = .277.

Na co uważać

  • Test nie mówi, co poprawić. Istotny wynik może oznaczać nieliniowość, pominiętą zmienną albo interakcję. Przyczyny szukaj na wykresach reszt (zob. diagnostyka regresji w R), a elastyczną postać zależności daje modele ze splajnami i GAM.
  • To nie test heteroskedastyczności. Do sprawdzenia stałości wariancji reszt służy test Breuscha–Pagana.
  • Brak istotności to nie dowód. W małej próbie test ma niską moc, więc nieistotny wynik nie potwierdza poprawności modelu.
Przykład reprodukowalny

Test RESET w R

Kod symuluje dane z zależnością krzywoliniową, liczy test RESET funkcją resettest() z pakietu lmtest dla modelu liniowego i modelu z członem kwadratowym, a potem odtwarza wynik ręcznie porównaniem modeli testem F.

Test RESET dla modelu liniowego i modelu z członem kwadratowym

Dane wejściowe: 150 symulowanych obserwacji, x z rozkładu jednostajnego na [0, 10], prawdziwy model y = 2 + 0.5x + 0.15x² + błąd; set.seed(4400).

Co odczytać: statystykę RESET, df1, df2 i p dla obu modeli; wynik z anova() musi być taki sam jak z resettest() dla modelu liniowego.

R
suppressPackageStartupMessages(library(lmtest))
set.seed(4400)
n <- 150
x <- runif(n, 0, 10)
y <- 2 + 0.5 * x + 0.15 * x^2 + rnorm(n, sd = 2)   # prawdziwa zależność krzywoliniowa
m1 <- lm(y ~ x)                                    # model liniowy – zła postać funkcyjna
m2 <- lm(y ~ x + I(x^2))                           # model z członem kwadratowym
resettest(m1, power = 2:3, type = "fitted")
resettest(m2, power = 2:3, type = "fitted")
# to samo ręcznie: dodaj ŷ² i ŷ³ do modelu m1 i porównaj modele testem F
yhat <- fitted(m1)
anova(m1, lm(y ~ x + I(yhat^2) + I(yhat^3)))
Wynik w R

	RESET test

data:  m1
RESET = 17.183, df1 = 2, df2 = 146, p-value = 1.989e-07


	RESET test

data:  m2
RESET = 1.2944, df1 = 2, df2 = 145, p-value = 0.2772

Analysis of Variance Table

Model 1: y ~ x
Model 2: y ~ x + I(yhat^2) + I(yhat^3)
  Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
1    148 542.48                                  
2    146 439.12  2    103.36 17.183 1.989e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet lmtest). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. lmtest (wersja 0.9.40): Zeileis, A., & Hothorn, T. (2002). Diagnostic checking in regression relationships. R News, 2(3), 7–10. https://CRAN.R-project.org/doc/Rnews/

Najczęstsze pytania

Co oznacza istotny wynik testu RESET?

Że model w obecnej postaci źle opisuje zależność – np. pomija nieliniowość, interakcję albo ważną funkcję predyktorów. Test nie wskazuje, co zmienić; pomogą wykresy reszt względem wartości dopasowanych i predyktorów.

Jakie potęgi dodać w teście RESET?

Najczęściej ŷ² i ŷ³ (w R: power = 2:3). Wyższe potęgi dodają df, ale rzadko pomagają. Zamiast ŷ można dodać potęgi predyktorów (type = "regressor"), co Thursby i Schmidt (1977) ocenili jako zestaw o największej mocy.

Czy test RESET sprawdza normalność reszt?

Nie. RESET dotyczy postaci funkcyjnej modelu. Normalność reszt ocenia się wykresem kwantylowym albo testem normalności, a stałość wariancji – testem Breuscha–Pagana.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Ramsey, J. B. (1969). Tests for specification errors in classical linear least-squares regression analysis. Journal of the Royal Statistical Society: Series B (Methodological), 31(2), 350–371. https://doi.org/10.1111/j.2517-6161.1969.tb00796.x
  2. Thursby, J. G., & Schmidt, P. (1977). Some properties of tests for specification error in a linear regression model. Journal of the American Statistical Association, 72(359), 635–641. https://doi.org/10.1080/01621459.1977.10480627

Cytowania BibTeX

@article{ramsey1969tests, author={Ramsey, J. B.}, title={{Tests for specification errors in classical linear least-squares regression analysis}}, journal={Journal of the Royal Statistical Society: Series B (Methodological)}, year={1969}, volume={31}, number={2}, pages={350--371}, doi={10.1111/j.2517-6161.1969.tb00796.x}}
@article{thursby1977some, author={Thursby, Jerry G. and Schmidt, Peter}, title={{Some properties of tests for specification error in a linear regression model}}, journal={Journal of the American Statistical Association}, year={1977}, volume={72}, number={359}, pages={635--641}, doi={10.1080/01621459.1977.10480627}}
R