bolker@zoo.ufl.edu
2001-Dec-17 15:58 UTC
[Rd] behavior of r* and d* functions at boundaries (PR#1218)
(Sent this to r-help back in October, got no comments, forgot to re-submit it as a bug report.) There are a few inconsistencies, at least, in some of the functions that generate random deviates from particular distributions (I think they're bugs because they're inconvenient, but maybe someone can make an argument for the current behavior). If people think these are really bugs I can submit them, together or separately. 1. rlnorm(n,mean,sd) gives NaN for sd=0, rather than always returning the mean. This is inconsistent with rnorm(), which returns the mean. 2. rnbinom(n,prob,size) gives NaN when prob=1; always returning 0 would be reasonable, and consistent with the output of dnbinom(). [This is equivalent to rnbinom(n,mu=0,size) in the new parameterization.] 3. rgamma(n,shape,scale) happily returns 0 when shape=0 or scale=0. However, dgamma(x,shape=0) [and pgamma(x,shape=0)] gives NaN. This behavior is actually convenient for me, but I could make an argument for returning a warning in this case. In general, I don't know what (e.g.) dnorm(m,mean=m,sd=0) should return: NaN (as at present) or Inf? I guess it depends how fussy you're being and how you're taking limits. The fixes seem straightforward. Ben Bolker Version: platform = i686-pc-linux-gnu arch = i686 os = linux-gnu system = i686, linux-gnu status = major = 1 minor = 3.1 year = 2001 month = 08 day = 31 language = R Search Path: .GlobalEnv, package:ctest, Autoloads, package:base -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Martin Maechler
2001-Dec-18 13:51 UTC
[Rd] behavior of r* and d* functions at boundaries (PR#1218)
>>>>> "Ben" == Ben Bolker <bolker@zoo.ufl.edu> writes:Ben> (Sent this to r-help back in October, got no Ben> comments, forgot to re-submit it as a bug report.) Ben> There are a few inconsistencies, at least, in some of Ben> the functions that generate random deviates from Ben> particular distributions (I think they're bugs because Ben> they're inconvenient, but maybe someone can make an Ben> argument for the current behavior). If people think Ben> these are really bugs I can submit them, together or Ben> separately. Ben> 1. rlnorm(n,mean,sd) gives NaN for sd=0, rather than Ben> always returning the mean. This is inconsistent with Ben> rnorm(), which returns the mean. Ben> 2. rnbinom(n,prob,size) gives NaN when prob=1; always Ben> returning 0 would be reasonable, and consistent with Ben> the output of dnbinom(). [This is equivalent to Ben> rnbinom(n,mu=0,size) in the new parameterization.] these two above are fixed for 1.4 Ben> 3. rgamma(n,shape,scale) happily returns 0 when shape=0 Ben> or scale=0. However, dgamma(x,shape=0) [and Ben> pgamma(x,shape=0)] gives NaN. This behavior is actually Ben> convenient for me, but I could make an argument for Ben> returning a warning in this case. Ben> In general, I don't know what (e.g.) Ben> dnorm(m,mean=m,sd=0) should return: NaN (as at present) Ben> or Inf? Ben> I guess it depends how fussy you're being and how Ben> you're taking limits. My approach would be to always return the limit if it's well defined (as here). For any random variate X, when Var(X) = 0, r<dist>() should return E(X) (if that is defined) I think. This would mean that rgamma() is fine and dnorm() could be improved. dgamma(0,shape=0) should give Inf as well and pgamma(0,shape=0) |-> 1. The fact that pnorm(mu, mu, sd = 0) currently gives NaN instead of 1 is a bug IMO. Another line of reasoning could be that "shape=0" (or less clearly "sd = 0") are not allowed (as per ?rgamma), and giving NaN would reflect this. I'm not share this view but leave all this for after release. Ben> The fixes seem straightforward. (yes, at least for 1) and 2)) Thank you, Ben, for reporting these! Martin Maechler <maechler@stat.math.ethz.ch> http://stat.ethz.ch/~maechler/ Seminar fuer Statistik, ETH-Zentrum LEO C16 Leonhardstr. 27 ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND phone: x-41-1-632-3408 fax: ...-1228 <>< -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._