| Title | Stata 6: Obtaining one-tailed probabilities for the t distribution | |
| Author | James Hardin, StataCorp | |
| Date | March 1997 |
The tprob and invt functions both return values based on a two-tailed approach. If you want the output of tprob based on one tail (the usual cumulative distribution approach) then it depends on whether the statistic is negative or positive:
. local p1 = 1 - tprob(15,1.6)/2
. di "The value of t(1.6) with 15 degrees of freedom is " 'p1'
The value of t(1.6) with 15 degrees of freedom is .93477749
. local p2 = tprob(61,-1.96)/2
. di "The value of t(-1.96) with 61 degrees of freedom is " 'p2'
The value of t(-1.96) with 61 degrees of freedom is .02728415
You can write a function to calculate this using cond as in
. local t = 1.65
. local df = 22
. local qt = cond('t'<=0,tprob('df','t')/2,1-tprob('df','t')/2)
. di 'qt'
.94342544
Similarly, when using the invt function you must also make an adjustment in order to calculate the usual quantile function. To get a random sample of values from the t-distribution with 8 degrees of freedom, you could do the following
. gen u = uniform()
. gen tsamp = cond(u<.5,-invt(8,1-2*u),invt(8,2*u-1))