Cálculo do percentil da distribuição normal


9

Veja esta página da Wikipedia:

http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval#Agresti-Coull_Interval

Para obter o intervalo Agresti-Coull, é necessário calcular um percentil da distribuição normal, chamado . Como calculo o percentil? Existe uma função pronta que faça isso no Wolfram Mathematica e / ou Python / NumPy / SciPy?z


11
Infelizmente, a expressão integral no "cdf normal que obtive exatamente do Wiki" é desatada por um fator de . Não existe uma fórmula exata conhecida para o cdf normal ou seu inverso usando um número finito de termos envolvendo funções padrão ( etc), mas o cdf normal e seu inverso foram estudados muito e aproximados as fórmulas para ambos são programadas em muitas calculadoras, planilhas, para não mencionar pacotes estatísticos. Não estou familiarizado com o R, mas ficaria surpreso se ele ainda não tivesse o que você está procurando. exp,log,sencos1/πexp,log,sinporque
precisa

@DilipSarwate, está consertado! Eu estou fazendo isso usando a transformação inversa, também "não é permitido" usar muito o que está embutido. É por uma questão de aprendizado, suponho.
user1061210

11
@ Dilip: Não só não existe uma fórmula exata conhecida, melhor ainda, é sabido que essa fórmula não pode existir!
cardeal

11
O método Box-Muller gera amostras de uma distribuição conjunta de variáveis ​​aleatórias normais padrão independentes. Portanto, os histogramas dos valores gerados se parecerão com as distribuições normais padrão. Mas o método Box-Muller não é um método para calcular valores de exceto por acaso, como em "Eu gerei amostras normais padrão, das quais tem valor ou menos e, portanto, , e .10 4 8401 1 Φ ( 1 ) 0,8401 Φ - 1 ( 0,8401 ) 1Φ(x)10484011 1Φ(1 1)0.8401Φ-1 1(0.8401)1 1
Dilip Sarwate

11
Acabei de escolher como um exemplo dos tipos de números que você pode esperar. e, portanto, se você gerar amostras de uma distribuição normal padrão, deverá esperar que cerca de das amostras tenham o valor . Você está implementando o método Box-Muller corretamente, mas não está entendendo os resultados que está obtendo e não os relacionando com o cdf etc.Φ ( 1 ) = 0,8413 10 4 8413 10000 18401Φ(1 1)=0,84131048413100001 1
Dilip Sarwate

Respostas:


3

Para o Mathematica, $VersionNumber > 5 você pode usar

Quantile[NormalDistribution[μ, σ], 100 q]

para o q-thil percentil.

Caso contrário, você precisará carregar o pacote de estatísticas apropriado primeiro.


(Eu tenho a versão 7.) Não tenho problemas ao carregar o pacote de estatísticas. Mas qual é a função lá chamada? Porque tenho a impressão de que essa Quantilelinha fará o cálculo manualmente, em vez de usar uma fórmula.
Ram Rachum

Avaliá-lo com parâmetros simbólicos (ou seja, fazer valores não atribuir a mu, sigmae q); você deve obter uma expressão envolvendo a função de erro inverso.
JM não é estatístico

16

A página de John Cook, Distributions in Scipy , é uma boa referência para esse tipo de coisa:

In [15]: import scipy.stats

In [16]: scipy.stats.norm.ppf(0.975)
Out[16]: 1.959963984540054

4

Bem, você não perguntou sobre R, mas em R você faz isso usando? Qnorm

(Na verdade, é o quantil, não o percentil, pelo que acredito)

> qnorm(.5)
[1] 0
> qnorm(.95)
[1] 1.644854

11
Quantil vs. percentil (é apenas uma questão de terminologia), j.mp/dsYz9z .
quer

11
Enquanto estamos dentro, os ICs ajustados por R Wald (por exemplo, Agresti-Coull) estão disponíveis no PropCIspacote. O método de Wilson é o padrão em Hmisc::binconf(como sugerido por Agresti e Coull).
9103 chl


0

Você pode usar a função erf inversa , disponível no MatLab e no Mathematica, por exemplo.

Para o CDF normal, a partir de

y=Φ(x)=12[1+erf(x2)]

Nós temos

x=2 erf-1 1(2y-1 1)

Para o CDF log-normal, começando em

y=Fx(x;μ,σ)=1 12erfc(-registrox-μσ2)

Nós temos

-registro(x)=μ+σ2 erfc-1 1(2y)

2
isso não é mais um comentário do que uma resposta?
Macro

Minha idéia era que, se você tem inversões para as funções erf e erfc, o problema está resolvido. O MatLab, por exemplo, possui essas funções pré-programadas.
Jean-Victor Côté

@ Jean-VictorCôté Por favor, desenvolva suas idéias em sua resposta. Caso contrário, parece apenas um comentário, conforme sugerido acima.
chl

registro(x)x
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.