Skip to content

a question about lm on t-test.

12 messages · Jeff Newmiller, Lao Meng, Daniel Malter +1 more

#
Hi,
you may have noticed, that your t-test and lm had not the same p-values
for the difference in means, which is calculated for group2 when you use
treatment contrasts and that is what R does by default (see
?contr.treatment). This is because R uses Welsh test by default. Pros
and cons are beyond this post, but look at

(t1<-t.test(extra~group,data=sleep,var.equal=T))
(s1<-summary(lm(extra~group,data=sleep)))
all.equal(s1$coef["group2","Pr(>|t|)"],t1$p.value)

The intercept in lm is tested against 0 (one sample t-test),
so the t-statistic is (mean-0)/sd, having n-k (sample size - number of
parameters) degrees of freedom.

cc<-s1$coef["(Intercept)",1:2]
2*(1-pt(cc[1]/cc[2],df=18))


hth.

Am 16.08.2011 07:25, schrieb Lao Meng:

  
    
#
Hi Lao,
thats not the same test. The concept of linear regression applies here
(and you might take any introductory at your hand to refresh that
concept). The intercept is estimated from the whole sample not just
group==1, dfs are 20-2, not sum(group==1)-1!

best regards

Am 17.08.2011 09:57, schrieb Lao Meng:

  
    
#
Pick up a book or the like on ordinary least squares regression, which is
what lm() in its plain vanilla application does. The t-value is the
estimated coefficient divided by the standard error. The standard errors of
the coefficients are the diagonal entries of the variance-covariance matrix. 

x<-rnorm(100)
y<-2+x+rnorm(100)
reg<-lm(y~x)
summary(reg)$coefficients
sqrt(diag(vcov(reg)))

See also: http://en.wikipedia.org/wiki/Ordinary_least_squares

HTH,
Daniel
Lao Meng wrote:
--
View this message in context: http://r.789695.n4.nabble.com/a-question-about-lm-on-t-test-tp3746371p3752025.html
Sent from the R help mailing list archive at Nabble.com.
#
That is a speciality of your model - it is actually an ANOVA-model (with
2 groups). Even so the variance of the intercept is estimated from the
whole sample, not only for group==1 (thats why the statistics and
p-values differ) - and that analysis is equivalent to a t-test with
common variance (aka classical t-test).

A different kettle of fish is a regression with continuous predictors like
(s1<-summary(lm(extra~as.numeric(group),data=sleep)))

where your estimates depend on the coding of group.

cheers.

Am 18.08.2011 08:50, schrieb Lao Meng:

  
    
#
I should have written "the standard errors of the coefficients are the SQUARE
ROOT of the diagonal entries of the variance-covariance matrix," as I
programmed it in the code.
Daniel Malter wrote:
--
View this message in context: http://r.789695.n4.nabble.com/a-question-about-lm-on-t-test-tp3746371p3752068.html
Sent from the R help mailing list archive at Nabble.com.