Learn R Programming

gap (version 1.5-1)

chow.test: Chow's test for heterogeneity in two regressions

Description

Chow's test is for differences between two or more regressions. Assuming that errors in regressions 1 and 2 are normally distributed with zero mean and homoscedastic variance, and they are independent of each other, the test of regressions from sample sizes \(n_1\) and \(n_2\) is then carried out using the following steps. 1. Run a regression on the combined sample with size \(n=n_1+n_2\) and obtain within group sum of squares called \(S_1\). The number of degrees of freedom is \(n_1+n_2-k\), with \(k\) being the number of parameters estimated, including the intercept. 2. Run two regressions on the two individual samples with sizes \(n_1\) and \(n_2\), and obtain their within group sums of square \(S_2+S_3\), with \(n_1+n_2-2k\) degrees of freedom. 3. Conduct an \(F_{(k,n_1+n_2-2k)}\) test defined by $$F = \frac{[S_1-(S_2+S_3)]/k}{[(S_2+S_3)/(n_1+n_2-2k)]}$$ If the \(F\) statistic exceeds the critical \(F\), we reject the null hypothesis that the two regressions are equal.

Usage

chow.test(y1, x1, y2, x2, x = NULL)

Value

The returned value is a vector containing (please use subscript to access them):

F

the F statistic

df1

the numerator degree(s) of freedom

df2

the denominator degree(s) of freedom

p

the p value for the F test

Arguments

y1

a vector of dependent variable.

x1

a matrix of independent variables.

y2

a vector of dependent variable.

x2

a matrix of independent variables.

x

a known matrix of independent variables.

Author

Shigenobu Aoki, Jing Hua Zhao

Details

In the case of haplotype trend regression, haplotype frequencies from combined data are known, so can be directly used.

References

Chow GC (1960). Tests of equality between sets of coefficients in two linear regression. Econometrica 28:591-605

See Also

htr

Examples

Run this code
if (FALSE) {
dat1 <- matrix(c(
     1.2, 1.9, 0.9,
     1.6, 2.7, 1.3,
     3.5, 3.7, 2.0,
     4.0, 3.1, 1.8,
     5.6, 3.5, 2.2,
     5.7, 7.5, 3.5,
     6.7, 1.2, 1.9,
     7.5, 3.7, 2.7,
     8.5, 0.6, 2.1,
     9.7, 5.1, 3.6), byrow=TRUE, ncol=3)

dat2 <- matrix(c(
     1.4, 1.3, 0.5,
     1.5, 2.3, 1.3,
     3.1, 3.2, 2.5,
     4.4, 3.6, 1.1,
     5.1, 3.1, 2.8,
     5.2, 7.3, 3.3,
     6.5, 1.5, 1.3,
     7.8, 3.2, 2.2,
     8.1, 0.1, 2.8,
     9.5, 5.6, 3.9), byrow=TRUE, ncol=3)

y1<-dat1[,3]
y2<-dat2[,3]
x1<-dat1[,1:2]
x2<-dat2[,1:2]
chow.test.r<-chow.test(y1,x1,y2,x2)
# from http://aoki2.si.gunma-u.ac.jp/R/
}

Run the code above in your browser using DataLab