<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Poisson Function in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Poisson-Function/m-p/21154#M3371</link>
    <description>Hi.&lt;BR /&gt;
I think the problem is&lt;B&gt; n! &lt;/B&gt;   .when n greater than 26 &lt;B&gt; n! &lt;/B&gt;  will be very very large to out the range of sas 's exact integer.Normally due to big n ,we will use Scott Formula&lt;BR /&gt;
to approach &lt;B&gt; n! &lt;/B&gt;.That is the reason why method 1 is different from 2 3.&lt;BR /&gt;
In my opinion,Recommend to use method 1. &lt;BR /&gt;
I am not quit sure my answer is right,it is just my opinion.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Ksharp</description>
    <pubDate>Thu, 03 Mar 2011 04:48:28 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2011-03-03T04:48:28Z</dc:date>
    <item>
      <title>Poisson Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Poisson-Function/m-p/21153#M3370</link>
      <description>Hi.&lt;BR /&gt;
&lt;BR /&gt;
For a given mean, &lt;I&gt;m&lt;/I&gt;, I have computed individual Poisson probabilities three ways.&lt;BR /&gt;
&lt;BR /&gt;
1.  Using the SAS POISSON function.  This is cumulative, so&lt;BR /&gt;
     &lt;I&gt;P(m,n)&lt;/I&gt;  =  POISSON(m,n) - POISSON(m,(n-1))&lt;BR /&gt;
&lt;BR /&gt;
2.  Using the formula&lt;BR /&gt;
     &lt;I&gt;P(m,n)  =  exp(-m) * (m**n) / (n!)&lt;/I&gt;&lt;BR /&gt;
     In SAS, this is computed as:  EXP(-m) * (m**n) / FACT(n)&lt;BR /&gt;
&lt;BR /&gt;
3.  Using the recursive formula:&lt;BR /&gt;
     &lt;I&gt;P(m,0)  =  exp(-m)&lt;/I&gt;    and    &lt;I&gt;P(m,n)  =  P(m,(n-1)) * (m / n)&lt;/I&gt;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Using &lt;I&gt;m = 5&lt;/I&gt; and computing up to &lt;I&gt;n = 30&lt;/I&gt;, I have found bigger differences between the methods than I would like to see.  Methods 2 and 3 agree all the way to &lt;I&gt;n = 30&lt;/I&gt;, but Method 1, using the SAS POISSON function, starts to diverge at &lt;I&gt;n = 26&lt;/I&gt;.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
CAN ANYONE PLEASE TELL ME WHICH METHOD IS THE MOST ACCURATE?&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
18   %let    poimean =   5   ;&lt;BR /&gt;
19&lt;BR /&gt;
20&lt;BR /&gt;
21   %let    uplim   =   30  ;&lt;BR /&gt;
&lt;BR /&gt;
37   *  method 2 ;&lt;BR /&gt;
38   data    _null_  ;&lt;BR /&gt;
39       expm    =   exp(-&amp;amp;poimean.) ;&lt;BR /&gt;
40       put expm=   ;&lt;BR /&gt;
41       do  n   =   0   to  &amp;amp;uplim. ;&lt;BR /&gt;
42           poi_n   =   expm    *   (&amp;amp;poimean.**n)  /   fact(n) ;&lt;BR /&gt;
43           put n=  poi_n=  ;&lt;BR /&gt;
44       end ;&lt;BR /&gt;
45   run ;&lt;BR /&gt;
&lt;BR /&gt;
expm=0.006737947&lt;BR /&gt;
n=0 poi_n=0.006737947&lt;BR /&gt;
n=1 poi_n=0.033689735&lt;BR /&gt;
n=2 poi_n=0.0842243375&lt;BR /&gt;
n=3 poi_n=0.1403738958&lt;BR /&gt;
n=4 poi_n=0.1754673698&lt;BR /&gt;
n=5 poi_n=0.1754673698&lt;BR /&gt;
n=6 poi_n=0.1462228081&lt;BR /&gt;
n=7 poi_n=0.104444863&lt;BR /&gt;
n=8 poi_n=0.0652780393&lt;BR /&gt;
n=9 poi_n=0.0362655774&lt;BR /&gt;
n=10 poi_n=0.0181327887&lt;BR /&gt;
n=11 poi_n=0.0082421767&lt;BR /&gt;
n=12 poi_n=0.0034342403&lt;BR /&gt;
n=13 poi_n=0.0013208616&lt;BR /&gt;
n=14 poi_n=0.0004717363&lt;BR /&gt;
n=15 poi_n=0.0001572454&lt;BR /&gt;
n=16 poi_n=0.0000491392&lt;BR /&gt;
n=17 poi_n=0.0000144527&lt;BR /&gt;
n=18 poi_n=4.0146404E-6&lt;BR /&gt;
n=19 poi_n=1.0564843E-6&lt;BR /&gt;
n=20 poi_n=2.6412108E-7&lt;BR /&gt;
n=21 poi_n=6.2885971E-8&lt;BR /&gt;
n=22 poi_n=1.4292266E-8&lt;BR /&gt;
n=23 poi_n=3.1070144E-9&lt;BR /&gt;
n=24 poi_n=6.472947E-10&lt;BR /&gt;
n=25 poi_n=1.294589E-10&lt;BR /&gt;
n=26 poi_n=2.489595E-11&lt;BR /&gt;
n=27 poi_n=4.610361E-12&lt;BR /&gt;
n=28 poi_n=8.232787E-13&lt;BR /&gt;
n=29 poi_n=1.419446E-13&lt;BR /&gt;
n=30 poi_n=2.365743E-14&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.15 seconds&lt;BR /&gt;
      cpu time            0.03 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
46&lt;BR /&gt;
47   *  method 3 ;&lt;BR /&gt;
48   data    _null_  ;&lt;BR /&gt;
49       expm    =   exp(-&amp;amp;poimean.) ;&lt;BR /&gt;
50       n       =   0   ;&lt;BR /&gt;
51       poi_n   =   expm    ;&lt;BR /&gt;
52       put n=  poi_n=  ;&lt;BR /&gt;
53       do  n   =   1   to  &amp;amp;uplim. ;&lt;BR /&gt;
54           poi_n   =   poi_n   *   &amp;amp;poimean.   /   n   ;&lt;BR /&gt;
55           put n=  poi_n=  ;&lt;BR /&gt;
56       end ;&lt;BR /&gt;
57   run ;&lt;BR /&gt;
&lt;BR /&gt;
n=0 poi_n=0.006737947&lt;BR /&gt;
n=1 poi_n=0.033689735&lt;BR /&gt;
n=2 poi_n=0.0842243375&lt;BR /&gt;
n=3 poi_n=0.1403738958&lt;BR /&gt;
n=4 poi_n=0.1754673698&lt;BR /&gt;
n=5 poi_n=0.1754673698&lt;BR /&gt;
n=6 poi_n=0.1462228081&lt;BR /&gt;
n=7 poi_n=0.104444863&lt;BR /&gt;
n=8 poi_n=0.0652780393&lt;BR /&gt;
n=9 poi_n=0.0362655774&lt;BR /&gt;
n=10 poi_n=0.0181327887&lt;BR /&gt;
n=11 poi_n=0.0082421767&lt;BR /&gt;
n=12 poi_n=0.0034342403&lt;BR /&gt;
n=13 poi_n=0.0013208616&lt;BR /&gt;
n=14 poi_n=0.0004717363&lt;BR /&gt;
n=15 poi_n=0.0001572454&lt;BR /&gt;
n=16 poi_n=0.0000491392&lt;BR /&gt;
n=17 poi_n=0.0000144527&lt;BR /&gt;
n=18 poi_n=4.0146404E-6&lt;BR /&gt;
n=19 poi_n=1.0564843E-6&lt;BR /&gt;
n=20 poi_n=2.6412108E-7&lt;BR /&gt;
n=21 poi_n=6.2885971E-8&lt;BR /&gt;
n=22 poi_n=1.4292266E-8&lt;BR /&gt;
n=23 poi_n=3.1070144E-9&lt;BR /&gt;
n=24 poi_n=6.472947E-10&lt;BR /&gt;
n=25 poi_n=1.294589E-10&lt;BR /&gt;
n=26 poi_n=2.489595E-11&lt;BR /&gt;
n=27 poi_n=4.610361E-12&lt;BR /&gt;
n=28 poi_n=8.232787E-13&lt;BR /&gt;
n=29 poi_n=1.419446E-13&lt;BR /&gt;
n=30 poi_n=2.365743E-14&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.03 seconds&lt;BR /&gt;
      cpu time            0.03 seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
58   *  method 1 ;&lt;BR /&gt;
59   data    _null_  ;&lt;BR /&gt;
60       n       =   0   ;&lt;BR /&gt;
61       poi_n   =   Poisson(&amp;amp;poimean.,n)    ;&lt;BR /&gt;
62       put n=  poi_n=  ;&lt;BR /&gt;
63       nm1     =   n   ;&lt;BR /&gt;
64       do  n   =   1   to  &amp;amp;uplim. ;&lt;BR /&gt;
65           poi_n   =   Poisson(&amp;amp;poimean.,n)    -   Poisson(&amp;amp;poimean.,nm1)  ;&lt;BR /&gt;
66           put n=  poi_n=  ;&lt;BR /&gt;
67           nm1     =   n   ;&lt;BR /&gt;
68       end ;&lt;BR /&gt;
69   run ;&lt;BR /&gt;
&lt;BR /&gt;
n=0 poi_n=0.006737947&lt;BR /&gt;
n=1 poi_n=0.033689735&lt;BR /&gt;
n=2 poi_n=0.0842243375&lt;BR /&gt;
n=3 poi_n=0.1403738958&lt;BR /&gt;
n=4 poi_n=0.1754673698&lt;BR /&gt;
n=5 poi_n=0.1754673698&lt;BR /&gt;
n=6 poi_n=0.1462228081&lt;BR /&gt;
n=7 poi_n=0.104444863&lt;BR /&gt;
n=8 poi_n=0.0652780393&lt;BR /&gt;
n=9 poi_n=0.0362655774&lt;BR /&gt;
n=10 poi_n=0.0181327887&lt;BR /&gt;
n=11 poi_n=0.0082421767&lt;BR /&gt;
n=12 poi_n=0.0034342403&lt;BR /&gt;
n=13 poi_n=0.0013208616&lt;BR /&gt;
n=14 poi_n=0.0004717363&lt;BR /&gt;
n=15 poi_n=0.0001572454&lt;BR /&gt;
n=16 poi_n=0.0000491392&lt;BR /&gt;
n=17 poi_n=0.0000144527&lt;BR /&gt;
n=18 poi_n=4.0146404E-6&lt;BR /&gt;
n=19 poi_n=1.0564843E-6&lt;BR /&gt;
n=20 poi_n=2.6412108E-7&lt;BR /&gt;
n=21 poi_n=6.2885971E-8&lt;BR /&gt;
n=22 poi_n=1.4292266E-8&lt;BR /&gt;
n=23 poi_n=3.1070144E-9&lt;BR /&gt;
n=24 poi_n=6.472947E-10&lt;BR /&gt;
n=25 poi_n=1.294589E-10&lt;BR /&gt;
n=26 poi_n=2.489597E-11&lt;BR /&gt;
n=27 poi_n=4.610312E-12&lt;BR /&gt;
n=28 poi_n=8.233414E-13&lt;BR /&gt;
n=29 poi_n=1.418865E-13&lt;BR /&gt;
n=30 poi_n=2.364775E-14&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Thanks!</description>
      <pubDate>Thu, 03 Mar 2011 01:14:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Poisson-Function/m-p/21153#M3370</guid>
      <dc:creator>topkatz</dc:creator>
      <dc:date>2011-03-03T01:14:47Z</dc:date>
    </item>
    <item>
      <title>Re: Poisson Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Poisson-Function/m-p/21154#M3371</link>
      <description>Hi.&lt;BR /&gt;
I think the problem is&lt;B&gt; n! &lt;/B&gt;   .when n greater than 26 &lt;B&gt; n! &lt;/B&gt;  will be very very large to out the range of sas 's exact integer.Normally due to big n ,we will use Scott Formula&lt;BR /&gt;
to approach &lt;B&gt; n! &lt;/B&gt;.That is the reason why method 1 is different from 2 3.&lt;BR /&gt;
In my opinion,Recommend to use method 1. &lt;BR /&gt;
I am not quit sure my answer is right,it is just my opinion.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Ksharp</description>
      <pubDate>Thu, 03 Mar 2011 04:48:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Poisson-Function/m-p/21154#M3371</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2011-03-03T04:48:28Z</dc:date>
    </item>
  </channel>
</rss>

