2011-03-12 17 views
7

Tengo una función que es en la forma de la función de distribución de probabilidad como a continuación:Implementar la función de distribución de probabilidad en el problema Java

formula

Aunque descubrir algunos lib proporcionar función para obtener el resultado como la fórmula anterior haría; pero estoy aprendiendo a implementarlo, así que me gustaría hacerlo por mí mismo si es posible.

A continuación se muestra lo que ocurre cuando se implementa la función

 
public double pdf(double x){ 
    double mean = mean(); 
    double variance = variance(); 
    double base = 1/Math.sqrt(2*Math.PI*variance); 
    double pow = -(Math.pow((x-mean), 2)/2*variance); 
    return Math.pow(base, pow); 
} 

es que esta es la manera correcta de aplicar pdf? ¿O qué partes extraño?

Agradezco cualquier ayuda.

+1

Puede usar http://www.texify.com para mostrar la fórmula correctamente. – JoeSlav

+2

Debe proporcionar la función p (x) en su forma integrada (es decir, con la integral ya resuelta) para que podamos ver si su algoritmo Java realmente coincide. –

Respuesta

1

Su método pdf implementa la función de densidad de probabilidad de la distribución normal, pero parece que desea implementar el acumulada función de distribución normal (o al menos una variante de la misma). Para la distribución normal, esto es altamente no trivial porque involucra una integral infinita.

Puede probar la integración numérica utilizando un enfoque como la regla de trapecio, pero sospecho que a medida que se aleja cada vez más de la media, las imprecisiones comienzan a acumularse.

Si se desea implementar la función de distribución normal acumulativa, entonces hay dos enfoques: Me gustaría recomendar

0

No estoy seguro de cuánto es relevante, pero también eche un vistazo a las cosas de matemáticas de Apache Commons. Lo encontré bastante limpio y útil.

org.apache.commons.math.stat.descriptive.DescriptiveStatistics funciona en un extremo para analizar una distribución determinada.

org.apache.commons.math.distribution.Distribution se utiliza en el otro extremo para generar la distribución.

Esto debería darle ideas para las API y algún código para estudiar para la implementación. Probablemente haya otros paquetes de estadísticas de código abierto que desee estudiar.

Cuestiones relacionadas