Hello everyone !
Do not know how to upload a file ,
How do I implement this functionality, can anyone give an example with an Excel file?
Option Explicit
Public Function BivariatePoisson(x As Integer, y As Integer, lambda1 As Double, lambda2 As Double, lambda3 As Double) As Double
Dim min As Integer
Dim quotient As Double
Dim sum As Double
Dim i As Integer
If x < y Then
min = x
Else
min = y
End If
quotient = lambda3 / (lambda1 * lambda2)
sum = 0
For i = 0 To min
sum = sum + WorksheetFunction.Combin(x, i) * WorksheetFunction.Combin(y, i) * WorksheetFunction.Fact(i) * (quotient ^ i)
Next i
BivariatePoisson = Exp(-(lambda1 + lambda2 + lambda3)) * ((lambda1 ^ x) / WorksheetFunction.Fact(x)) * ((lambda2 ^ y) / WorksheetFunction.Fact(y)) * sum
End Function
Public Function BivariatePoissonWithDiagonalInflation(x As Integer, y As Integer, lambda1 As Double, lambda2 As Double, lambda3 As Double, inflation As Double, geometricP As Double) As Double
Dim bp As Double
Dim result As Double
bp = BivariatePoisson(x, y, lambda1, lambda2, lambda3)
result = (1# - inflation) * bp
If (x = y) Then
result = result + inflation * ((1 - geometricP) ^ x) * geometricP
End If
BivariatePoissonWithDiagonalInflation = result
End Function
Thank you