Hypothesis

#1
If you got this model:

mode 1) y=a +b1x1 + b2x2 + u

and this:

mode 2) y=a + b1(x1-x2) + u

What do you call the restriction there has been put on model 1 in model 2?

Is it just b1=-b2 ?
if yes, how do you test this kind of restriction? I really dunno:S
 

Dason

Ambassador to the humans
#2
You could test the hypothesis:

Ho: b1 = -b2
Ha: b1 != -b2

through the use of contrasts. You could also do it through a likelihood ratio test with model 1 being the full model and model 2 being the reduced model.
 
#9
Okay friends, this is my exam. I did not think it was necessary to read up on the material because I thought I knew everything. I thought I got all knowledge from heaven
 

Dason

Ambassador to the humans
#11
Well there is a package called "contrast" in R but I typically just do them by hand.

Code:
test.contrast = function(lm.out, C, d = 0){
    # Provides a test of Ho: C*b = d vs. Ha: C*b != d
    # lm.out: - is the linear model used
    # C: ----- is a matrix with the desired set of contrasts
    #          which may contain more than one row
    # d: ----- a vector of values to test against

    b <- coef(lm.out)
    V <- vcov(lm.out)
    df.numerator <- nrow(C)
    df.denominator <- lm.out$df
    Cb.d <- (C %*% b) - d
    Fstat <- drop(t(Cb.d) %*% solve(C %*% V %*% t(C)) %*% Cb.d/df.numerator)
    pvalue <- 1 - pf(Fstat, df.numerator, df.denominator)
    ans <- list(Fstat = Fstat, pvalue = pvalue)
    return(ans)
}

# Generate some fake data
n <- 20
sigma <- 1
betas <- c(7, 2, -2)
x1 <- 1:n
x2 <- runif(n)
X <- matrix(c(rep(1,n),x1, x2), ncol = 3)
y <- X %*% betas + rnorm(n, 0, sigma)

# Fit the linear model
o <- lm(y ~ x1 + x2)

# Test the idea that b1 = -b2  ie b1 + b2 = 0
C <- matrix(c(0, 1, 1), nrow = 1)
test.contrast(o, C)
 
Last edited:

Dason

Ambassador to the humans
#13
Okay friends, this is my exam. I did not think it was necessary to read up on the material because I thought I knew everything. I thought I got all knowledge from heaven
What? You thought you didn't have to read up on anything and that knowledge just came from heaven? Well you're wrong and you should probably start reading up on things...

dudes, im not much cleaver here. Please introduce me to the rapidhole
What are you trying to say here? Rapidhole? What?

Are you just asking for quick answers? You could try googling "linear contrast".
 

Dason

Ambassador to the humans
#16
I've always thought that was only for certain types of contrasts though. I don't know how to specify a generic contrast through that parameter.
 

bryangoodrich

Probably A Mammal
#19
I've always thought that was only for certain types of contrasts though. I don't know how to specify a generic contrast through that parameter.
I don't know. I've never really dealt with contrasts before. I know you can define some predefined functions on how to deal with contrasts, but the parameter in lm takes,

A list, whose entries are values (numeric matrices or character strings naming functions) to be used as replacement values for the contrasts replacement function and whose names are the names of columns of data containing factors.
I think I recall reading something somewhere about how you can define your own contrast functions, too, but maybe I'm thinking of something else.
 

Dason

Ambassador to the humans
#20
Yeah the only thing I think I've seen that used for is to change from the R style contrasts to the SAS style contrasts when somebody was trying to get the R output to match up exactly with the SAS output.