2017-03-04 3 views
0

Ich habe diesen Datensatz:Python, Binomialwert berechnen P Wert: Sieht dieser Code richtig aus?

ItemNumber Successes Trials Prob 
15   14   95  0.047 
9625  20   135  0.047 
19   14   147  0.047 
24   12   120  0.047 
20   15   133  0.047 
22   8   91  0.047 
9619  16   131  0.047 
10006  8   132  0.047 
25   15   127  0.047 

ich einen culmulative Binomialverteilung p-Wert für jedes Element identifizieren will, die Wahrscheinlichkeit der Beobachtung eine gleiche oder höhere Anzahl von Artikeln Vorkommen zu verstehen.

habe ich diesen Code:

import sys 
import scipy 
from scipy.stats.distributions import binom 
import sys 

for line in open(sys.argv[1], 'r').readlines(): 
    line = line.strip().split() 
    Item,num_succ,num_trials,prob = line[0],int(line[1]),int(line[2]),float(line[3]) 
    print Item + "\t" + str(num_succ) + "\t" + str(num_trials) + "\t" + str(prob) + "\t" + str(1 - (binom.cdf(num_succ, num_trials, prob))) 

Die Ausgabe sieht wie folgt aus:

Item NumSucc NumTrials Prob Binomial 
15  14  95   0.047 3.73e-05 
9625 20  135  0.047 1.48e-06 
19  14  147  0.047 0.004 
24  12  120  0.047 0.0043 
20  15  133  0.047 0.00054 
22  8  91   0.047 0.027 
9619 16  131  0.047 0.0001 
10006 8  132  0.047 0.169 
25  15  127  0.047 0.0003 

Das Problem: Wenn ich eine Zeile auswählen und überprüfen Sie die erhaltenen kumulativen binomischen p-Wert gegen einen Online-Tool wie dies: http://stattrek.com/online-calculator/binomial.aspx, sind die Ergebnisse nicht das Gleiche.

Zum Beispiel

Für Artikel 20 (# Erfolge = 15, # Versuche = 133, Prob = 0,047):

My Binomial P Val = 0.00054 
StatTrek P Val = 0.0015 

Allerdings kann ich von StatTrek sehen, dass das, was ich ausgesehen haben oben ist die Culmulative Wahrscheinlichkeit: P (X> 15), aber da ich "gleich oder größer als" wollen, was ich eigentlich berechnen möchte, ist die P (X> = 15) (die 0,0015 ist).

Ich kämpfe richtig den obigen Code zu bearbeiten, den P-Wert von „findet Zahl der Fälle größer als“ zurückgekehrt ändern zu „größer die Anzahl der Fälle finden als oder gleich“. Wenn jemand demonstrieren könnte, würde ich es begrüßen. Wenn Sie sich this question ansehen, habe ich versucht, Volodymyrs Kommentar zu folgen.

Antwort

0

Die Binominalverteilung ist eine diskrete Verteilung. Daher gilt Folgendes: P (X> 14) = P (X> = 15).

Also wenn Binom.cdf eine Wahrscheinlichkeit für P (X> N) berechnet (tut es? Ich habe die Dokumentation dafür nicht gefunden), müssen Sie es in P (X> N - 1) ändern, wenn Sie möchten Test für P (X> = N).

Verwandte Themen