1. #1
    byronbb
    byronbb's Avatar Become A Pro!
    Join Date: 11-13-08
    Posts: 3,067
    Betpoints: 2284

    Making a Poisson adjustment.

    Lets assume NHL scoring is poisson. Say pinny has the TT for a team at O/U 2 at -120/110. I go to the poisson calc and via trial and error discover that at least 2 goals scored at -120 implies an expected goals scored of 1.8 goals. Is this correct? Is there a way to do this without the trial and error in the calc.


    there is an error in my numbers but is this process okay?
    Last edited by byronbb; 03-14-11 at 08:31 PM.

  2. #2
    donjuan
    donjuan's Avatar Become A Pro!
    Join Date: 08-29-07
    Posts: 3,993
    Betpoints: 7537

    "At least 2" is the same thing as o1.5. For o2 you need to get rid of the % of the time the 2 pushes.

  3. #3
    FourLengthsClear
    King of the Idiots
    FourLengthsClear's Avatar Become A Pro!
    Join Date: 12-29-10
    Posts: 3,808
    Betpoints: 508

    Notwithstanding donjuan's (correct) observation, you would need to:

    a) Familiarise yourself with the =Poisson function in MS Excel (it does the same as Ganchrow's Calculator).
    b) Be able to "invert" the Poisson equation to give you the expected mean

    The following should do b) if you enter it as a new function in MS Excel via VBA (google it if unsure, it is quite easy to do).

    Function PoissonInv(dVal As Double, dMean As Double) As Variant
    ' flc

    ' For a Poisson process with mean dMean, _

    ' returns the largest integer such that the CDF <= dVal

    ' E.g., =POISSON(5, 10, TRUE) returns 0.0670859629

    ' PoissonInv(0.0670859629, 10) returns 5

    Dim iX As Long

    Dim dCDF As Double

    ' these variables are used to simplify this summation:

    ' dCDF = dCDF + Exp(-dMean) * dMean ^ iX / .Fact(iX)
    Dim dExpMean As Double ' =Exp(-dMean)
    Dim dFact As Double ' incremental factorial
    Dim dPowr As Double ' incremental power

    If dVal < 0 Or dVal >= 1 Then

    PoissonInv = CVErr(xlErrValue)

    ElseIf dVal > 0 Then

    dExpMean = Exp(-dMean)
    dFact = 1
    dPowr = 1

    Do While dCDF < dVal

    dCDF = dCDF + dExpMean * dPowr / dFact
    iX = iX + 1
    dFact = dFact * iX
    dPowr = dPowr * dMean
    Loop

    PoissonInv = iX - IIf(dCDF / dVal > 1.000000000001, 2, 1)

    End If
    End Function
    Last edited by FourLengthsClear; 03-15-11 at 12:16 AM.

  4. #4
    byronbb
    byronbb's Avatar Become A Pro!
    Join Date: 11-13-08
    Posts: 3,067
    Betpoints: 2284

    Thanks for the effort 4lengths.

Top