Pregunta

necesito para calcular la función de masa de probabilidad, y la función de distribución acumulada, de la . Me gustaría utilizar MATLAB para hacer esto (en bruto MATLAB, no hay cajas de herramientas). Puedo calcular éstos mismo, pero tenía la esperanza de utilizar una función predefinida y no puedo encontrar ninguna. ¿Hay algo por ahí?

function x = homebrew_binomial_pmf(N,p)
    x = [1];
    for i = 1:N
       x = [0 x]*p + [x 0]*(1-p);
    end
¿Fue útil?

Solución

Puede utilizar la función de NCHOOSEK a calcular el coeficiente binomial. Con esto, se puede crear una función que calcula el valor de la función de masa de probabilidad para un conjunto de valores para un k N y p dado:

function pmf = binom_dist(N,p,k)
  nValues = numel(k);
  pmf = zeros(1,nValues);
  for i = 1:nValues
    pmf(i) = nchoosek(N,k(i))*p^k(i)*(1-p)^(N-k(i));
  end
end

Para representar la función de masa de probabilidad, tendría que hacer lo siguiente:

k = 0:40;
pmf = binom_dist(40,0.5,k);
plot(k,pmf,'r.');

y la función de distribución acumulativa se puede encontrar a partir de la función de masa de probabilidad utilizando CUMSUM :

cummDist = cumsum(pmf);
plot(k,cummDist,'r.');

Nota: Cuando el coeficiente binomial regresó de NCHOOSEK es grande puede llegar a perder precisión. Una alternativa muy interesante es utilizar la presentación variable de precisión aritmética de enteros John D'Errico en la Intercambio de archivos de MathWorks . Mediante la conversión de sus números a su tipo vpi, puede evitar la pérdida de precisión.

Otros consejos

octava proporciona una buena colección de pdf distribución, cdf, cuantil; tienen que ser traducida de octava, pero esto es relativamente trivial (convertir endif a end, convertir != a ~=, etc;) véase, por ejemplo octava binocdf para la función cdf binomial.

se parece a la rel="nofollow CDF de la distribución binomial , mi mejor apuesta es el función beta incompleta betainc .

Para PDF

x=1:15
p=.45

c=binopdf(x,15,p)

plot(x,c)

Del mismo modo CDF

D=binocdf(x,15,p) 

plot(x,D)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top