# Is paired t-test valid for half-normal data?

ok i am not a statistician.

I am doing paired comparison for several outcomes of cross validated interpolation results.

I have to consider only the absolute value in my analysis and so although original data follows a normal distribution the resultant absolute values are only half normal.

So is the t-test still valid and sound and in either case (yes/no) what is the reasoning behind it ?

• Could you elaborate on why you are considering only absolute values? That seems artificially restrictive, maybe even counterproductive.
– whuber
Commented Feb 24, 2012 at 16:19
• the values i am considering are cross validation errors and i need to check whether the deviation from actual value is very high ( i am averaging them for summary) ...i have realized that perhaps i can perform the test using actual values too Commented Feb 24, 2012 at 19:43

It is not valid in general because the deduction of the distribution of the t-statistic depends on the assumption of normality. In addtion, the interpretration of testing the hypothesis of equality of means in the half-normal case is not clear because the mean depends on the parameters mu and sigma. Therefore if the variance of the populations differs (even slightly), you will reject the hypothesis more than you should even if the parameters mu1=mu2 (this is, you are not getting the desired Type I error level). Take a look at this code so you can verify it

rm(list=ls())
power = function(n,ns,mu1,mu2,s1,s2){
count = rep(0,n)
for(i in 1:n){
x = mu1 + abs(rnorm(ns,0,s1))
y = mu2 + abs(rnorm(ns,0,s2))
if(t.test(x,y,paired=TRUE)\$p.value>0.05) count[i] = 1
}
return(1-mean(count))
}
power(10000,30,1,1,1,1.15)
power(10000,100,1,1,1,1.15)
power(10000,30,1,1.1,1,1)


Perhaps it would be helpful to plot the profile likelihood of the parameters of each population and take a look at the similarities between them. Also you could use a likelihood ratio test instead.

I hope this helps.

Best wishes.

A paired t-test is equivalent to a one sample t-test of the differences being 0.

You could, therefore, take these differences and see if they are normally distributed or not. These differences could be normally distributed, even if the original values are not. e.g.

diff <- rnorm(100, 0, 1)
first <- diff + runif(100,10, 100)
second <- first - diff
qqnorm(diff)
qqnorm(first)
qqnorm(second)