1 votos

¿Es correcto mi planteamiento de comprobación de hipótesis?

Tengo un conjunto de datos que se probó con diferentes lenguajes de programación / versiones del mismo algoritmo. Considero que son los tratamientos.

Quiero probar el efecto de los tratamientos, así que he recogido el tiempo de ejecución obtenido al utilizar un tratamiento con el mismo conjunto de datos que tiene 50k, 100k o 1M de filas, cada tamaño se procesó 5 veces con cada tratamiento (mismo conjunto de datos mismo tratamiento 5 veces), excepto en algunos casos en los que el conjunto de datos más grande se probó sólo una vez por tratamiento. Esto hace que mis datos sean emparejados (dependientes).

He seleccionado dos pruebas que pueden aplicarse a datos dependientes no paramétricos: Wilcoxon signed rank para dos muestras, y la prueba de Friedman para más de dos muestras.

Para la prueba de rangos con signo de Wilcoxon planeo hacerlo de esta manera:

enter image description here

a) ¿Podría utilizarse en MatLab?

[p,h] = signrank(java,python) 

b) ¿Afecta en algo tener 5 tiempos de ejecución para exactamente el mismo conjunto de datos, luego otros 5 para un conjunto de datos mayor con la misma información excepto por los IDs (por ejemplo, continúa desde el ID 50 000, al 50 001, 50 0002, etc.), luego 1 tiempo de ejecución para el conjunto de datos 1M? o ¿está bien darle a MatLab dos vectores, cada uno formado por los datos en columnas?

Para la prueba de Friedman planeo hacerlo de esta manera:

enter image description here

c) ¿Podría utilizarse en MatLab?

p = friedman(data,5)

donde datos es toda la matriz mostrada en la imagen, y 5 por la repetición de 5 tiempos de ejecución por tamaño del conjunto de datos.

d) ¿Cómo puedo abordar la repetición en una prueba de dos muestras?

La nota final es que los resultados de cada prueba se van a utilizar por separado, de forma aislada.

Me costó llegar al punto en el que creo saber qué pruebas de hipótesis son adecuadas para los datos que tengo, pero aún tengo algunas dudas sobre su aplicación. Cualquier ayuda y comentario es muy apreciado.

2voto

kjetil b halvorsen Puntos 7012

En primer lugar, los tiempos de ejecución son tan diferentes (aproximadamente un factor diez) que apenas es necesaria una prueba formal. Pero aún queda mucho por decir...

Usted dice que tiene una comparación por pares, ya que las implementaciones se probaron con diferentes conjuntos de datos (los mismos conjuntos de datos para cada implementación, por lo que es por pares). Pero entonces, para algunos de los conjuntos de datos, usted realizó múltiples (cinco) ejecuciones, ¡lo que hace que sea una comparación de muestras independientes dentro de la comparación emparejada! Tal vez sólo habría que promediar esas ejecuciones independientes.

Obsérvese ahora que las pruebas formales de hipótesis para comparaciones pareadas suelen basarse en modelos como $$ y_{i,1} = \mu + \epsilon_{i,1} \\ y_{i,2} = \mu + \Delta +\epsilon_{i,2} $$ donde el $\epsilon$ tienen alguna distribución que no nos molestamos en especificar, y $\Delta$ es la diferencia entre tratamientos. Es decir, las pruebas dependen de la suposición de que la diferencia esperada entre tratamientos en los pares es constante en las distintas condiciones experimentales indexadas por $i$ . Este no puede ser el caso aquí, ya que se esperaría que los tiempos de ejecución fueran (casi) proporcionales cuando varía el tamaño del conjunto de datos de entrada. Esto podría tratarse con un modelo de regresión o, más sencillamente, analizando los logaritmos. Se lo dejo a usted para que lo vea.

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