您的位置:首页 > 编程语言 > Python开发

在jupyter中用python和R完成t检验

2020-04-04 12:14 1331 查看

jupyter notebook中python与R完成T test的比较


今天打开Rstudio的时候电脑卡了,突然想到是不是可以在jupyter notebook中同时写python和R。经过一翻折腾,实现如下,并分别使用python和R的包尝试了t检验。

conda安装R内核及rpy2

conda install -c r r-essentials
pip install rpy2

在jupyter中尝试用python完成t检验

#单样本双侧t检验的实现方法
# 导入子模块stats
from scipy import stats
#导入numpy
import numpy as np
#生成随机数种子
np.random.seed(0)
data = np.random.randint(500, 540,20)#生成20个500-540之间的整数
# 单样本t检验,默认双尾
stats.ttest_1samp(a = data, # 指定待检验的数据
popmean = 517, # 指定总体均值
# 指定缺失值的处理办法(如果数据中存在缺失值,则检验结果返回nan)
nan_policy = 'propagate'
)

输出结果如下

Ttest_1sampResult(statistic=0.9712497373514786, pvalue=0.34362702591369765)

在python里用R实现t检验

通过load extension rpy2实现R的使用

#导入rpy2模块
%load_ext rpy2.ipython
#导入需要的R package
%R require(stats)
%%R -i data
t.test(x=data, #指定待检验的数据
alternative='two.sided', #指定单尾还是双尾
mu=517,#指定总体均值
conf.level = 0.95
)

链接: rpy2使用方法.
%R and %%R are the line and cell magics, respectively.
输出结果如下

One Sample t-test

data:  data
t = 0.97125, df = 19, p-value = 0.3436
alternative hypothesis: true mean is not equal to 517
95 percent confidence interval:
513.6506 526.1494
sample estimates:
mean of x
519.9

相比之下,还是R的t检验更加灵活,同等代码量下,输出的信息更多,可读性也更好。目前我还没有找到python里进行单尾t检验的函数,暂时还是直接用R吧。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
红泥小火炉儿 发布了5 篇原创文章 · 获赞 0 · 访问量 195 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: