7 votos

¿Cuál es la probabilidad de que un alumno obtenga una puntuación mejor que otro en un examen con preguntas seleccionadas al azar?

Supongamos que existe un conjunto $S$ de $100$ preguntas y hay $2$ estudiantes $a$ y $b$ .

Dejemos que $P_{ai}$ sea la probabilidad de que $a$ responde a la pregunta $i$ correctamente, y $P_{bi}$ lo mismo para $b$ .

Todo $P_{ai}$ y $P_{bi}$ se dan para $i = 1...100$ .

Supongamos que un examen $E$ se hace tomando $10$ preguntas al azar de $S$ .

¿Cómo puedo encontrar la probabilidad de $a$ obteniendo una mejor puntuación que $b$ ?


He pensado en comprobar las combinaciones y comparar las probabilidades, pero es un número muy grande y me llevará una eternidad, así que se me han acabado las ideas.

0 votos

Dejemos que $A$ y $B$ sea el número de respuestas correctas para $a$ y $b$ respectivamente. Entonces, por la ley de la probabilidad total: $P(A > B) = \sum_{x=0}^sP(A>B|B=x)P(B=x)$ . Si las probabilidades difieren de una pregunta a otra (es decir, las probabilidades dependen de i), la evaluación de las probabilidades individuales puede requerir el examen de todas las combinaciones posibles. Posibles soluciones... 1. Sigue siendo razonable utilizar un ordenador para calcular las probabilidades mediante fuerza bruta. 2. Si se puede suponer que (marginalmente) las probabilidades no dependen de $i$ , entonces se trata de una distribución binomial simple.

0 votos

@knrumsey todos $P_{ai}$ y $P_{bi}$ son valores fijos y se puede suponer $P_{ai}$ y $P_{bi}$ se definen inicialmente de forma aleatoria para $i = 1...100$ . Es posible usar un ordenador y de hecho lo estoy usando, pero las combinaciones totalizan $\frac{100!}{10!(100-10)!}$ que es bastante grande para iterar a través de

0 votos

¿Cuál es el significado de la generación aleatoria $p_{ai}$ ? Si el $p_{ai}$ y $p_{bi}$ no varían demasiado entre $i$ entonces tal vez una suposición binomial proporcione una aproximación razonable. Estableciendo $p_a = \frac{1}{s}\sum_{i=1}^s p_{ai}$ y de forma similar para $p_b$ .

6voto

jldugger Puntos 7490

Un programa dinámico lo solucionará en poco tiempo.

Supongamos que administramos todas las preguntas a los estudiantes y luego seleccionamos al azar un subconjunto $\mathcal{I}$ de $k=10$ de todos los $n=100$ preguntas. Definamos una variable aleatoria $X_i$ para comparar a los dos estudiantes en la pregunta $i:$ lo puso en $1$ si el estudiante A es correcto y el estudiante B no, $-1$ si el estudiante B es correcto y el estudiante A no, y $0$ de lo contrario. El total

$$X_\mathcal{I} = \sum_{i\in\mathcal{I}} X_i$$

es la diferencia en las puntuaciones de las preguntas en $\mathcal I.$ Deseamos calcular $\Pr(X_\mathcal{I} \gt 0).$ Esta probabilidad se toma sobre la distribución conjunta de $\mathcal I$ y el $X_i.$

La función de distribución de $X_i$ se calcula fácilmente bajo el supuesto de que los alumnos responden de forma independiente:

$$\eqalign{ \Pr(X_i=1) &= P_{ai}(1-P_{bi}) \\ \Pr(X_i=-1) &= P_{bi}(1-P_{ai}) \\ \Pr(X_i=0) &= 1 - \Pr(X_i=1) - \Pr(X_i=0). }$$

Para abreviar, llamemos a estas probabilidades $a_i,$ $b_i,$ y $d_i,$ respectivamente. Escriba

$$f_i(x) = a_i x + b_i x^{-1} + d_i.$$

Este polinomio es un función generadora de probabilidad para $X_i.$

Consideremos la función racional

$$\psi_n(x,t) = \prod_{i=1}^n \left(1 + t f_i(x)\right).$$

(En realidad, $x^n\psi_n(x,t)$ es un polinomio: es una función racional bastante simple).

Cuando $\psi_n$ se expande como un polinomio en $t$ el coeficiente de $t^k$ consiste en la suma de todos los productos posibles de $k$ distintivo $f_i(x).$ Será una función racional con coeficientes no nulos sólo para potencias de $x$ de $x^{-k}$ a través de $x^k.$ Porque $\mathcal{I}$ se selecciona uniformemente al azar, los coeficientes de estas potencias de $x,$ cuando se normalizan para sumar la unidad, dan la función generadora de probabilidad para la diferencia de puntuaciones. Las potencias corresponden al tamaño de $\mathcal{I}.$

El objetivo de este análisis es que podamos calcular $\psi(x,t)$ fácilmente y con una eficacia razonable: simplemente multiplica el $n$ polinomios secuencialmente. Para ello es necesario conservar los coeficientes de $1, t, \ldots, t^k$ en $\psi_j(x,t)$ para $j=0, 1, \ldots, n.$ (por supuesto, podemos ignorar todos los poderes superiores de $t$ que aparecen en cualquiera de estos productos parciales). En consecuencia, toda la información necesaria que lleva $\psi_j(x,t)$ puede ser representado por un $2k+1\times n+1$ con filas indexadas por las potencias de $x$ (de $-k$ a través de $k$ ) y columnas indexadas por $0$ a través de $k$ .

Cada paso del cálculo requiere un trabajo proporcional al tamaño de esta matriz, escalando como $O(k^2).$ Teniendo en cuenta el número de pasos, se trata de un $O(k^2n)$ - tiempo, $O(kn)$ -espacio del algoritmo. Esto hace que sea bastante rápido para pequeñas $k.$ Lo he ejecutado en R (no conocido por la velocidad excesiva) para $k$ hasta $100$ y $n$ hasta $10^5,$ donde tarda nueve segundos (en un solo núcleo). En la configuración de la pregunta con $n=100$ y $k=10,$ el cómputo se lleva a cabo $0.03$ segundos.

Este es un ejemplo en el que el $P_{ai}$ son valores aleatorios uniformes entre $0$ y $1$ y el $P_{bi}$ son sus cuadrados (que siempre son menores que el $P_{ai}$ (lo que favorece fuertemente al estudiante A). He simulado 100.000 exámenes, como se resume en este histograma de las puntuaciones netas:

! Figure

Las barras azules indican los resultados en los que el alumno A obtuvo una mejor puntuación que el B. Los puntos rojos son el resultado del programa dinámico. Coinciden perfectamente con la simulación ( $\chi^2$ prueba, $p=51\%$ ). La suma de todas las probabilidades positivas da la respuesta en este caso, $0.7526\ldots.$

Obsérvese que este cálculo da más de lo que se pide: produce el distribución de probabilidad completa de la diferencia en las puntuaciones de todos los exámenes de $k$ o menos preguntas seleccionadas al azar.


Para aquellos que deseen una implementación de trabajo para usar o portar, aquí está el R código que produjo la simulación (almacenado en el vector Simulation ) y ejecutado el programa dinámico (con los resultados en la matriz P ). El repeat al final está ahí sólo para agregar todos los resultados inusualmente raros para que el $\chi^2$ la prueba se vuelve obviamente fiable. (En la mayoría de las situaciones esto no importa, pero evita que el sofware se queje).

n <- 100
k <- 10
p <- runif(n) # Student A's chances of answering correctly
q <- p^2      # Student B's chances of answering correctly
#
# Compute the full distribution.
#
system.time({
  P <- matrix(0, 2*k+1, k+1) # Indexing from (-k,0) to (k,k)
  rownames(P) <- (-k):k
  colnames(P) <- 0:k
  P[k+1, 1] <- 1
  for (i in 1:n) {
    a <- p[i] * (1 - q[i])
    b <- q[i] * (1 - p[i])
    d <- (1 - a - b)
    P[, 1:k+1] <- P[, 1:k+1] + 
      a * rbind(0, P[-(2*k+1), 1:k]) + 
      b * rbind(P[-1,  1:k], 0) + 
      d * P[,  1:k]
  }
  P <- apply(P, 2, function(x) x / sum(x))
})
#
# Simulation to check.
#
n.sim <- 1e5
set.seed(17)
system.time(
  Simulation <- replicate(n.sim, {
    i <- sample.int(n, k)
    sum(sign((runif(k) <= p[i]) - (runif(k) <= q[i]))) # Difference in scores, A-B
  })
)
#
# Test the calculation.
#
counts <- tabulate(Simulation+k+1, nbins=2*k+1)
n <- sum(counts)
k.min <- 5
repeat {
  probs <- P[, k+1]
  i <- probs * n.sim >= k.min
  z <- sum(probs[!i]) 
  if (z * n >= 5) break
  if (k.min * (2*k+1) >= n) break
  k.min <- ceiling(k.min * 3/2)
}
probs <- c(z, probs[i])
counts <- c(sum(counts[!i]), counts[i])
chisq.test(counts, p=probs)
#
# The answer.
#
sum(P[(1:k) + k+1, k+1]) # Chance that A-B is positive

2voto

Fabian Brenes Puntos 327

En cada iteración,

$P(A>B)=P(A)(1P(B))$

porque A sólo es mejor cuando A tiene razón y B no. Así, para una pregunta concreta, si A acierta el 90% de las veces y B acierta el 80%, la probabilidad conjunta de que A acierte y B se equivoque es

$ P(A,B) = 0.9 0.2 = 0.18 $

Ahora podría escribir un código que recorra las diez preguntas elegidas y asigne un punto a A o a B basándose en esta probabilidad conjunta. Al final de cada examen, el ganador es el que tiene más puntos. Haz esto muchas veces y observa la probabilidad de que A gane a B.

He escrito un código que hace esto aquí: https://nbviewer.jupyter.org/github/kevinmcinerney/exam_probabilities/blob/master/exam_probabilities.ipynb

El gráfico no aparece en el enlace, pero se ve así:

Esta simulación utilizó valores $ P_{ai} = P_{bi} = 0.5$

enter image description here

En este ejemplo, he realizado 1000 exámenes, cada uno de ellos compuesto por 25 preguntas, pero todos forman el mismo conjunto de 100 preguntas. El eje y es la probabilidad de que A haya hecho un examen mejor que B. El número de exámenes (0-1000) está en el eje x

Tanto A como B tenían una P aleatoria de acertar una pregunta, por lo que el gráfico converge en el 50%. He utilizado 25 preguntas, porque 10 no es muy representativo de la población que contiene 100 preguntas. Si se utilizan diez preguntas, es más probable que el gráfico converja en un porcentaje cercano o cercano al 50%. Las tres líneas son tres ensayos distintos.

1 votos

Espero que los gráficos no convergen en $50\%.$ Cuando el $P_{ai}$ y $P_{bi}$ se distribuyen uniformemente de forma independiente entre $0$ y $1,$ deberían converger a un valor muy cercano a $41\%.$ Esto se debe al hecho de que (a) ambos estudiantes tienen las mismas posibilidades de salir con una puntuación más alta y (b) hay alrededor de un $18\%$ posibilidad de que empaten.

0 votos

No estaba claro en mi respuesta, pero la simulación utilizada $P_{ai} = P_{bi} = 0.5.$ No las probabilidades 0,8 y 0,9 utilizadas en un ejemplo anterior. ¿Queda claro o sigo sin entender lo que quieres decir?

1 votos

No entiendes nada: Cuando ninguno de los $(P_{ai},P_{bi})$ pares es $(0,1)$ o $(1,0),$ hay una probabilidad positiva de que los estudiantes obtengan la misma puntuación total. Cuando todos esos pares son iguales, como en su ejemplo, se convierte por tanto en imposible que la puntuación de un estudiante superará a la del otro con una probabilidad del 50%. En tu ejemplo, la probabilidad es sólo del 41%. Una mirada atenta a su gráfico sugiere que es consistente con el 41% pero no con el 50%. (La respuesta exacta en tu caso es fácil de obtener porque todas las probabilidades son iguales: el 41% se aproxima a $215955/524288.$ )

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X