4 votos

Prueba si el código es la generación de variables aleatorias consistente con la teoría de la

En el desarrollo de software, se suele escribir de la unidad de pruebas para asegurarse de que una porción particular de que el código funciona como se esperaba. Por ejemplo, considere el problema de dibujo de un color al azar de Colores=(Rojo, Verde, Azul). Supongamos que escribimos una función:

drawn_color = draw_color(Colors)

Una manera de evaluar si el código está funcionando correctamente o no es hacer lo siguiente:

tot_iter = 10000  
For iter = 1 to tot_iter  
   drawn_color(iter) = draw_color(Colors)  
Next 

Y, a continuación, compruebe si las frecuencias de los colores en drawn_color son aproximadamente 10000/3. Sin embargo, la evaluación anterior requiere de una inspección visual y prefiero automatizar toda la cosa para que yo pueda escribir un código de prueba así:

If abs(empirical freq - expected freq) < = epsilon then the code is valid.

Dos preguntas:

  1. ¿Cómo epsilon variar como una función de tot_iter?

  2. ¿Hay un genérico de enfoque sobre el tema donde las variables aleatorias que pueden extraerse de otras distribuciones de densidad (por ejemplo, normal, uniforme, discreta, etc)?

3voto

AdamSane Puntos 1825

En primer lugar, sólo para estar seguro de que está claro, una prueba estadística no decir que el código es válido. Algunas veces se puede demostrar que cuando hay un problema. El fracaso para rechazar es simplemente decir que no se podía recogerlo con esa prueba en la que el tamaño de la muestra, que en este momento, hay un montón de razones por las que puede no se puede rechazar.

Dicho esto, suena como usted está buscando una prueba de hipótesis. Voy a proceder en base a eso, pero puede que sea mejor pensar en términos de la teoría de la decisión (al menos, un examen oficioso de los costos relativos de los dos tipos de error pueden ayudar a elegir su tamaño de la muestra y nivel de significación).

Si abs(empírica frecuencia esperada frecuencia) < = epsilon, a continuación, el código es válido.

Presumiblemente, su intención es equivalente a la prueba de la mayor de las tres desviaciones - si usted llega a los tres, y a la conclusión de que un error si alguno falla es equivalente a la comprobación de la peor.

Usted podría ciertamente construir una prueba de este formulario.

Sin embargo, más común de la prueba en el caso de la multinomial sería el chi-cuadrado de bondad de ajuste de la prueba. Es decir, en lugar de $\stackrel{_\max}{_i}|O_i-E_i|$, una suma de cuadrados, estandarizado desviaciones, $\sum_i (O_i-E_i)^2/E_i$ se utiliza a menudo. Si eso es tan susceptible a usted, usted puede preferir que como algo que es probable que otras personas estén familiarizados con (y para el que es relativamente fácil encontrar los valores adecuados para $\epsilon$ una vez que elija su tipo de la tasa de error). De una estrecha relación de la prueba (y posiblemente la opción preferible en grandes tamaños de muestra) es el G-test.

¿Cómo epsilon variar como una función de tot_iter?

Mientras que la distribución de la desviación media probablemente sería razonablemente fácil de calcular, o al menos aproximado, probablemente me empieza haciendo un dato que a través de la simulación (a pesar de que en muestras grandes, debe establecerse con algo que se puede tratar con relativamente más simple). Es decir, simular la distribución de la proporción cuando las cosas son como deberían ser, a continuación, especifique $\alpha$, la velocidad a la que usted está preparado para decir "hay un problema" cuando no hay ningún problema (el Tipo de la tasa de error o nivel de significación) y encontrar el punto de corte en la distribución que podría causar su rechazo de la regla para rechazar que la proporción de casos.

Si usted usa más estándar de prueba tiene un poco menos trabajo que hacer.

¿Hay un genérico de enfoque sobre el tema donde las variables aleatorias que pueden extraerse de otras distribuciones de densidad (por ejemplo, normal, uniforme, discreta, etc)?

Lo que estamos tratando de hacer es el área general de la bondad de ajuste de la prueba. Es un área muy grande y hay muchas, muchas pruebas (muchas docenas a cientos, en realidad), casi todos de los cuales ni siquiera me voy a mencionar aquí.

Si usted tiene un especificada continua de la distribución normal estándar, estándar uniforme, la Gamma(3,17), etc), se puede utilizar un test no paramétrico de la prueba como una de Anderson-Darling prueba o un test de Kolmogorov-Smirnov prueba. Estos están muy bien en que cada una distribución continua puede ser manejado por la misma prueba. [Si la distribución no está completamente especificado, hay varias posibilidades, pero me imagino que no estás en esa situación.]

Si la distribución es discreta, las pruebas todavía puede funcionar, pero usted necesita ajustar los valores críticos ('el corte') por la cantidad de discreto; me gustaría probable que el uso de la simulación. Hay otras posibilidades para las pruebas de distribuciones discretas.

Si la distribución es más categorías nominales, la mencionada prueba de chi-cuadrado es común.

Tenga en cuenta que llegar a la univariante de la distribución de la forma correcta, no es la única consideración en la generación de números aleatorios. Muchas de las pruebas que considere multivariante de distribución, o de serie de la dependencia en alguna forma se han propuesto, y todo suites de pruebas (e.g.1, e.g.2, e.g.3) se han propuesto para las pruebas de generación de números aleatorios.

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