coefTest and one tailed T-test

18 views (last 30 days)
Arman
Arman on 11 Nov 2012
Dear all,
I have fitted a linear model to my data as follows: Var6 ~ 1 + groupVar1 +groupVar2 + groupVar3 +Var4 + Var5
the first 3 variables are dummy variables for the three groups that I have, and I aim to compare groups using GeneralizedLinearModel.fit and adjusting for nuisance variables. Using coefTest with this contrast I get the f statistic of "any group different from zero" while controlling for Var4 and Var5: [0 1 0 0 0 0;0 0 1 0 0 0;0 0 0 1 0 0] and I get a p value, and so on. However, when it comes to one tail t tests for the following two contrasts I get the same significant p value for which does not make sense to me:
contrast 2:Group1 >Group2 coefTest(m, [0 1 -1 0 0 0]) contrast 3:Group2 >Group1 coefTest (m, [0 -1 1 0 0 0])
It would be great if someone could let me know where I'm getting this wrong, as there is no way for a group to be greater and lesser than another group at the same time.
-Arman
  1 Comment
Arman
Arman on 11 Nov 2012
Edited: Arman on 13 Nov 2012
So probably I'm just doing an F-test, is there a way to do one tailed t-tests in GeneralizedLinearModel in MATLAB?

Sign in to comment.

Accepted Answer

Tom Lane
Tom Lane on 12 Nov 2012
You are right that the result from coefTest is an F-test. There is no built-in way to carry out a one-sided t test.
Here are some commands to reproduce the calculations for the t statistic and its p-value as they appear int the coefficient table:
load carsmall
d = dataset(MPG,Weight);
d.Year = ordinal(Model_Year);
glm = GeneralizedLinearModel.fit(d,'MPG ~ Year + Weight + Weight^2')
glm.Coefficients.Estimate(3)
glm.Coefficients.Estimate(3)/sqrt(glm.CoefficientCovariance(3,3))
2*(1 - tcdf(glm.Coefficients.Estimate(3)/sqrt(glm.CoefficientCovariance(3,3)),glm.DFE))
You could compute a contrast among the coefficients (instead of just taking the third one as I did), use the covariance matrix to compute the variance of this contrast, and so on. Then you could pick the desired tail of the t distribution.
  2 Comments
Arman
Arman on 13 Nov 2012
Edited: Arman on 13 Nov 2012
Thanks a lot for your answer. I managed to understand most of the procedure, so back to my model:
responseVariable ~ 1 + groupVar1 +groupVar2 + groupVar3 +nuisanceVar4 + nuisanceVar5
When my contrast is [0 1 -1 0 0 0] to test the hypothesis of whether the mean of second group is lower than that of first, I have difficulty understanding the appropriate coefficient and covariance for the rest of the analysis. I think the correct coefficient for this contrast is the linear combination of that of the "groupVar1" and "groupVar2", is that right? And with regard to the coefficient covariance for t-statistic calculation, is it the linear combination of covariances for each of the regression coefficients (namely, "groupVar1" and "groupVar2" from glm.CoefficientCovariance matrix provided in MATLAB)?
Tom Lane
Tom Lane on 14 Nov 2012
If you have three groups and you include dummy variables for them all, I'd expect that to be collinear with the constant term. But in general for a contrast such as c=[0 1 -1 0 0 0], coefficient vector b, and covariance matrix V, c*b is your estimated contrast and c*V*c' its variance.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!