R语言作为一门高级计算机语言,一开始就是为统计学方法的实现而生的,其统计功能相当强大。但对于科研小白来说,尤其是刚开始接触R语言的小伙伴可能会觉得它进行统计时输出结果并不友好,显得复杂而不太好理解,使用体验不如spss等软件。如果R语言能在做完统计的同时顺便直白告诉我统计结果,方便我把结论写到论文里就好了!还別说,这样的R包还真的有,它就是我们今天要介绍的report包!
一、report包简介
report包其创建的初衷是为了弥合R的统计输出与论文写作中包含的格式化结果之间的差距。report包旨在根据相关样式指南(例如APA的样式指南)自动生成标准化和高质量的统计学报告,让使用R语言进行统计分析的人对输出结果一目了然。
01report包安装
由于report包目前仍托管在github上,因此我们需要github上R包的安装方式进行安装,代码如下,小伙伴们复制粘贴直接运行即可:
if(!require(devtools))install.packages("devtools")
devtools::install_github("easystats/performance")
devtools::install_github("easystats/parameters")
devtools::install_github("easystats/report")
02R包调用
安装好之后我们就可以进行调用了。
library(report)
二、使用方法
01 report包主要函数
(1)report():report包目前内置了一系列的函数,但“包”如其名,其主函数为report()。
使用report()函数可以创建一个报告对象,该函数有类似泛型函数的特点,可以根据我们输入的不同对象类型而调用相应参数进行解析。(2)report()函数的配套函数主要包括:①to_text():以文本形式显示此报告对象,默认情况下report()函数呈现的结果就是文本形式的。②to_table():以表格形式显示此报告对象③to_fulltext()和to_fulltable():显示访问更详细(但摘要较少)的报告版本。④to_values():显示报告中每一个数据对象的数值内容。
看到这,先别急着关掉文章呀喂,下面我们会进行举例演示,相信你能看懂~
02report包目前支持的统计学对象
(1)cor.test:相关分析
(2)t.test:t检验(3)glm:广义线性模型(4)lme4包中用于构建固定效应模型和随机效应模型的相关函数:如glmer、lmer (5)rstanarm包用于构建贝叶斯线性模型等函数,如stan_glm(6)其他:正在开发当中~report包的函数还有一个特点就是支持管道符操作,即可以使用“%>%”来串联代码,简直是懒人福音~
三、举例学习
01造一个用于分析的数据
02数据一般性描述分析
03 t检验
我们可以使用t检验分析数据框中,不同性别间收入是否具有统计学差异:
注:数据符合正态性分布且方差齐,此处略过检验过程。
从上述结果来看,我们造的数据,不同性别间收入是没有差异的。那么下面请看一句话版本的统计结果。
嗯,一句话说明问题,挺好,稍作修缮就可以写到论文里去了有没有!
04相关性分析我们还可以对收入和年龄进行相关性分析:
从相关系数和P值来看,年龄和收入呈负相关,且具有统计学意义。
下面我们同样来看一句话版本:
report函数告诉我们了,这里相关性分析用了Pearson相关(cor.test默认的方法),结果年龄和收入呈负相关,有统计学意义,并且相关性中等。
然后让我们输入表格版结果,同样一目了然:
相关性分析做完了,既然年龄和收入具有相关性,那么我们能不能用年龄来预测收入呢?当然可以,下面请看线性回归,这部分内容也将展示report包中其他几个主要函数的使用。
05线性模型
上述结果中,lm函数输出的结果比较简略,只有模型的截距和回归系数,我们可以通过summary函数展示更多信息。
上面的结果就详尽了,可是复杂了不少,这里咱稍做解释,
❶ 0.8615 >表示拟合曲线有24个自由度,残差的标准差为0.8615。❷ Multiple R-squared: 0.1797与Adjusted R-squared:0.1455 分别表示决定系数(R2 )和校正决定系数(adjusted R2)用来评估模型的优劣。一般而言,R2越大,表示自变量的解释能力越强,模型就越好❸ F-statistic: 5.258 on 1 and 24 DF这表示F的统计量为5.258 ,1和24是两个自由度。❹ p-value:0.0309这是F统计量对应的p值。❺ Intercept为回归方程的截距,这里值为8004.26681❻ age对应的-0.09896 为回归系数 也就是说我们建立的模型为:收入(income)=-0.09896×年龄(age)+8004.26681
好了,那么如果写论文,怎么办,report包同样告诉你,三句话说明问题:
如果你嫌说的太短意犹未尽,那还可以看一个啰嗦一点的版本:
当然想要简要表格版本也可以:
想要详尽表格版本也行,统统安排上:
当然精准汇报到每个数值的情况也可以,但是显得有点琐碎了,自己看看就行了,写到论文里还是欠妥的。
后面还有很多数值内容,限于篇幅不做展示,感兴趣的小伙伴可以自己在R中运行代码查看。
四、小结
好了,以上对于report包的主要函数就介绍完毕了。作为一个新兴的R包,report包力求在R语言统计输出与论文写作中搭建信息转化的桥梁,这样的R包对科研小白来说无疑是可爱的。
当然,不可否认由于目前该包仍处在开发状态,还存在一些功能不完善的地方,作者在github上也呼吁喜欢的它的网友集思广益提出意见,促进其完善,更多功能我们拭目以待吧!
参考内容:https://github.com/easystats/report#supported-packages