Suponha que exista um conjunto de perguntas e que haja alunos e .
Vamos ser a probabilidade de que responde à pergunta corretamente, e o mesmo para .
Todos e são dados para .
Suponha que um exame é feita tomando perguntas aleatórias de .
Como posso encontrar a probabilidade de obter uma pontuação melhor do que ?
Pensei em verificar as combinações e comparar as probabilidades, mas é um número muito grande e levará uma eternidade, então fiquei sem ideias.
probability
irt
Daniel
fonte
fonte
Respostas:
Um programa dinâmico fará pouco trabalho com isso.
Suponha que administremos todas as perguntas aos alunos e depois selecionemos aleatoriamente um subconjuntoI do k=10 dentre todos n=100 questões. Vamos definir uma variável aleatóriaXi comparar os dois alunos em questão i: configure para 1 se o aluno A estiver correto e o aluno B não, −1 se o aluno B estiver correto e o aluno A não, e 0 de outra forma. O total
é a diferença nas pontuações para as perguntas emI. Desejamos calcular Pr(XI>0). Essa probabilidade é assumida sobre a distribuição conjunta de eI Xi.
A função de distribuição de é prontamente calculadaXi sob a suposição de que os alunos respondem independentemente:
Como uma abreviação, vamos chamar essas probabilidades de e respectivamente. Escrevaai, bi, di,
Esse polinômio é uma função geradora de probabilidade para oXi.
Considere a função racional
(Na verdade, é um polinômio: é uma função racional bastante simples.)xnψn(x,t)
Quando é expandido como um polinômio em , o coeficiente de consiste na soma de todos os produtos possíveis de distintos Essa será uma função racional com coeficientes diferentes de zero apenas para potências de de aComo é selecionado uniformemente aleatoriamente, os coeficientes desses poderes de quando normalizados para somar à unidade, fornecem a função geradora de probabilidade para a diferença nas pontuações. Os poderes correspondem ao tamanho deψn t tk k fi(x). x x−k xk. I x, I.
O ponto desta análise é que podemos calcular facilidade e eficiência razoável:ψ(x,t) basta multiplicar os polinômios sequencialmente. Para isso, é necessário reter os coeficientes de em para(é claro que podemos ignorar todos os poderes superiores de que aparecem em qualquer um desses produtos parciais). Assim, todas as informações necessárias transportadas por podem ser representadas por uma matriz , com linhas indexadas pelos poderes de (de a ) e colunas indexadas porn 1,t,…,tk ψj(x,t) j=0,1,…,n. t ψj(x,t) 2k+1×n+1 x −k k 0 a .k
Cada etapa da computação requer um trabalho proporcional ao tamanho dessa matriz, escalando como Contabilizando o número de etapas, esse é um algoritmo de espaço , espaço . Isso torna muito rápido para pequeno Isso foi executado com em (não conhecido para o excesso de velocidade) para a -se a e -se a onde leva nove segundos (em um único núcleo). Na configuração da questão com e o cálculo leva segundos.O(k2). O(k2n) O(kn) k. k 100 n 105, n=100 k=10, 0.03
R
Aqui está um exemplo em que são valores aleatórios uniformes entre e e são seus quadrados (que são sempre menores que , favorecendo fortemente o aluno A). Simulei 100.000 exames, como resumido por este histograma das pontuações líquidas:Pai 0 1 Pbi Pai
As barras azuis indicam os resultados nos quais o aluno A obteve uma pontuação melhor que B. Os pontos vermelhos são o resultado do programa dinâmico. Eles concordam lindamente com a simulação ( , ). A soma de todas as probabilidades positivas fornece a resposta neste caso,χ2 p=51% 0.7526….
Observe que esse cálculo gera mais do que o solicitado: produz toda a distribuição de probabilidade da diferença de pontuação em todos os exames de ou menos perguntas selecionadas aleatoriamente.k
Para aqueles que desejam uma implementação de trabalho para usar ou portar, aqui está oχ2
R
código que produziu a simulação (armazenada no vetorSimulation
) e executou o programa dinâmico (com resultados na matrizP
). Orepeat
bloqueio no final existe apenas para agregar todos os resultados raros, de modo que o se torne obviamente confiável. (Na maioria das situações, isso não importa, mas evita que o software se queixe.)fonte
Em cada iteração,
porque A é melhor apenas quando A está certo e B está errado. Portanto, para uma pergunta em particular, se A estiver certo 90% do tempo e B estiver certo 80% do tempo, então a probabilidade conjunta de que A esteja certo e B esteja errado será
Agora você pode escrever um código que passe por todas as dez perguntas escolhidas e atribua um ponto a A ou B com base nessa probabilidade conjunta. No final de cada exame, o vencedor é aquele com mais pontos. Faça isso muitas vezes e observe a probabilidade de A conquistar B.
Eu escrevi um código que faz isso aqui: https://nbviewer.jupyter.org/github/kevinmcinerney/exam_probabilities/blob/master/exam_probabilities.ipynb
O gráfico não é renderizado no link, mas tem a seguinte aparência:
Esta simulação usou os valoresPai=Pbi=0.5
Neste exemplo, realizei 1000 exames, cada um composto por 25 perguntas, mas todos formam o mesmo conjunto de 100 perguntas. O eixo y é a probabilidade de que A tenha se saído melhor que B em um exame. O número do exame de (0-1000) está no eixo x
Tanto A como B tiveram P aleatório para obter uma pergunta correta, de modo que o gráfico converge em 50%. Eu usei 25 perguntas, porque 10 não é muito representativo da população que contém 100 perguntas. Usando dez perguntas, é mais provável que o gráfico converja para um% próximo ou próximo de 50%. As três linhas são três tentativas separadas.
fonte