Empirical CDF
- To: mathgroup at smc.vnet.net
- Subject: [mg58912] Empirical CDF
- From: "David Kahle" <david.kahle at richmond.edu>
- Date: Sat, 23 Jul 2005 05:32:26 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
MathGroup -
swidrygiello posted on Fri, 13 Sep 2002 a question on how to create the
empirical cumulative distribution function (ECDF) with Mathematica. Since
then, few others (Mark Fisher, [mg36613], for example) have posted
responses utilizing the Interpolation[] command. However, similar results
can be achieved using the simple code :
For[i=1,i<(Length[rand]+1),preF[x_,i_]:=UnitStep[x-rand[[i]]],i++]
F[x_]:=Sum[preF[x,i],{i,Length[rand]}]/Length[rand]
Where 'rand' is the vector containing the random observations. The
resulting function F is right continuous, limits to 0 and 1 as we would
like it to, and has the correct step sizes. Even better, Mathematica is
more comfortable manipulating UnitStep functions than it is piecewise
functions defined with the Which[] command. For example, if we would like
to integrate the ECDF to test for certain orderings (Stochastic dominance,
etc.), Mathematica understands integrating the F as defined above, but if
we use the Which[] command it resorts to numerical techniques which
typically fail for various reasons. Hope it helps.
David Kahle
david.kahle at richmond.edu