2010-10-20 17 views
13

Estoy tratando de escribir un sistema de informes para un proyecto en el que estoy trabajando que analiza los puntajes previos y posteriores de las pruebas de las personas y hace algunos análisis al respecto. He buscado lo mejor que he podido, pero no puedo encontrar una clase PHP/conjunto de funciones que parezca hacer el análisis que necesito.Análisis estadístico para PHP

Actualmente, estoy volcando el conjunto de datos a un archivo CSV, y uno de mis compañeros lo está ejecutando a través de SPSS para realizar una prueba t de muestras pareadas (ese es el análisis que necesito ejecutar, ya que necesitamos el p- valor).

Sé que hay esta clase en PHP: http://usphp.com/manual/en/ref.stats.php, sin embargo, nada de eso parece estar documentado hasta el punto de que pueda entenderlo.

No me importa tener que escribir el análisis yo mismo, pero si ya existe, me gustaría evitar reinventar la rueda.

¡Gracias por cualquier ayuda!

+0

qué tipo de informes está usted queriendo producir? Gráficos? – iamjonesy

+0

Ya produzco todos los gráficos y el promedio que necesito. Literalmente SOLO necesito calcular el valor p estadístico para mis conjuntos de datos. –

+1

Puede usar el poder de R para hacer estadísticas para usted y llamarlo directamente desde php. http://www.matthewjockers.net/2008/11/11/executing-r-in-php/ –

Respuesta

2

Parece que va a querer utilizar la función stats_stat_paired_t. No estoy seguro de si ya probó esto, pero es posible que pueda averiguar si esta función hace lo que necesita al mirar su source code. Mire en statistics.c, línea 3201.

+0

Por lo que puedo decir, eso generó el valor t, pero espero encontrar una función que realmente genere el valor p Y el valor t? –

2

Paul, hice exactamente esto para un sistema de pruebas psicológicas (www.coolidgetests.com) y descubrí que realmente no era tan difícil de hacer por mi cuenta. Al igual que usted, busqué y busqué una solución disponible. Fue intimidante al principio admitir la derrota y comenzar a escribir el código, pero al final descubrí que no estaba tan mal.

En mi caso, el usuario toma una prueba que genera un resultado (1-4) Todos se atascan en una base de datos. Para hacer el informe, selecciono todo el grupo de respuestas para la prueba seleccionada, las divido por las respuestas que se califican normalmente y las que se invierten (1 = 4, 2 = 3, etc.) y luego las cambio con un interruptor declaración. Las dos matrices se combinan, luego las funciones de cálculo pasan para generar T, Z y otros puntajes estadísticos relevantes. Saco cartas muy simplemente a través de una tabla que está sombreada según el porcentaje calculado.

ACTUALIZACIÓN -

Aquí está mi Funciones T-score y Z:

function calculateZscore($scale, $median, $stdiv) { 
     if ($stdiv != 0) { 
      $zval = ($scale - $median)/$stdiv; 
     } 

     else $zval = 0; 
     return $zval; 
    } 

    function calculateTscore($zval) { 
     $tval = 50+ (10) * ($zval); 
     return $tval; 
    } 
+0

¿Tiene alguna posibilidad de tener las funciones que generan el puntaje T, y luego el siguiente valor p? –

+0

Actualizado con mis funciones Z y T-score. Rompí cada uno porque están en uso en otra parte de la aplicación de informes. Esencialmente, $ escala es las respuestas sumadas, la mediana y la STDIV (desviación estándar) son números conocidos que se me proporcionaron y se extrajeron de la base de datos para cada escala. – bpeterson76

Cuestiones relacionadas