Descargar el fichero: poisson.xlsm
Lo primero es ver un Post anterior en este mismo Blog que explica la distribución de Poisson por varios métodos. En este nuevo Post pretendemos programar la propia distribución de Poisson usando VBA (Visual Basic for Applications). Vamos a programar tanto la Poisson como su acumulada.
El Post anterior que conviene leer es este:
Simular con una distribución de Poisson
Método 3
Ahora vamos a programar la Poisson.
Código:
Function xPoisson(x As Byte, Lamda As Byte, Optional acumulado As Boolean) As Double Dim i As Byte, s As Double If acumulado = False Then xPoisson = Exp(-Lamda) * (Lamda ^ x) / xFact(x) ElseIf acumulado = True Then s = 0 For i = 0 To x s = s + Exp(-Lamda) * (Lamda ^ i) / xFact(i) Next i xPoisson = s End If End Function Function xFact(num As Byte) As Double Dim i As Byte xFact = 1 For i = 1 To num xFact = xFact * i Next i End Function
También hemos tenido que programar la función que calcula el factorial (xFact).
La función xPoisson tiene tres argumentos, siendo el tercero optativo. Observar en el código el comando Optional.
El tercer argumento es acumulado que puede ser verdadero o falso:
- Si acumulado es FALSO, o ponemos un 0, o esta vacío nos dará la función de Poisson
- Si acumulado es VERDADERO, o ponemos un 1, nos dará la función de Poisson acumulada
Método 4
Otro método alternativo para programar la distribución de probabilidad de Poisson es llamar desde la propia macro a la función de Excel.
Código:
Function yPoisson(x As Byte, Lamda As Byte, Optional acumulado As Boolean) As Double yPoisson = Application.WorksheetFunction.Poisson(x, Lamda, acumulado) End Function
Ante todo le escribo la siguiente para saludarlo y felicitarlo Sr. Aparicio Madrid por el blog que esta bajo su cargo , el fichero de excel poisson.xlsm que esta aqui esta bueno , pero me parece que si le añadiera elementos activex seria más dinámico y se podrian hacer más cosas con el , por ejemplo en analisis de la calidad existe una grafica llamada CO , la cual utiliza distribucion binomial,por mi parte me encuentro haciendo una macro en la cual se puede hacer variar estos valores de manera dinámica.
ResponderEliminarEstoy haciendo un blog que se llama http://excelparadummies.blogspot.com , me preguntaba si tendria tiempo de verlo y saber cual es su opinión al respecto.
Atte. Juan Francisco ,desde Perú.
Este comentario ha sido eliminado por el autor.
ResponderEliminarSecundo lo dicho por Juan Francisco. Sin embargo este post es una excelente herramienta desde donde partir. Muchas gracias Sr Aparicio.
ResponderEliminar