Question

J'ai exécuté quelques algorithmes et je voulais faire des analyses statistiques avec les résultats.J'ai deux vecteurs avec les moyennes du taux d'erreur.

Avec R, en utilisant la ligne ci-dessous, j'obtiendrais tout.

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

Puisque j'utilise Python, je voulais utiliser le projet Rpy2.

J'ai essayé ça :

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]

Je n'ai pas pu effectuer les deux tests.

J'ai également découvert que le problème avec le test t vient de l'instruction var.equal et cela me donne un * Erreur de syntaxe:le mot clé ne peut pas être une expression (, ligne 1).

Question supplémentaire :Existe-t-il une meilleure façon de travailler avec numpy et Rpy2 ?

Était-ce utile?

La solution

Comme il est indiqué: " SyntaxError: mot-clé ne peut pas être une expression (, ligne 1). "

en python, les symboles ne peuvent pas contenir le caractère ".".

from rpy2.robjects.packages import importr
from rpy2.robjects.vectors import StrVector
stats = importr("stats")
stats.t_test(methodresults1, methodresults2,
             **{'var.equal': False,
                'paired': False,
                'alternative': StrVector(("less", ))})

vérifier le Documentation RPY2 sur les fonctions pour plusDétails.


Autres conseils

pour effectuer le test ks avec python, dans le cas d'un test à deux échantillons, vous pouvez

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

x, y sont deux nupmy.array:

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

la première valeur correspond aux statistiques de test et la deuxième valeur est la valeur p.si la valeur p est inférieure à 95 (pour un niveau de signification de 5 %), cela signifie que vous ne pouvez pas rejeter l'hypothèse nulle selon laquelle les deux distributions d'échantillons sont identiques.

pour un exemple de test ks, voir par exemple ici : http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kstest.html#scipy.stats.kstest

ce test vous permet de tester la qualité de l'ajustement de votre distribution empirique à une distribution de probabilité donnée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top