Re: equiprobable intervals with triangular pdf (CORRECTION)
- To: mathgroup at smc.vnet.net
- Subject: [mg41490] Re: equiprobable intervals with triangular pdf (CORRECTION)
- From: bobhanlon at aol.com (Bob Hanlon)
- Date: Thu, 22 May 2003 06:56:18 -0400 (EDT)
- References: <bafqqa$6su$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
The LHS of the definitions for Mean, Mode, Variance, and StandardDeviation below should have the second argument (i.e., x_) removed. I copied the form and forgot to delete the unnecessary argument. I regret the inconvenience. Bob Hanlon In article <bafqqa$6su$1 at smc.vnet.net>, bobhanlon at aol.com (Bob Hanlon) wrote: << Subject: Re: equiprobable intervals with triangular pdf From: bobhanlon at aol.com (Bob Hanlon) To: mathgroup at smc.vnet.net Date: Wed, 21 May 2003 12:18:18 +0000 (UTC) It is generally better to define piecewise continuous functions with UnitStep. It is also recommended that you follow the conventions used in Statistics`ContinuousDistributions` for defining distributions so that use of your distribution is consistent with use of the standard distributions. Clear[TriangularDistribution, a, b, x]; TriangularDistribution::usage = "TriangularDistribution[a, b] represents the triangular distribution defined on the interval [a, b]."; TriangularDistribution /: PDF[ TriangularDistribution[a_, b_], x_] := (UnitStep[x-a]*4*(x-a) + UnitStep[x-(a+b)/2]*4*(a+b-2*x) + UnitStep[x-b]*4*(x-b))/(a-b)^2; TriangularDistribution /: CDF[ TriangularDistribution[a_, b_], x_] := Evaluate[FullSimplify[Integrate[ PDF[TriangularDistribution[a,b],x], {x,-Infinity,x}]]]; TriangularDistribution /: Mean[ TriangularDistribution[a_, b_], x_] := (a+b)/2; TriangularDistribution /: Mode[ TriangularDistribution[a_, b_], x_] := (a+b)/2; TriangularDistribution /: Variance[ TriangularDistribution[a_, b_], x_] := (a-b)^2/24; TriangularDistribution /: StandardDeviation[ TriangularDistribution[a_, b_], x_] := Sqrt[(a-b)^2/24]; TriangularDistribution /: Moment[ TriangularDistribution[a_, b_], n_Integer?NonNegative] := Simplify[-((2*((a + b)^(n + 2)/2^n - 2*(a^(n + 2) + b^(n + 2))))/ ((a - b)^2*(n + 1)*(n + 2)))]; TriangularDistribution /: Quantile[ TriangularDistribution[a_,b_], q_] := (1/4)*(4*a-2*Sqrt[2]*(a-b)*Sqrt[q]) + UnitStep[q-1/2]*(1/2)*(a-b)*(Sqrt[2-2*q]+Sqrt[2]*Sqrt[q]-2) /; 0 <=q<=1 && b>a; TriangularDistribution /: equiProb[ TriangularDistribution[a_,b_], n_Integer?Positive] := Partition[Table[Quantile[dist,k/n],{k,0,n}],2,1]; As an example of deriving the functions defined above, the n-th Moment is defined by FullSimplify[Integrate[ x^n*PDF[TriangularDistribution[a,b],x], {x,a,b}], b>a] -((2*((a + b)^(n + 2)/2^n - 2*(a^(n + 2) + b^(n + 2))))/ ((a - b)^2*(n + 1)*(n + 2))) a=2; b=5; dist=TriangularDistribution[a,b]; Plot[{PDF[dist,x], CDF[dist,x]}, {x,a-2,b+2}, PlotRange->All]; And @@ Table[xr = Random[Real, {a,b}]; Quantile[dist, CDF[dist, xr]]==xr, {100}] True And @@ Table[qr = Random[]; CDF[dist, Quantile[dist, qr]]==qr, {100}] True Plot[Quantile[dist, q], {q,0,1}]; ep=Simplify[equiProb[dist,6]]; Integrate[PDF[dist, x], {x,#[[1]],#[[2]]}]& /@ ep // Simplify {1/6, 1/6, 1/6, 1/6, 1/6, 1/6} Bob Hanlon In article <baclfp$r4h$1 at smc.vnet.net>, S White <susanlcw at aol.com> wrote: << Subject: equiprobable intervals with triangular pdf From: S White <susanlcw at aol.com> To: mathgroup at smc.vnet.net Date: Tue, 20 May 2003 07:28:57 +0000 (UTC) Hello all, I posted a couple of weeks ago about dividing a normal distribution into n equiprobable intervals and received some great responses. I am now working with a triangular pdf and need to do the same thing. I am defining the triangular pdf on the interval [a,b] with mean at (a+b)/2 as follows: triPdf[x_,a_,b_]:=(2/(b-a))^2*(x-a)/;a<=x<(b+a)/2; triPdf[x_,a_,b_]:=(2/(b-a))^2*(b-x)/;(b+a)/2<=x<=b; triPdf[x_,a_,b_]:=0/;a>x||x>b; triCdf[x_,a_,b_]:=N[Integrate[triPdf[y,a,b],{y,a,x}]] When working with the normal command, the following function gave me output in the form I need: equiprob[dist_,n_]:=Partition[Table[Quantile[dist,k/n],{k,0,n}],2,1] However, the Quantile function doesn't work on this triangular pdf. I have worked on defining some function that would do the same thing as the Quantile function does but I keep running into numerous error messages and it only works for certain a and b. Does anyone have a suggestion of a function that will give me equiprobable intervals in the output form {{a,x1},{x1,x2},...,{xn,b}}, where a,x1,...,xn,b are the endpoints of the equiprobable intervals? I really appreciate any help... Susan >><BR><BR>