quinta-feira, maio 28, 2009

Intervalos de confiança exactos (e outros)

Para os cálculos que o LA-C fez aqui à unha (ou seja, com o Matlab), há um bom simulador online que calcula quatro tipos de intervalo de confiança. O intervalo habitualmente estimado (por aproximação normal à binomial, que usei aqui) é o Wald. O que o Luís calculou é o exacto. Quanto aos outros, a página explica, mas eu vou ter de ruminar mais um bocadinho sobre o assunto. Há também estimativas pontuais alternativas. Um maná.

E um mini-paper que desenvolve o que o Luís explicou.

12 comentários:

Anónimo disse...

Todos is IC calculados aqui são sempre para proporções, ou questionários do tipo vota PS ou não, vota PSD ou não, etc, etc, etc.
Portanto só seriam válidos se as perguntas fossem de resposta Sim ou Não.
No caso das sondagens deveríamos usar IC para distribuições multinomiais, e porquê? Porque na sondagem temos mais informnação do que um simples sim ou não, mas sobre a probabilidade de diversas características. Claro, que os métodos são muito intensivos em termos computacionais, contudo...

PS: O Excel permite fazer todos os cálculos, não é preciso utilizar o MATLAB.

Luís Aguiar-Conraria disse...

De acordo quanto ao uso da multinomial. No entanto, a binomial é suficientemente exacta. Não merece a complicação extra. A não ser, claro, que se pretenda fazer um teste de igualdade de proporções.
Quanto ao Excel, não faço a mínima ideia de como encontrar o intervalo de confiança, usando a binomial, em Excel. Mesmo em matlab tive de escrever um pequeno código, coisa que não sei fazer em excel.

Luís Aguiar-Conraria disse...

Caro anónimo, muito obrigado pelo comentário que me obrigou a ir fazer umas revisões. Deixe-me dizer as conclusões a que cheguei. Sendo certo que as diversas proporções seguem, conjuntamente, uma lei multinomial, também é certo que cada uma delas, individualmente, segue uma lei binomial. Assim, os intervalos de confiança estimados com base na bonomial são intervalos individuais exactos. Para se calcular os intervalos de confiança conjuntos é que se teria e deveria usar a multinomial. O que potencialmente seria até mais interessante, não digo que não. De qualquer forma, infelizmente, parece ainda não haver um consenso sobre como calcular intervalos de confiança conjuntos para a binomial. Além de que todos os métodos que descobri nesta rápida revisão da matéria me parecem computacionalmente exagerados. Como disse no comentário anterior, não merecem o esforço. De qualquer forma obrigado pelo comentário, já aprendi umas coisas hoje à custa dele.

Anónimo disse...

Excel:
A única coisa que é preciso para calcular o intervalo de confiança é o erro padrão do estimador e o valor crítico da Normal (que para IC a 95% é 1.96 - aprox.) ou da distribuição que usar (F, t, etc...). Assim sendo como no caso da binomial o erro padrao depende da dimensão da amostra e do número de respostas certas apenas precisa de saber o valor crítico da distribuição, logo em Matlab está a usar a função de distribuição a 97.5%, contudo em Excel se for ao "Insert Function" na categria "Statistical" pode usar uma das seguintes funções NORMSDIST, NORMDIST, FDIST, TDIST, etc. assim colocando numa coluna as percentagens, e noutras as fórmula dos ICs (+/-) fazendo referência a uma célula com o nível de significância, voilá. Qualquer um pode fazer com referência Às fórmulas que estão no artigo do link.

Quanto aos intervalos conjuntos. Como esta discussão é para saber se a votação no PSD e PS são iguais o que está a fazer é os ICs individuais o que dá num plano um quadrado/rect. com a área interior a considerar quais os valores que não rejeitam a igualdade. Contudo para um teste deste tipo precisa é de um teste conjunto do tipo Pps=Ppsd, neste caso a área de rejeição/não rejeição do teste é uma elipse/circunferÊncia. Ora se os resultados estiveram próximos dos extremos do quadrado/rectângulo a área interior da circunferência/elipse de não rejeição poderá inverter as conclusões tiradas de testes individuais.
Concordo que as coisas são difíceis e há vários métodos, mas tb os há para os ICs individuais e não existe tb aqui um consenso, apenas um conjunto de "rule of thumb".

Assim sendo toda esta discussão de empates técnicos está demasiado mal colocada.

PAC

PS: Em blogs mesmo pessoais devemos ser rigorosos e avisar o público que não se é especialista na área, portanto EU NÃO SOU ESTATÍSTICO logo...

Luís Aguiar-Conraria disse...

Mais uma vez muito obrigado pelo comentário crítico.

"Contudo para um teste deste tipo precisa é de um teste conjunto do tipo Pps=Ppsd, neste caso a área de rejeição/não rejeição do teste é uma elipse/circunferÊncia."

Parece-me que está de acordo com o que eu disse. Eu disse que a multinomial teria relevância essencialmente para testes de igualdades de porporções.
Mas repare que o teste que o Pedro propôs num post anterior -- Mais sobre "empates técnicos" (só para nerds) -- faz precisamente isso. É certo que usa uma aproximação normal à multinomial, mas isso não é problemático, especialmente porque estamos a falar de partidos com votações elevadas.

P.S. Obrigado quanto à explicação do Excel, mas no meu Excel (2003) não aparece a binomial. Vou ver se no meu outro computador, com o excel 2007 aparece a binomial. De qualquer forma, isso que descreveu não é mais simples do que o matlab.

Luís Aguiar-Conraria disse...

No de 2007 aparece a binomial (se calhar vi mal na versão 2003), no entanto não aparece a inversa da distribuição binomial, que é o que precisamos para os valores críticos. Assim, para encontrar os valores críticos seria necessário ir por tentativa e erro, que foi o que eu fiz no matlab.
De qualquer, forma aquilo que diz que é pegar no valor estimado e acrescentar-lhe o erro padrão (mais coisa menos coisa) não se aplica à binoimal, porque é uma lei discreta e não contínua. Assim, usando o método que sugere não é possível de garantir que a cauda à direita e à esquerda representam exactamente 2.5%. Pare ver a fórmula que tem de ser implementada pode ver este site: http://www.sigmazone.com/binomial_confidence_interval.htm

Anónimo disse...

Não precisa de ir por tentativa e erro no matlab:
X = binoinv(Y,N,P).

Qt ao mais simples... é mais simples no Excel pq mais pessoas têm o Excel e não o MATLAB. Simplicidade de replicação????

Luís Aguiar-Conraria disse...

Pois, mas essa fórmula dá-me o valor inteiro mais próximo, de forma a que a cdf, avaliada para X não seja inferior a Y. Não é isso que eu pretendo. Isso apresenta o problema que eu referi no comentário anterior. Para conseguir um intervalo exacto esse método não serve. De qualquer forma, agradeço a disponibilidade.

PS. Não me parece que a replicação tenha aqui grande interesse. Mais do que replicar, pode antes confirmar os valores apresentados, isso é mais fácil. Mas sim, quem quiser replicar ou confirmar os resultados pode usar o programa que lhe interessar.

Tiago Tavares disse...

Luís e Pedro permitam-me que faça um pequeno comentário sobre esta discussão (e para deixar claro não sou especialista em estatística). Também refiro que aquilo que vou comentar não passa de um preciosismo.

Parece-me que a aplicação do intervalo de confiança exacto - que utiliza a distribuição acumulada da função binomial até ao valor crítico - não será o método mais adequado se quiserem ter coberturas de probabilidade próximas de 95%. Isto decorre do facto da função de distribuição ser discreta e a aplicação da inversão da função gerar intervalos de confiança com coberturas de probabilidade efectivas acima de 95%. Neste sentido a aplicação do intervalo exacto poderá ser pouco eficiente (isto será particularmente problemático para proporções perto das extremidades e poucas observações).

Assim poderá valer a pena utilizar os métodos alternativos que o Pedro encontrou já que existe alguma evidência destes, no sentido a que me referi, serem mais eficientes.

Por exemplo o IC exacto calculado na tabela anterior para OBN de .016-.052 mudaria para .016-.050 utilizando, por exemplo, um IC de Jeffreys. Ainda assim, os intervalos mantêm-se muito parecidos e a verdadeira mais-valia é considerar que em amostras pequenas ou proporções baixas pode haver problemas na utilização da distribuição normal para calcular o IC.

PS.
O Stata também inclui funções nas opções de raiz para determinar variados IC em distribuições binomiais.

Luís Aguiar-Conraria disse...
Este comentário foi removido pelo autor.
Luís Aguiar-Conraria disse...

"Parece-me que a aplicação do intervalo de confiança exacto - que utiliza a distribuição acumulada da função binomial até ao valor crítico - não será o método mais adequado se quiserem ter coberturas de probabilidade próximas de 95%."

Olá Tiago, isso que dizes é verdade se usares o método descrito pelo anónimo aí em cima. Mas podes calcular intervalos exactos, e não aproximados, desde que apliques a fórmula do link que eu aí deixei.

A forma de pensar no assunto não é complicada. Imagina que fazes um inquérito a 35 pessoas e que 10 delas te respondem que votam de determinada maneira (ou seja, 28,57%). Se calculares o intervalo de confiança como o anónimo aí em cima disse, dirás que o intervalo se situa entre 4 e o 15, ou seja entre 11,43% e 42,86% (se não me tiver enganado nas contas). O problema de fazer isto é exactamente o que apontaste.

Mas podes pensar de forma diferente. Que valores para a população são compatíveis com esta amostra? Ou seja, sabes que os votos seguem uma distribuição Binomial (35,p), em que p é percentagem do partido em que estás interessado. Sabes que a amostra te diz que houve 10 sucessos. Portanto a pergunta a fazer é esta: que valores de p são compatíveis (num intervalo de 95%) com esta amostra. Repara que os 10 sucessos são fixos, o tamanho da amostra também (35), mas o p pode variar continuamente (e não discretamente). A resposta será que p se situa entre 16,85% e 46,3%. Usando a notação do MatLab, fica:
bincdf(10,35,0.463)=0.025 (salvo arredondamentos)
bincdf (10,35,0.1685)=0.975 (salvo arredondamentos)

Ou, usando a inversa:
binoinv(0.025,35,0.463)= 10
bininv(0.975,35,0.1685)=10

Já agora, repara que a forma como estou a calcular isto não é igual à do link do Pedro, ao contrário do que originalmente pensava.

Bem, vou deixar isto de parte, se não se importam. Até porque concordo com o Tiago, estamos à demasiado tempo a discutir pequenas diferenças.
Abraço a todos.

FCA disse...

Porque vale a pena fazer testes multivariados em vez de testes t isolados (tb para nerds):

1. A utilização de testes separados leva a ao erro tipo I demasiado elevado.
(o que acontecerá se aplicarmos por exempo 10 testes univariados com distribuição t de student e um nível de significância de 0,05? Se aceitarmos o pressuposto que os testes são independentes (a não independência provoca desvios ainda maiores) como uma apoximaçao ao resultado a probabilidade de se rejeitar pelo menos uma hipótese nula é:

1- P[não rejeitar nenhuma das hip. nulas]=1-(0,95^10)=(aprox) 0,40.
Ou seja o alfa é 0,40! O meu nivel de confiança é de 40%!!! (em vez dos habituais 95%)

2. os testes t ignoram a correlação entre as variáveis, o que faz com que o p seja ainda maior.
3. Os testes multivariados são mais potentes

O excel 2003 tem a função binomial. E se quisermos a inversa podemos usar a ferramenta gool seek!