我运行了一些算法,想对结果进行一些统计分析。我有两个向量的平均误差率。
用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-test的问题在于var.equal语句,它给了我一个*SyntaxError:keyword不能是表达式(,第1行)。
额外问题:有没有更好的方法来处理numpy和Rpy2?

最佳答案

正如上面所说:“SyntaxError:keyword不能是表达式(,第1行)。”
在Python中,符号不能包含字符“.”。

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", ))})

查看rpy2 documentation about functions了解更多详细信息。

关于python - 使用Python和Rpy2进行统计测试(Kolmogorov和T检验),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9607698/

10-12 17:24
查看更多