Jak wykonać test chow w r


Test Chowa służy do sprawdzania, czy współczynniki dwóch różnych modeli regresji na różnych zbiorach danych są równe.

Test ten jest zwykle stosowany w dziedzinie ekonometrii z danymi szeregów czasowych w celu ustalenia, czy w danym momencie występuje strukturalna przerwa w danych.

W tym samouczku przedstawiono krok po kroku przykład wykonania testu Chow w języku R.

Krok 1: Utwórz dane

Najpierw stworzymy fałszywe dane:

 #create data
data <- data.frame(x = c(1, 1, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10,
                         11, 12, 12, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 20),
                   y = c(3, 5, 6, 10, 13, 15, 17, 14, 20, 23, 25, 27, 30, 30, 31,
                         33, 32, 32, 30, 32, 34, 34, 37, 35, 34, 36, 34, 37, 38, 36))

#view first six rows of data
head(data)

  xy
1 1 3
2 1 5
3 2 6
4 3 10
5 4 13
6 4 15

Krok 2: Wizualizuj dane

Następnie utworzymy prosty wykres rozrzutu do wizualizacji danych:

 #load ggplot2 visualization package
library (ggplot2)

#create scatterplot
ggplot(data, aes (x = x, y = y)) +
    geom_point(col=' steelblue ', size= 3 )

Testy żywności w R

Z wykresu rozrzutu widzimy, że wzór danych wydaje się zmieniać przy x = 10. W związku z tym możemy wykonać test Chow, aby określić, czy istnieje strukturalny punkt załamania danych przy x = 10.

Krok 3: Wykonaj test Chow

Możemy użyć funkcji sctest z pakietu strukturchange , aby wykonać test Chow:

 #load strucchange package
library (strucchange)

#perform Chow test
sctest(data$y ~ data$x, type = " Chow ", point = 10 )

	Chow test

data: data$y ~ data$x
F = 110.14, p-value = 2.023e-13

Z wyniku testu możemy zobaczyć:

  • Statystyka testu F : 110.14
  • Wartość p: <.0000

Ponieważ wartość p jest mniejsza niż 0,05, możemy odrzucić hipotezę zerową testu. Oznacza to, że mamy wystarczające dowody, aby stwierdzić, że w danych występuje strukturalny punkt przerwania.

Innymi słowy, dwie linie regresji mogą skuteczniej dopasować model do danych niż pojedyncza linia regresji.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *