Risolvendo per $p$ binomcdf $(n,p,k)$= $x$
In Binomial Probability with Unknown p , questo viene fatto per un caso in cui$n=0$, che finisce per essere una soluzione semplice. Con$n > 0$, le cose non sono così semplici, cercando di risolvere ingenuamente direttamente si ottengono equazioni di potenza sempre più elevate.
Ad esempio risoluzione $\text{binomcdf}(17,p,8) = 0.3$ (La probabilità di 8 o meno successi è esattamente 0,3) viene scritta;
$$\sum^{8}_{n=0}\binom{17}{n} p^n(1-p)^{17-n} = 0.3$$
Questo è un polinomio di grado molto alto. Quale sarebbe un buon modo per risolvere o approssimare numericamente la soluzione alla precisione arbitraria di tale equazione?
In particolare, sono motivato dal seguente problema:
Lascia che ci sia $n$membri in una legislatura. Sono 3 le misure proposte a questa legislatura. La prima misura da superare invalida le altre. Il legislatore all'unanimità vuole che una misura passi con ogni misura per avere le stesse possibilità di approvazione, ma ogni membro ha il controllo solo sul proprio voto. In una legislatura pari un voto sospeso significa una misura fallita.
I membri decidono su una certa probabilità di nash $p_1$ per cui la possibilità di passare una misura è $\frac{1}{3}$ e un altro $p_2$ per una possibilità di $\frac{1}{2}$, con l'ultimo provvedimento sempre votato all'unanimità. Quali sono questi valori?
La soluzione sarebbe risolvere le equazioni
$$\text{binomcdf}(n,p_1,\lfloor\frac{n}{2}\rfloor) = \sum^{\lfloor\frac{n}{2}\rfloor}_{k=0} \binom{n}{k}p_1^k(1-p_1)^{n-k} = \frac{1}{3}$$
$$\text{binomcdf}(n,p_2,\lfloor\frac{n}{2}\rfloor) = \sum^{\lfloor\frac{n}{2}\rfloor}_{k=0} \binom{n}{k}p_2^k(1-p_2)^{n-k} = \frac{1}{2}$$
rispettivamente per $p_1$ e $p_2$.
Per valori dispari di $n$ e il caso in cui si trova la probabilità obiettivo $\frac{1}{2}$, c'è una soluzione semplice, $p_2 = 0.5$, e questa è l'unica risposta.
Finora ho semplicemente applicato un foglio di calcolo, giocherellando con il valore di $p_1$ finché non mi avvicino all'opportunità desiderata, ma mi chiedo se esista un metodo più generale.
Risposte
Ci saranno metodi numerici ma se vuoi un'approssimazione di cui vuoi una probabilità obiettivo $t$ [$t=0.3$ nel tuo $\text{binomcdf}(17,p,8) = 0.3$ esempio] con $k$ o meno successi da $n$ [$k=8$ e $n=17$ nel tuo esempio], potresti provare l'approssimazione normale con una correzione di continuità da risolvere
$$\Phi\left(\frac{k+\frac12-np}{\sqrt{np(1-p)}}\right)=t$$ che dà un quadratico con soluzione $$p \approx \frac{2\left(k+\frac12\right)+\Phi^{-1}(t)^2 \pm \sqrt{\left(2\left(k+\frac12\right)+\Phi^{-1}(t)^2\right)^2-4\left(n+\Phi^{-1}(t)^2\right)\frac{\left(k+\frac12\right)^2}{n}}}{2\left(n+\Phi^{-1}(t)^2\right)}$$
Nel tuo esempio questo dà $ p \approx 0.4369153$ o $0.5630847$. Vuoi il valore più grande (scegliendo$+$ per il $\pm$), poiché l'altro è falso e corrisponde al caso che inizia con $t=0.7$ .
Quanto è buono $p \approx 0.5630847$? Rimetterlo nella somma binomiale dà circa$0.2980416$ piuttosto che $0.3$, quindi non male in questo caso. Il valore esatto desiderato per$p$ è appena finita $0.56241865$ quindi ancora una volta l'approssimazione non è lontana.
Per quanto riguarda la prima domanda, sperando che la soluzione che stai cercando non sia vicina ai limiti, prova un'espansione in serie in giro $p=\frac 12$. Questo darebbe per$$f(p)=\sum^{8}_{n=0}\binom{17}{n} p^n(1-p)^{17-n}$$ $$f(p)=\frac{1}{2}-\frac{109395 }{32768}\left(p-\frac{1}{2}\right)+\frac{36465 }{1024} \left(p-\frac{1}{2}\right)^3-\frac{153153}{512} \left(p-\frac{1}{2}\right)^5+\frac{109395}{64} \left(p-\frac{1}{2}\right)^7-\frac{425425}{64} \left(p-\frac{1}{2}\right)^9+O\left(\left(p-\frac{1}{2}\right)^{11}\right)$$Ora, usando la reversione in serie l' approssimazione $$p_{(m)}=\frac 1 2+\sum_{n=1}^m \frac {a_n}{b_n}\left(k-\frac{1}{2}\right)^{2n-1}$$
Cercando $k=\frac 3{10}$ questo darebbe le seguenti stime $$\left( \begin{array}{cc} m & p_{(m)} \\ 1 & 0.559908 \\ 2 & 0.562201 \\ 3 & 0.562395 \\ 4 & 0.562416 \end{array} \right)$$ mentre la soluzione "esatta" è $0.562419$.
Come sottolinea Felix Marin , abbiamo dei limiti quando ne abbiamo$\operatorname{binomcdf}(n,p,k)-t$ segno modifiche dato da $p=0$ e $p=1$, quindi i metodi di bracketing possono essere tranquillamente provati per ottenere una convergenza rapida e garantita. Potresti provare il metodo di Brent, il metodo di Chandrupatla o anche il metodo Newton-Raphson poiché il derivato è noto.
L'unico problema che rimane è che potresti ottenere una convergenza lenta se il valore desiderato è vicino al confine, dove il cdf diventa molto piatto. Questo può essere fatto usando la simmetria insieme al comportamento asintotico vicino a entrambi$0$ o $1$. Per$0<k<n-1$:
$$\operatorname{binomcdf}(n,p,k)\approx\binom nk(1-p)^{n-k},\quad p\approx1\\\operatorname{binomcdf}(n,p,k)\approx1-\binom n{k+1}p^{k+1},\quad p\approx0$$
Per il tuo esempio di $\operatorname{binomcdf}(17,p,8)=0.3$, queste approssimazioni possono essere risolte per dare
$$0.313\le p\le0.715$$
che è più vicino al più esatto $p=0.56241865$.
Vedi qui per un'implementazione che utilizza il metodo di Chandrupatla.