*! version 1.0.0 TJS 9jun2000 program define nct2, rclass version 6.0 args t delta df tempname p1 p2 ps if "`df'" == "" { di in gr "Syntax for " in wh "nct2" in gr " is: " _n di in wh " nct2 " in gr "t' delta df" _n di in gr " where " in wh "t' " in gr "is the observed t" di in wh " delta " in gr "is the noncentrality parameter" di in wh " df " in gr "is the degrees of freedom" _n di in wh " nct2 " in gr "computes " in wh "p" _c di in gr " such that P(|t|<=" in wh "t'" in gr "| " in wh "delta" _c di in gr ", " in wh "df" in gr ") = 1 - " in wh "p" di in gr " and returns the value in result " _c di in wh "r(p) " in gr "and global " in wh "S_1" in gr "." global S_1 = . return scalar p = . exit 9 } capture which nctprob if _rc == 111 { di in re "nct2 requires installation of program nctprob." di in wh " (contact T. J. Steichen at steicht@rjrt.com for nctprob)." global S_1 = . return scalar p = . exit 111 } qui nctprob `t' `delta' `df' if _rc == 198 { di in re "nct2 requires version 3.0.5 or later of integ." di in wh " (use " in ye "which integ " _c di in wh "to check version number)." global S_1 = . return scalar p = . exit 198 } scalar `p2' = 1 - $S_1 local t = -`t' qui nctprob `t' `delta' `df' scalar `p1' = $S_1 scalar `ps' = `p2' + `p1' global S_1 = `ps' return scalar p = `ps' local t = -`t' di _n in gr " P( t <= " -`t' " | delta = " _c di in gr `2' ", df = " `3' ") = " in ye `p1' di in gr " P( t >= " `t' " | delta = " _c di in gr `2' ", df = " `3' ") = " in ye `p2' di in gr " P(|t| <= " `t' " | delta = " _c di in gr `2' ", df = " `3' ") = " in ye `ps' end