\CANCEL MODE VERIFY 
! Contributed by Andreas Schmittner 31 Oct 2001
! Corrections by Jian Ma 08 Aug 2009
!
!
! Description:  define FERRET variables for regression along the X and Y axis

say ... Linear Regression In the XY Plane
say ... Instructions:
say Use the LET command to define new variables
say Define the variable P as your independent (X) variable
say Define the variable Q as your   dependent (Y) variable
say Results will be variables "SLOPE", "INTERCEP" and "RSQUARE"
say QHAT will be the regression estimate
say Note: If "Y" is your independent variable then
say ...   "SET GRID Q" after defining Q.
say ... 

let pq = p*q
let pqmask = pq-pq  ! 0 or "missing" so all variables share the same
missing
let pmasked = p + pqmask
let qmasked = q + pqmask
let pp = pmasked*pmasked
let qq = qmasked*qmasked

let pave = pmasked[x=@ave,y=@ave]
let qave = qmasked[x=@ave,y=@ave]
let pqave = pq[x=@ave,y=@ave]
let ppave = pp[x=@ave,y=@ave]
let qqave = qq[x=@ave,y=@ave]

let pvar  = ppave - pave*pave
let qvar  = qqave - qave*qave
let pqvar = pqave - pave*qave

let slope = pqvar / pvar
let intercep = qave - slope*pave
let qhat = slope*p + intercep
let rsquare = (pqvar*pqvar) / (pvar*qvar)
let corr = pqvar/(pvar*qvar)^0.5

SET MODE/LAST VERIFY



