Dada uma Distribuição Beta com a = 2, b = 3, podemos encontrar um valor esperado (média) para o intervalo [0, 1] = a / (a + b) = 2/5 = 0,4 e mediana = (a - 1/3) / (a + b-2/3) = 0,39, que estão próximos.
Eu estou procurando uma solução em python. Posso usar scipy.stats.beta para calcular a mediana do intervalo [0, 0,4] com a função de ponto percentual (inverso de cdf - percentis):
beta.ppf(0.4/2,a,b) = 0.2504
Como para esta distribuição beta, a média geral e a mediana são próximas (0,4 e 0,39, respectivamente), eu uso a mediana para o intervalo [0, 0,4] para estimar os valores esperados (média) para o intervalo [0, 0,4].
Existe alguma maneira de calcular os valores esperados (média) para o intervalo [0, 0,4]?
python
mean
median
beta-distribution
truncation
Arbi Haza Nasution
fonte
fonte
Respostas:
Observe que a fórmula que você tem no topo da mediana beta ( ) é aproximada. Você deve poder calcular uma mediana numérica efetivamente "exata" com o cdf inverso (função quantil) da distribuição beta no Python (para um , recebo uma mediana de cerca de enquanto isso é aproximado fórmula dá ).α−13α+β−23 beta(2,3) 0.3857 0.3846
Essa média de uma distribuição truncada é bastante direta com uma versão beta. Para uma variável aleatória positiva, temos
onde, neste caso, é a densidade de um beta com os parâmetros e (que agora vou escrever como ):f α β f(x;α,β)
Portanto,xf(x)=B(α+1,β)B(α,β)f(x;α+1,β)=αα+βf(x;α+1,β)
EntãoE(X|X<k)=αα+β∫k0f(x;α+1,β)dx/∫k0f(x;α,β)dx
Agora, as duas integrais são apenas CDFs beta que você já possui no Python.
Com , obtemos . Isso é consistente com a simulação ( simulações ).α=2,β=3,k=0.4 E(X|X<0.4)≈0.24195 106 ≈0.24194
Para a mediana, obtenho , o que é novamente consistente com a simulação ( simulações deram ).F−1(12F(0.4;2,3);2,3)≈0.25040 106 ≈0.25038
Os dois são bem próximos nesse caso, mas esse não é um resultado geral; às vezes podem ser mais substancialmente diferentes.
fonte