[R] The equivalence of t.test and the hypothesis testing of one way ANOVA

Peng Yu pengyu.ut at gmail.com
Thu Nov 5 15:21:12 CET 2009


I read somewhere that t.test is equivalent to a hypothesis testing for
one way ANOVA. But I'm wondering how they are equivalent. In the
following code, the p-value by t.test() is not the same from the value
in the last command. Could somebody let me know where I am wrong?

> set.seed(0)
> N1=10
> N2=10
> x=rnorm(N1)
> y=rnorm(N2)
> t.test(x,y)

	Welch Two Sample t-test

data:  x and y
t = 1.6491, df = 14.188, p-value = 0.1211
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.2156863  1.6584968
sample estimates:
 mean of x  mean of y
 0.3589240 -0.3624813

>
> A = c(rep('x',N1),rep('y',N2))
> Y = c(x,y)
> fr = data.frame(Y=Y,A=as.factor(A))
> afit=aov(Y ~ A,fr)
>
> X=model.matrix(afit)
> B=afit$coefficients
> V=solve(t(X) %*% X)
>
> mse=tail(summary(afit)[[1]]$'Mean Sq',1)
> df=tail(summary(afit)[[1]]$'Df',1)
> t_statisitic=(B/(mse * sqrt(diag(V))))[[2]]
> 2*(1-pt(abs(t_statisitic),df))#the p-value from aov
[1] 0.1090802
>




More information about the R-help mailing list