scitb包1.5版本发布—增加了统计值的结果和自动判断数据是否正态分布的功能

news2024/11/24 18:35:28

目前,本人写的scitb包1.5版本已经正式在R语言官方CRAN上线,scitb包是一个为生成专业化统计表格而生的R包。目前只能绘制基线表一。
可以使用以下代码安装

install.packages("scitb")

在这里插入图片描述
安装过旧版本的从新安装一次就可以升级了
scitb包1.5版本修正了上个版本的一些小错误,根据粉丝的建议,增加了两个新功能,一个是返回了统计值的结果,因为咱们国内的论文投稿的时候经常需要上报一些卡方值,F值等什么的,其实scitb包计算的时候已经生成这个值了,只是没有列出来,这次增加了这个功能,还有一个是增加了自动判断数据是否是正态分布,然后根据是否是正态分布返回相应的结果,如果不是正态分布的话返回的是中位数和四分位数表示,P值也是使用秩和检验计算出来。
下面我来演示一下,scitb包生成结果需要stringi包和nortest包支持,这两个包你可以不导入,但要先安装好。

install.packages(stringi)
install.packages(nortest)

安装好需要的包后我们就可以开始了,先导入R包和数据,scitb包自带有我既往的早产数据,咱们直接从包调用

library(scitb)
bc<-prematurity

在这里插入图片描述
这是一个关于早产低体重儿的数据,低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产低体重儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数,bwt 新生儿体重数值
Sci包中绘制基线表的主要是scitb1函数(以后会有更多其他表格函数),咱们来看下它的函数体

scitb1(vars,fvars=NULL,strata,data,dec,num,nonnormal=NULL,type=NULL,
statistic=F,atotest=T,NormalTest=NULL)

咱们先来看一下,vars是变量的意思,你基线表中的变量放进去,fvars是分类变量,就是你vars变量中的分类变量,如果没有的话就留空。strata,就是分层的意思,这里填入你要研究的变量,data这里填入你的数据,dec就是你生成结果的小数点位数,默认是3位,其他的变量我在后面部分穿插来讲。
咱们先来个分类变量的
假设咱们想race为研究目标,因为它是分类变量,咱们最好把它转成因子,因为scitb包有一定对数据类型的判定能力,如果你的分类变量类别大于5个,而你不转成因子的话,它可能自动判定为连续变量,处理方式不一样的,所以这里最好自己设定一下

bc$race<-as.factor(bc$race)

接下来就是定义全部变量,分类变量和分层变量,这和tableone包一模一样,如果你会使用tableone包,使用scitb包起来完全无压力。

allVars <-c("age", "lwt",  "smoke", "ptl", "ht", "ui", "ftv", "bwt")
fvars<-c("smoke","ht","ui")
strata<-"race"

一键生成统计结果

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)

在这里插入图片描述
咱们看下上图,这里我要好好讲一下,“age”, “lwt”,“ptl”,“ftv”,这4个变量被函数判断成了非正态分布,bwt被判定成了正态分布。咱们先看"ptl","ftv"这两个的结果非常奇怪好像不怎么对,咱们从新看下数据

在这里插入图片描述
"ptl"只有两个分类应该是定义成分类变量,我们把它定义成连续变量搞错了,ftv是看医生的次数,1-6次,虽然看起来好像个连续变量,但是只有6个分类变量,我觉得该是定义为分类变量比较好,可以改成3次一下和3次以上的,咱们从新跑一下

fvars<-c("smoke","ht","ui","ptl","ftv")
out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)

在这里插入图片描述
我们可以看到age,lwt这两个变量还是被判定为非正态分布,咱们来看下它算的对不对,画个直方图

hist(bc$age)
hist(bc$lwt)
hist(bc$bwt) 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们可以看到前两个不是正态分布,而bwt是明显的正态分布,算得还是比较准的。我这里介绍一下我是怎么算正态分布的,我参照了SPSS的算法。

在这里插入图片描述
我们可以看到,SPSS对于正态分布提供2种算法Shapiro-Wilk 检验和Kolmogorov–Smirnov检验。Shapiro-Wilk 检验是用于样本量小于3500的。
而我在scitb包中提供了5种算法,默认的是:当样本量小于3500使用Shapiro-Wilk 检验,样本量大于3500使用Kolmogorov–Smirnov检验。你要是觉得这两种检验算得不准的话,我这里还提供有"ad", “cvm”, "pearson"3种检验,使用NormalTest参数控制,比如

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc,NormalTest="ad")

在这里插入图片描述
近年来有文献表明"ad", "cvm"这两种方法优于前面两种,但前两种是经典算法,被大众接受,所以我默认了前两种。
自动计算正态分布受到atotest参数控制,默认是atotest=T,比如你不想使用函数自动帮你计算正态分布,你想自己定义你可以关了,通过nonnormal这个参数来定义非正态参数

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc,nonnormal =c("lwt"),atotest = F)

在这里插入图片描述
我们可以看到就只有lwt定义为非正态分布。

我这里要重点说一下,如果你使用nonnormal这个参数来定义非正态分布的参数,一定要设置atotest = F,把自动判定关掉,不然是没有用的,还是会自动判定的。

接下来说一下统计值,默认是不返回统计值,统计值由参数statistic控制,默认是statistic=F,如果你的文章需要统计值,可以

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc,statistic=T)

在这里插入图片描述
这里我解释一下,如果是分类变量这里的方法是卡方,一律是卡方值(χ2),如果是连续变量的,如果是正态分布的话就是使用单因素方差分析,它的值是F值,如果是非正态分布的话,使用的是秩和检验,也有叫克鲁斯卡尔-沃利斯检验(Kruskal-Wallis),在SPSS中叫做K检验,算出来的结果和tableone一模一样的,有兴趣可以自己取算一下。
下面我来介绍一下连续变量和上一篇差不多的(详细的可以翻看上一篇),这里我简单介绍一下。
我们这里假设研究年龄age这个连续变量,默认分层3组

allVars <-c("race", "lwt",  "smoke", "ptl", "ht", "ui", "ftv", "bwt")
fvars<-c("smoke","ht","ui","race")
strata<-"age"

一键生成结果

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)

在这里插入图片描述
在新版本中,除了介绍分割点外,还会出现红字温馨提醒你,分层变量也就是目标变量被当做一个连续变量来处理了

在这里插入图片描述
加入统计值也是一样的

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc,statistic=TRUE)

在这里插入图片描述
其他的都和上一篇差不多,就不详细介绍了,有兴趣的看下上一篇。最后导出数据

write.csv(out,file = "1.csv",row.names = F)

这里要说一下,如果你导出的是乱码,可以使用如下代码纠正

write.csv(out,file = "1.csv",fileEncoding = "GB18030",row.names = F)

在这里插入图片描述
打开看一下

在这里插入图片描述
把它拷贝入word

在这里插入图片描述
把它整理一下,这样一个专业表格就做好啦。

在这里插入图片描述
如果你还是不会也没有关系,下周我再出个操作视频。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux常用命令——cal命令

在线Linux命令查询工具 cal 显示当前日历或指定日期的日历 补充说明 cal命令用于显示当前日历&#xff0c;或者指定日期的日历。 语法 cal(选项)(参数)选项 -l&#xff1a;显示单月输出&#xff1b; -3&#xff1a;显示临近三个月的日历&#xff1b; -s&#xff1a;将星…

Thales hsm是什么意思,有什么作用?

Thales HSM是一种硬件安全模块(Hardware Security Module&#xff0c;HSM)&#xff0c;是Thales公司开发的一种安全设备&#xff0c;用于保护和管理密码和数字证书。HSM是一种物理设备&#xff0c;通常用于需要高度安全性的环境中&#xff0c;如政府机构、金融机构、大型企业等…

第四章:人工智能深度学习教程-激活函数(第一节-激活函数)

简单来说&#xff0c;人工神经元计算其输入的“加权和”并添加偏差&#xff0c;如下图所示的净输入。 从数学上来说&#xff0c; 现在净输入的值可以是从 -inf 到 inf 之间的任何值。神经元并不真正知道如何绑定到值&#xff0c;因此无法决定激发模式。因此激活函数是人工神经网…

vue项目electron打包

1.设置国内镜像 npm config edit 命令行输入后会弹出npm的配置文档&#xff0c;需要文档末尾加入 electron_mirrorhttps://npm.taobao.org/mirrors/electron/ electron-builder-binaries_mirrorhttps://npm.taobao.org/mirrors/electron-builder-binaries/ 2.全局安装electron …

内存条选购注意事项(电脑,笔记本)

电脑内存条的作用、选购技巧以及注意事项详解 - 郝光明的个人空间 - OSCHINA - 中文开源技术交流社区 现在的电脑直接和内存条联系 电脑上的所有输入和输出都只能依靠内存条 现在买双条而不是单条 买两个相同的内存条最好 笔记本先分清是低电压还是标准电压&#xff0c;DD…

经销商管理怎么做?

有人说&#xff0c;谁占据了渠道&#xff0c;谁就拥有了销售的大半个江山。在渠道为王的时代&#xff0c;每个企业都想快速打开市场&#xff0c;以渠道铺设自己的销路&#xff0c;捞取一桶桶金。因此&#xff0c;占领渠道&#xff0c;将渠道管理好是企业&#xff0c;尤其是快消…

安徽首届道医传承十八绝技发布会在合肥成功举办

近日&#xff0c;在安徽合肥举行了首届道医传承十八绝技发布会&#xff0c;本次会议由安徽渡罗门生物科技有限公司、北京道武易医文化传播有限公司、楼观台道医文化研究院联合举办。现场吸引了来自全国各地民族医学领域的专家学者参与讨论与交流。本次会议旨在促进道医的交流与…

如何存储队列位置信息

实际运行中的系统&#xff0c;难免会遇到重新消费某条消息、跳过一段时间内的消息等情况。这些异常情况的处理&#xff0c;都和Offset有关。本节主要分析Offset的存储位置&#xff0c;以及如何根据需要调整Offset的值。 首先来明确一下Offset的含义&#xff0c;RocketMQ中&…

进口猫罐头在排行榜中是否靠前?排行榜中靠前的猫罐头测评

养猫这6年&#xff0c;我对猫咪的日常饮食把关一直很严格。这些年我给我家猫们购买过很多不同品牌、不同口味的罐头&#xff0c;在猫罐头的挑选、分析上还是有一些经验的。今天&#xff0c;我将和大家一起探讨进口猫罐头在排行榜中是否靠前&#xff1f;同时&#xff0c;我将为大…

[量化投资-学习笔记008]Python+TDengine从零开始搭建量化分析平台-CCI和ATR

目录 1. 指标简介CCIATR 2. 程序编写题外话 1. 指标简介 将这两个指标放在一起&#xff0c;一方面是因为这两个指标都属于摆动指数&#xff0c;可以反应市场的活跃度。 另一方面是因为CCI和ATR与之前提到的EMA,MACD,布林带的三个指标的计算基础不同。之前的三个指标都是以收盘…

UltraEdit2024免费版文本编辑器

我们必须承认软件员使用的编辑器或代码编辑器是一款强大 IDE 的重要组成部分&#xff0c;它是任何 IDE 的核心基础。用户量向我们证明了UEStudio 基于著名的 UltraEdit 进行构建&#xff0c;同样&#xff0c;软件的主干非常成熟和稳定&#xff0c;并且已经被证实成为文本和软件…

【Unity ShaderGraph】| 物体靠近时局部溶解,根据坐标控制溶解的位置【文末送书】

前言 【Unity ShaderGraph】| 物体靠近时局部溶解&#xff0c;根据坐标控制溶解的位置一、效果展示二、根据坐标控制溶解的位置&#xff0c;物体靠近局部溶解三、应用实例&#x1f451;评论区抽奖送书 前言 本文将使用ShaderGraph制作一个根据坐标控制溶解的位置&#xff0c;物…

winform开发小技巧

如果我们不知道怎么在代码中new 一个控件&#xff0c;我们可以先在窗体中拉一个然后看Form1.Designer.cs 里面生成的代码就是我们要的 我们会在下面看到 还有泛型的使用&#xff0c;马上更新

ProPainter——实现视频消除特定对象、去水印、视频修复

ProPainter视频修复 1. 安装1.1 克隆项目1.2 创建虚拟环境和安装依赖库1.3 下载权重文件 2. 自带示例2.1 消除物体2.2 视频修复 3. 实际应用案例4.训练自己的数据集 &#x1f4dd;github&#xff1a;https://github.com/sczhou/ProPainter &#x1f4d6;paper&#xff1a;ICCV…

AI 时代的企业级安全合规策略

目录 漏洞分类管理的流程 安全策略管理 在扫描结果策略中定义细粒度的规则 有效考虑整个组织中的关键漏洞 确保职责分离 尝试组合拳 本文来源&#xff1a;about.gitlab.com 作者&#xff1a;Grant Hickman 在应用程序敏捷研发、敏捷交付的今天&#xff0c;让安全人员跟上…

SNP应邀参加2023中国企业数字化转型峰会暨赛意用户大会

创新驱动科技&#xff0c;数智驱动未来。如今&#xff0c;我国产业数字化进程提速升级&#xff0c;数字产业化规模持续壮大。数据显示&#xff0c;2022年&#xff0c;我国数字经济规模达50.2万亿元&#xff0c;总量稳居世界第二。数字经济已经成为推动传统产业转型升级、促进高…

MathWorks Matlab R2023b ARM Mac报错 License Manager Error -8

MathWorks Matlab R2023b 23.2.0.2365128 ARM 版本安装激活后出现报错&#xff1a; License Manager Error -8 License checkout failed. License Manager Error -8 Make sure the HostID of the license file matches this machine, and that the HostID on the SERVER line m…

python实现FINS协议的TCP服务端(篇一)

python实现FINS协议的TCP服务端是一件稍微麻烦点的事情。它不像modbusTCP那样&#xff0c;可以使用现成的pymodbus模块去实现。但是&#xff0c;我们可以根据协议帧进行组包&#xff0c;自己去实现帧的格式&#xff0c;而这一切可以基于socket模块。本文为第一篇。 一、了解FI…

深度学习之基于Python+OpenCV(DNN)性别和年龄识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Python和OpenCV的深度学习性别和年龄识别系统是一种利用深度学习模型来自动识别人脸照片中的性别和年龄的技术。…

95 课程表

课程表 题解1 BFS&#xff08;拓扑图模板&#xff09;题解2 DFS 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &am…