Я запустил несколько алгоритмов и хотел сделать статистический анализ с результатами. У меня есть два вектора со средними показателями ошибок.
С R, используя строку ниже, я бы получил все.
t.test(methodresults1,methodresults2,var.equal=FALSE,paired=FALSE,alternative="less")
Поскольку я использую Python, я хотел использовать проект Rpy2.
Я пробовал это:
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]
Я не смог выполнить оба теста.
Я также обнаружил, что проблема с t-тестом связана с оператором var.equal и дает мне * SyntaxError: ключевое слово не может быть выражением (, строка 1).
Дополнительный вопрос: есть ли лучший способ работы с numpy и Rpy2?