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
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.
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
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 ‘ ’ 1Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet lmtest). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).
- 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/
- 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
Diagnostyka regresji w R
Reszty studentyzowane, dźwignia, Cook i DFBETAS, VIF, maskowanie heteroskedastyczności, HC3 i analiza wrażliwości – z danymi i kodem R.
Czytaj →PoradnikNieliniowe zależności: splajny i GAM
Podział na grupy, parabola, splajn i GAM na jednym zbiorze: edf, REML, wybór k, diagnostyka, wykres krzywej i wzór opisu w R.
Czytaj →Potrzebujesz wsparcia w analizie danych?
Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.
Wyceń analizęOferta dla studentówBibliografia i dalsza literatura naukowa (APA 7)
- 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
- 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}}