2010-10-20 16 views
13

Próbuję napisać system raportowania dla projektu, nad którym pracuję, który analizuje oceny osób przed i po testach oraz przeprowadza na nich analizę. Przeszukałem najlepiej jak potrafiłem, ale nie mogę znaleźć klasy PHP/zestawu funkcji, które wydają się wykonywać potrzebną mi analizę.Analiza statystyczna dla PHP

Obecnie wyrzucam zestaw danych do pliku CSV, a jeden z moich współpracowników uruchamia go za pomocą SPSS, aby wykonać test t-pa próbek (to analiza, którą muszę wykonać, ponieważ potrzebujemy wartość).

Wiem, że jest taka klasa w PHP: http://usphp.com/manual/en/ref.stats.php, , jednak żadna z nich nie wydaje się udokumentowana do tego stopnia, że ​​mogę ją zrozumieć.

Nie mam nic przeciwko konieczności napisania analizy samodzielnie, ale jeśli już istnieje, chciałbym uniknąć ponownego wynalezienia koła.

Dzięki za pomoc!

+0

jakie raportowania ty chcąc produkować? Wykresy? – iamjonesy

+0

Już produkuję wszystkie wykresy i średnie, których potrzebuję. Dosłownie Trzeba wyliczyć statystyczną wartość p dla moich zbiorów danych. –

+1

Możesz użyć mocy R do tworzenia statystyk dla ciebie i zadzwonić bezpośrednio z php. http://www.matthewjockers.net/2008/11/11/executing-r-in-php/ –

Odpowiedz

2

Wygląda na to, że zamierzasz użyć funkcji stats_stat_paired_t. Nie jestem pewien, czy próbowałeś tego jeszcze, ale możesz być w stanie dowiedzieć się, czy ta funkcja robi to, czego potrzebujesz, patrząc na jej source code. Zajrzyj do statistics.c, linia 3201.

+0

Z tego, co wiem, wynika, że ​​wygenerowałem wartość t, ale mam nadzieję znaleźć funkcję, która faktycznie generuje wartość p ORAZ wartość? –

2

Paul, zrobiłem to dokładnie dla systemu testów psychologicznych (www.coolidgetests.com) i stwierdziłem, że nie było to trudne. Podobnie jak ty, szukałem i szukałem dostępnego rozwiązania. Początkowo na początku był onieśmielający, by przyznać się do porażki i zacząć pisać kod, ale w końcu okazało się, że nie było tak źle.

W moim przypadku użytkownik wykonuje test, który generuje wynik (1-4) Wszystkie zostają zablokowane w DB. Aby wykonać raport, wybieram całą grupę odpowiedzi dla wybranego testu, dzielę je na odpowiedzi, które są punktowane normalnie, oraz te, które są odwrócone (1 = 4, 2 = 3, itd.), A następnie zmieniaj je za pomocą przełącznika komunikat. Dwie macierze są łączone, a następnie funkcje obliczeniowe przechodzą do generowania T, Z i innych istotnych wyników statystycznych. Wyszukuję wykresy po prostu za pomocą tabeli, która jest cieniowana w oparciu o wyliczony procent.

AKTUALIZACJA -

Oto mój Funkcje Z i T-score:

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

Czy przez przypadek masz funkcje, które generują wynik T, a następnie następną wartość p? –

+0

Zaktualizowany z moimi funkcjami Z- i T-score. Zrzuciłem każdy z nich, ponieważ są one używane gdzie indziej w aplikacji do raportowania. Zasadniczo, skala $ to zsumowane odpowiedzi, mediana i STDIV (odchylenie standardowe) to znane liczby, które zostały mi dostarczone i są pobierane z DB dla każdej skali. – bpeterson76