Hi Bander,

I'm pushing this discussion back to the list, because I'm not sure of the 
shape/rate parameters for rpareto and rexp and how they'd be applied across 
this mix of typo'd papers.

# Reed Equation 6 http://www.math.uvic.ca/faculty/reed/dPlN.3.pdf exponentiated 
per end of sec 3:
rdpln<-function(n,a=1,b=1,t=1,v=0){exp(v+t*rnorm(n,sd=t)+rexp(n,rate=1/a)-rexp(n,rate=1/b))}

# Reed Equation 10:
library(VGAM)
rdpln2<-function(n,a,b,v,t){ rlnorm(n,meanlog=v,sdlog=t)*
                               rpareto(n,location=1,shape=1/a)/
                               rpareto(n,location=1,shape=1/b)}
 
boxplot(data.frame(x1= log(rdpln(a=2.5,b=.01,t=0.45,v=6.5,n=100000)), x2= 
log(rdpln2(a=2.5,b=.01,t=0.45,v=6.5,n=100000))))  

# Reed equation 8 http://www.math.uvic.ca/faculty/reed/dPlN.3.pdf 
# with S1 errata #1 from 
http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0048964 

ddpln <- function(x, a=1, b=1, v=0, t=1){
 # Density of Double Pareto LogNormal distribution
 # from "b. alzahrani" <cs_2...@hotmail.com> email of 2013-11-13
 # per formula 8 from http://cs.stanford.edu/people/jure/pubs/dpln-kdd08.pdf

  c <- (a * b /(a+b))

  norm1<-pnorm((log(x)-v-(a*t^2))/t)
  norm2<-pnorm((log(x)-v+(b*t^2))/t)
  expo1<-  a*v+(a^2*t^2/2)
  expo2<- -b*v+(b^2*t^2/2)  # edited from the paper's eqn 8  with: s/t/v/

  z<- (x^(-a-1)) * exp(expo1)*(  norm1)
  y<- (x^( b-1)) * exp(expo2)*(1-norm2)  # 1-norm is the complementary CDF of 
N(0,1)

  c*(z+y)
}


Dave



On Nov 14, 2013, at 9:12 AM, David Forrest <d...@vims.edu>
 wrote:

> 
> I think exponentiation of eqn 6 from the Reed paper generates DPLN variates 
> directly, so maybe:
> 
> rdpln=function(n,a=1,b=1,t=1,v=0){exp(v+t*rnorm(n,sd=t)+rexp(n,rate=1/a)-rexp(n,rate=1/b))}
> 
> 
> Dave
> 
> 
> On Nov 13, 2013, at 4:34 PM, "b. alzahrani" <cs_2...@hotmail.com>
> wrote:
> 
>> You help is much appreciated. Just one last point if you could help, Now I 
>> want to pass this curve to a function that can generate random numbers 
>> distributed according to DPLN ( right curve).
>> 
>> I found the package Runuran can do that 
>> http://cran.r-project.org/web/packages/Runuran/Runuran.pdf  but I do not 
>> know how to do it I think it would be something similar to page 8 and 9.
>> 
>> Regards
>> ******************************************************************
>> Bander 
>> *************************************
>> 
>> 
>> 
>> From: d...@vims.edu
>> To: cs_2...@hotmail.com
>> Subject: Re: [R] Double Pareto Log Normal Distribution DPLN
>> Date: Wed, 13 Nov 2013 21:13:43 +0000
>> 
>> 
>> I read the parameters in Fig 4, right as "DPLN[2.5,0.1,0.45,6.5]", so:
>> 
>> x<- 10^seq(0,4,by=.1)
>> plot(x,ddpln(x,a=2.5,b=.01,v=6.5,t=0.45),log='xy',type='l')
>> 
>> ... and the attached graph does not look dissimilar the figure--It starts at 
>> 10^-2, goes through 10^-4 at x=100, and elbows down around 900 and passes 
>> through 10^-6 at about 2000.
>> 
>> The correction of Reed helps -- The uncorrected Reed Eq9 equation suggests 
>> that the the 't' in Sehshadri Eq9 should be a 'v' , but it doesn't exactly 
>> make sense with the extra 'a' in there.  If the errata clears that up, then 
>> your expo2 term looks just like the expo1 term, but with a=-b.
>> 
>> 
>> 
>> 
>> 
>> On Nov 13, 2013, at 3:43 PM, "b. alzahrani" wrote: > Thank you very much for 
>> the help and the change you suggested in my code, I also found a correction 
>> on equation 9 that has been published by Reed ( here 
>> http://www.math.uvic.ca/faculty/reed/dPlN.3.pdf i.e. the original paper on 
>> Double Pareto Log Normal Distribution ). > > can you please see the 
>> correction in this 
>> linkhttp://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0048964
>>  (in Supporting Information section, appendix S1), does your suggested code 
>> coincide with the correction on this link? as I can see > > Actually, I am 
>> interested in the most right curve in figure 4. and if we plot the curve 
>> with same order of the paper's parameters you suggests: 
>> plot(x,ddpln(x,a=2.8,b=.01,v=6.5,t=0.45),log='xy',type='l') the curve is 
>> different from the one in the paper?? > > Thanks > > 
>> ****************************************************************** > Bander 
>> Alzahrani, > ************************************* > > > > > From: 
>> d...@vims.edu > > To: cs_2...@hotmail.com > > CC: r-h...@stat.math.ethz.ch > 
>> > Subject: Re: [R] Double Pareto Log Normal Distribution DPLN > > Date: Wed, 
>> 13 Nov 2013 19:09:34 +0000 > > > > ...Additionally...your set of parameters 
>> match none of the curves in figure 4. > > > > I think the ordering of the 
>> parameters as listed on the graphs is different than in the text of the 
>> article. > > > > The 'v' parameter controls the location of the 'elbow' and 
>> should be near log(x) in each graph, while the 't' parameter is the 
>> sharpness of the elbow. So eyeballing the elbows: > > > > 
>> log(c(80,150,300))= 4.382027 5.010635 5.703782 > > > > These appear to match 
>> positional parameter #4 in the legends, which you apply as parameter t in 
>> your function. > > > > > > # editing your function a bit: > > > > ddpln <- 
>> function(x, a=2.5, b=0.01, v=log(100), t=v/10){ > > # Density of Double 
>> Pareto LogNormal distribution > > # from "b. alzahrani" email of 2013-11-13 
>> > > # per formula 8 from 
>> http://cs.stanford.edu/people/jure/pubs/dpln-kdd08.pdf > > > > c <- (a * b 
>> /(a+b)) > > > > norm1<-pnorm((log(x)-v-(a*t^2))/t) > > 
>> norm2<-pnorm((log(x)-v+(b*t^2))/t) > > expo1<- a*v+(a^2*t^2/2) > > expo2<- 
>> -b*v+(b^2*t^2/2) # edited from the paper's eqn 8 with: s/t/v/ > > > > z<- 
>> (x^(-a-1)) * exp(expo1)*(norm1) > > y<- (x^(b-1)) * exp(expo2)*(1-norm2) # 
>> 1-norm is the complementary CDF of N(0,1) > > > > c*(z+y) > > } > > > > 
>> x<-10^seq(0,5,by=0.1) # 0-10k > > > > 
>> plot(x,ddpln(x,a=2.8,b=.01,v=3.8,t=0.35),log='xy',type='l') # Similar to fig 
>> 4 left. > > > > plot(x,ddpln(x,a=2.5,b=.01,v=log(2)),log='xy',type='l') > > 
>> plot(x,ddpln(x,a=2.5,b=.01,v=log(10)),log='xy',type='l') > > 
>> plot(x,ddpln(x,a=2.5,b=.01,v=log(100)),log='xy',type='l') > > 
>> plot(x,ddpln(x,a=2.5,b=.01,v=log(1000)),log='xy',type='l') > > 
>> plot(x,ddpln(x,a=2.5,b=.01,v=log(10000)),log='xy',type='l') > > > > Dave > > 
>> > > On Nov 13, 2013, at 11:43 AM, "b. alzahrani" > > wrote: > > > > > > > > 
>> Hi > > > > > > I found this 
>> paperhttp://cs.stanford.edu/people/jure/pubs/dpln-kdd08.pdf that models the 
>> DPLN distribution as in equation 8. I implemented this in R but cannot get 
>> the same curve as in Figure 4. can you please check if my code below is 
>> correct: e.g. is the use of pnorm() correct here? > > > > > > ddlpn <- 
>> function(x){ > > > a=2.8 > > > b=0.01 > > > v=0.45 > > > t=6.5 > > > j <- (a 
>> * b /(a+b)) > > > > > > norm1<-pnorm((log(x)-v-(a*t^2))/t) > > > expo1<- 
>> a*v+(a^2*t^2/2) > > > > > > z<-exp(expo1)*(x^(-a-1))*(norm1) > > > > > > 
>> norm2<-pnorm((log(x)-v+(b*t^2))/t) > > > expo2<- -b*t+(b^2*t^2/2) > > > > > 
>> > y<- x^(b-1)*exp(expo2)*(1-norm2) # 1-norm is the complementary CDF of 
>> N(0,1) > > > j*(z+y) > > > } > > > 
>> ****************************************************************** > > > 
>> Bander Alzahrani, Teacher Assistant > > > Information Systems Department > > 
>> > Faculty of Computing & Information Technology > > > King Abdulaziz 
>> University > > > > > > ************************************* > > > > > > > > 
>> > > > >> From: d...@vims.edu > > >> To: cs_2...@hotmail.com > > >> CC: 
>> r-h...@stat.math.ethz.ch > > >> Subject: Re: [R] Double Pareto Log Normal 
>> Distribution > > >> Date: Tue, 12 Nov 2013 16:51:22 +0000 > > >> > > >> > > 
>> >> http://www.math.uvic.ca/faculty/reed/dPlN.3.pdf is the original ref and 
>> has the equations. > > >> > > >> library(VGAM) for *pareto() and 
>> library(stats) for *lnorm() should get you most of the way there. > > >> > > 
>> >> On Nov 12, 2013, at 10:47 AM, "b. alzahrani" > > >> wrote: > > >> > > >>> 
>> Hi guys > > >>> I would like to generate random number Double Pareto Log 
>> Normal Distribution (DPLN). does anyone know how to do this in R or if there 
>> is any built-in function. > > >>> > > >>> Thanks > > >>> > > >>> 
>> ****************************************************************** > > >>> 
>> Bander > > >>> ************************************* > > >>> > > >>> > > >>> 
>> > > >>> [[alternative HTML version deleted]] > > >>> > > >>> 
>> ______________________________________________ > > >>> R-help@r-project.org 
>> mailing list > > >>>https://stat.ethz.ch/mailman/listinfo/r-help > > >>> 
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html 
>> > > >>> and provide commented, minimal, self-contained, reproducible code. > 
>> > >> > > >> -- > > >> Dr. David Forrest > > >> d...@vims.edu > > >> > > >> > 
>> > >> > > >> > > >> > > > > > > [[alternative HTML version deleted]] > > > > 
>> > > ______________________________________________ > > > 
>> R-help@r-project.org mailing list > > > 
>> https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the 
>> posting guide http://www.R-project.org/posting-guide.html > > > and provide 
>> commented, minimal, self-contained, reproducible code. > > > > -- > > Dr. 
>> David Forrest > >d...@vims.edu > > > > > > > > -- Dr. David Forrest 
>> d...@vims.edu 804-684-7900w 757-968-5509h 804-413-7125c 104 Three Point Ct 
>> Yorktown, VA, 23692-4325
> 
> --
> Dr. David Forrest
> d...@vims.edu
> 

--
Dr. David Forrest
d...@vims.edu



Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to