MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: bug in RandomChoice if weight is zero?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg106059] Re: [mg106027] Re: [mg105976] bug in RandomChoice if weight is zero?
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Thu, 31 Dec 2009 03:18:18 -0500 (EST)
  • References: <200912290617.BAA02582@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

If a probability is very small or algebraically zero but not easily  
verified as such, you have a point.

But the OP's example had an explicit integer 0. Mathematica should have  
thrown an error.

Bobby

On Wed, 30 Dec 2009 14:47:42 -0600, Leonid Shifrin <lshifr at gmail.com>  
wrote:

> Nothing, but as I said, issuing diagnostic message for this particular  
> case
> seems to me like a point solution, given that there may be extremely  
> small
> non-zero weights expressed analytically (as a rational for example). I  
> may
> be wrong of course.
>
> On Wed, Dec 30, 2009 at 8:29 AM, DrMajorBob <btreat1 at austin.rr.com>  
> wrote:
>
>> Generally, what you ask for should be possible once you give a specific
>>> interpretation of what you mean by zero
>>>
>>
>> What's ambiguous about the Integer 0?
>>
>> Bobby
>>
>>
>> On Wed, 30 Dec 2009 03:17:21 -0600, Leonid Shifrin <lshifr at gmail.com>
>> wrote:
>>
>>  Hi Matthias,
>>>
>>> presumably this is because RandomSample never samples any given element
>>> more
>>> than once - in that case it has no other choice, regardless of the  
>>> weight.
>>> Perhaps, the error message might be added for exact symbolic zero
>>> appearing
>>> somewhere in the wieights for the case where the size of the desired
>>> sample
>>> is larger than the number of non-zero weights (non-zero means
>>> UnsameQ[weight,0]).  It is not clear however whether it is worth it  
>>> given
>>> the overhead of such an analysis. Besides, this will be a point  
>>> solution
>>> anyway, since some expressions that might be used for weights may be in
>>> fact
>>> identically equal to zero but just not simplified to zero - these cases
>>> would not be caught by such an analysis.
>>>
>>> OTOH, it is hard to make a formal (not based on syntax) distinction
>>> between
>>> zero and some very small weight close to zero (which may be expressed  
>>> not
>>> necessarily with machine precision). This of course depends on the
>>> implementation of the underlying algorithm used to do the sampling -
>>> whether
>>> or not it treats weights smaller than machine epsilon as zero. From the
>>> point of view of the abstract interface of RandomSample, there is no
>>> reason
>>> why it should do that, even if such events are highly unlikely to be
>>> sampled.
>>>
>>> Generally, what you ask for should be possible once you give a specific
>>> interpretation of what you mean by zero, but arguably this would add  
>>> more
>>> ambiguities/restrictions than it is worth for a kind of a  
>>> general-purpose
>>> function that RandomSample is. After all, you can always wrap  
>>> RandomSample
>>> in your own wrapper function which will implement this functionality in
>>> the
>>> way you want it (consistent with your definition of zero), while
>>> preserving
>>> the syntax of the original RandomSample.
>>>
>>> Regards,
>>> Leonid
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Dec 29, 2009 at 9:17 AM, Matthias Greiff <greiff at mac.com>  
>>> wrote:
>>>
>>>  If I use RandomChoice with weights of zero the corresponding elements
>>>> will
>>>> never be selected.
>>>>
>>>> In[62]:= RandomChoice[{0, 0, 3} -> {3, 2, 1}, 5]
>>>> Out[62]= {1, 1, 1, 1, 1}
>>>>
>>>> Why is it not the same if I use RandomSample?
>>>> The following command
>>>>
>>>> RandomSample[{1, 2, 0} -> Range[3], 2]
>>>>
>>>> returns either {1,2} or {2,1}. But when I change the command to sample
>>>> size
>>>> 3  I get the following.
>>>>
>>>> In[60]:= RandomSample[{1, 2, 0} -> Range[3], 3]
>>>> Out[60]= {2, 1, 3}
>>>>
>>>> Why is the third element selected? Shouldn't Mathematica return an  
>>>> error
>>>> message because the sample size is larger than the population size?
>>>>
>>>> Appreciate your answers.
>>>>
>>>> Merry Christmas!
>>>>
>>>> Matthias
>>>>
>>>>
>>>>
>>
>> --
>> DrMajorBob at yahoo.com
>>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: Replace and ReplaceAll -- simple application
  • Next by Date: Re: Replace and ReplaceAll -- simple application
  • Previous by thread: Re: Re: bug in RandomChoice if weight is zero?
  • Next by thread: Re: bug in RandomChoice if weight is zero?