Frage

Ich habe einige Algorithmen ausgeführt und wollte mit den Ergebnissen eine statistische Analyse durchführen.Ich habe zwei Vektoren mit den Durchschnittswerten der Fehlerrate.

Mit R würde ich mit der folgenden Zeile alles bekommen.

t.test(methodresults1,methodresults2,var.equal=FALSE,paired=FALSE,alternative="less")

Da ich Python verwende, wollte ich das Rpy2-Projekt verwenden.

Ich habe das versucht:

import rpy2.robjects as R

# methodresults1 and methodresults2 are numpy arrays.

# kolmogorov test
normality_res = R.r['ks.test'](R.FloatVector(methodresults1.tolist()),'pnorm',mean=R.FloatVector(methodresults1.mean().tolist()),sd=R.FloatVector(methodresults1.std().tolist())))

# t-test
res = R.r['t.test'](R.FloatVector(methodresults1.tolist()),R.FloatVector(methodresults2.tolist()),alternative='two.sided',var.equal=FALSE,paired=FALSE)

res.rx('p.value')[0][0]
res.rx('statistic')[0][0]
res.rx('parameter')[0][0]

Ich konnte nicht beide Tests durchführen.

Ich habe auch festgestellt, dass das Problem mit dem t-Test in der var.equal-Anweisung liegt, und sie gibt mir eine * Syntax-Fehler:Schlüsselwort kann kein Ausdruck sein (, Zeile 1).

Zusatzfrage:Gibt es eine bessere Möglichkeit, mit Numpy und Rpy2 zu arbeiten?

War es hilfreich?

Lösung

Wie es heißt: " SyntaxError: Das Schlüsselwort kann kein Ausdruck (, Zeile 1) sein. "

In Python können Symbole nicht das Zeichen enthalten ". generasacodicetagpre.

Überprüfen Sie den RPY2-Dokumentation über Funktionen für mehrDetails.


Andere Tipps

Um einen ks-Test mit Python durchzuführen, ist dies im Falle eines Tests mit zwei Stichproben möglich

>>> from scipy.stats import ks_2samp
>>> import numpy as np
>>> 

Wo x, y sind zwei nupmy.array:

>>> ks_2samp(x, y)
(0.022999999999999909, 0.95189016804849658)

Der erste Wert ist die Teststatistik und der zweite Wert ist der p-Wert.Wenn der p-Wert kleiner als 95 ist (bei einem Signifikanzniveau von 5 %), bedeutet dies, dass Sie die Nullhypothese, dass die beiden Stichprobenverteilungen identisch sind, nicht ablehnen können.

Einen Beispiel-KS-Test finden Sie zum Beispiel hier: http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kstest.html#scipy.stats.kstest

Mit diesem Test können Sie die Anpassungsgüte Ihrer empirischen Verteilung an eine gegebene Wahrscheinlichkeitsverteilung testen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top