t检验(连续变量)和卡方检验(分类变量)

目录

情形

不同种类的萼片差异

数据类型查看:

差异分析:

不同萼片的种类差异

数据准备

二分类卡方检验

绘图


情形

:当有两列数据进行分析比较时,一列为连续变量,一列数据为分类变量。

rm(list = ls()) 
library(ggplot2)
library(ggpubr)
library(cowplot)
data <- iris##鸢尾花数据集
data1 <- data[,c(1,5)]
data2 <- data1[data1$Species=="setosa"|data1$Species=="versicolor",]
##提取鸢尾花数据集的部分数据进行分析

如下整理鸢尾花部分数据:“Sepal.Length”是连续变量,“Species”只选择了两种数据。

分析两列数据:2种情况

①比较不同种类的萼片长度是否存在差异。

②比较不同萼片长度的种类是否存在差异。

不同种类的萼片差异

数据类型查看:

数据分布检测:第六讲 R-数据正态分布检验 - 知乎 (zhihu.com)

#①比较不同种类的萼片长度是否存在差异。
#分析方法选择
shapiro.test(data2$Sepal.Length)
#W = 0.96964, p-value = 0.02076 不符合正太分布

#密度图
ggdensity(data2$Sepal.Length, 
          main = "Density plot of sepal length",
          xlab = "sepal length")
#正态性测试对样本量敏感。小样本最常通过正态性测试。
#因此,重要的是将外观检查和显着性测试相结合以做出正确的决定
#综合分析也可以采用t检验

数据分布情况

差异分析:
#pdf("plot.pdf",width = 4,height = 4)##保存图片
p <- ggplot(na.omit(data2), 
             aes(x = Species, y = Sepal.Length, fill = Species)) + 
  geom_boxplot(aes(col = Species)) + 
  scale_fill_manual(values = alpha(c("#3C6FAC","grey50"),0.8)) + 
  scale_color_manual(values = c("#3C6FAC","grey50")) + 
  xlab("Species") + ##X轴名称
  ylab("") + 
  theme_bw() +
  #主题设置 
  theme(legend.position = "top",#添加图例
        #legend.title = "Species",
        #legend.key.size = unit(0.5, "cm"),#缩小图例大小
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        panel.border = element_blank(),
        panel.grid = element_blank(),
        panel.background = element_blank(),
        axis.title = element_text(size = 10),
        axis.text = element_text(size = 10)) + 
  stat_compare_means(method = "t.test", #wilcox.test(检验方法选择)
                     label = "p.signif",#展示星标** 
                     label.y = max(na.omit(data2$Sepal.Length)) * 0.95, 
                     label.x = 1.5, size = 8)
p

不同萼片的种类差异

将萼片长度分为二分类变量(如:长短),然后分析不同萼片组的种类是否存在差异

数据准备
##数据准备
rm(list = ls()) 
library(ggplot2)
library(ggpubr)
library(cowplot)
data <- iris##鸢尾花数据集
data1 <- data[,c(1,5)]
data2 <- data1[data1$Species=="setosa"|data1$Species=="versicolor",]

#②不同萼片长度的种类是否存在差异
data3 <- data2[order(data2$Sepal.Length),]
#计算分割点(进行二分类设置)
point <- round(nrow(data3) / 2)##几分之几,自己设置
data3$SepalLength[1:point] <-"Low" 
data3$SepalLength[point:nrow(data3)] <-"High" 

#详情
table(data3$Species,data3$SepalLength)
             High Low
setosa        6  44
versicolor   45   5
virginica     0   0

二分类卡方检验

R语言卡方检验最全总结_医学和生信笔记的博客-CSDN博客

R语言—卡方检验 - 知乎 (zhihu.com)

R=C=2时四格表卡方检验

当 n(样本量)≥40 且所有的T(期望频数)≥5时,用χ2检验的基本公式或四格表资料之χ2检验的专用公式;当P ≈ α时,改用四格表资料的 Fisher 确切概率法;
当 n≥40 但有 1≤T<5 时,用四格表资料χ2检验的校正公式,或改用四格表资料的 Fisher 确切概率法。
当 n<40,或 T<1时,用四格表资料的 Fisher 确切概率法。

#生成二维列联表
mytable <- table(data3$Species,data3$SepalLength)
mytable1 <-mytable[c(1,2),]##需要去除列联表中并没有的第三列(否则不能计算)
chisq.test(mytable1,correct = F) # 和SPSS一样
#结果:X-squared = 64, df = 1, p-value = 1.244e-15
#data3$Species,data3$SepalLength顺序不影响结果
绘图

比例计算

##绘制堆砌图并展示结果
#表格汇总结果(为了展示比例)
result <- data3 %>% 
  group_by(Species, SepalLength) %>%
  summarize(count = n()) %>%
  mutate(proportion = count / sum(count))
print(result)# 输出结果
result <- as.data.frame(result)
result$proportion <- round(result$proportion*100,1)#保留1位小数
dat01 <- result[c(3,4),]#提取需要展示的数值的行(需要匹配X轴)

完整图

#pdf("plot.pdf",width = 4,height = 4)##保存图片
ggplot(data3,aes(x=SepalLength,#X轴
                     fill=Species))+
  geom_bar(position = "fill")+
  scale_y_continuous(expand = expansion(mult=c(0.01,0.1)),##展示百分比
                     labels = scales::percent_format())+
  scale_fill_manual(values = c("setosa"="#98d09d","versicolor"="#dadada"),##根据需求修改配色
                    limits=c("setosa","versicolor"))+
  theme_set(theme_bw())+
  theme(panel.grid = element_blank())+#不展示网格线
  geom_text(data=dat01,##展示比例
            aes(x=SepalLength,y=0.05,#设置Y轴展示的位置
                label=paste0(dat01$proportion)),##展示的是比例
            inherit.aes = FALSE,
            vjust=-0.2)+
  geom_text(aes(x = 1.5, y = 1.1,#调整文本注释位置
                label = "p-value 1.244e-15"))+#添加P(前面计算)
  labs(title = "AAABBB",#标题
       x="SepalLength",
       y="Species")
dev.off()

更多绘图细节

ggplot2作图最全教程(上) - 知乎 (zhihu.com)

ggplot2作图最全教程(下) - 知乎 (zhihu.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux编程 文件操作 creat open

文件描述符 文件描述符在形式上是一个非负整数。实际上&#xff0c;它是一个索引值&#xff0c;指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时&#xff0c;内核向进程返回一个文件描述符。 启动一个进程之后&#xff0c;…

使用Pytorch从零开始构建WGAN

引言 在考虑生成对抗网络的文献时&#xff0c;Wasserstein GAN 因其与传统 GAN 相比的训练稳定性而成为关键概念之一。在本文中&#xff0c;我将介绍基于梯度惩罚的 WGAN 的概念。文章的结构安排如下&#xff1a; WGAN 背后的直觉&#xff1b;GAN 和 WGAN 的比较&#xff1b;…

财报解读:将低价作为“唯一性基础武器”的京东,效果在慢慢显现

近日&#xff0c;京东集团公布了2023年第三季度财报。这是自创始人刘强东去年11月强势回归京东一线、主导一系列战略调整和人事组织改革近一年后的一份“成绩单”。 财报显示&#xff0c;第三季度京东实现收入2477亿元&#xff0c;同比增长1.7%&#xff1b;归属于公司普通股股…

Linux上通过SSL/TLS和start tls连接到LDAP服务器

一&#xff0c;大致流程。 1.首先在Linux上搭建一个LDAP服务器 2.在LDAP服务器上安装CA证书&#xff0c;服务器证书&#xff0c;因为SSL/TLS&#xff0c;start tls都属于机密通信&#xff0c;需要客户端和服务器都存在一个相同的证书认证双方的身份。3.安装phpldapadmin工具&am…

HubSpot驱动业务增长:客户拓展的完美引擎!

随着数字化时代的来临&#xff0c;企业面临着前所未有的挑战&#xff0c;尤其在拓展客户方面&#xff0c;传统的方法已经难以适应新的市场环境。在这个背景下&#xff0c;数字化时代的客户拓展变得更为复杂&#xff0c;企业需要更智能、更综合的解决方案来脱颖而出。 HubSpot作…

Java之API(上)

前言&#xff1a; 这一次内容主要是围绕Java开发中的一些常用类&#xff0c;然后主要是去学习这些类里面的方法。 一、高级API&#xff1a; (1)介绍&#xff1a;API指的是应用程序编程接口&#xff0c;API可以让编程变得更加方便简单。Java也提供了大量API供程序开发者使用&…

结构体与指针_sizeof_static_extern_函数指针数组_函数指针_回调函数

一、结构体与指针 #include <stdint.h> #include <stdlib.h> #include <stdio.h> #define up_to_down(uuu) (downdemo_t *)(uuu->beg) #define __plc__ typedef struct updemo_s{uint8_t *head;uint8_t *beg;uint8_t *end; }updemo_t; typedef struct do…

python爬虫HMAC加密案例:某企业信息查询网站

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、找出需要加密的参数 js运行 atob(‘aHR0cHM6Ly93d3cucWNjLmNvbS93ZWIvc2VhcmNoP2tleT0lRTQlQjglODclRTglQkUlQkUlRTklOUI…

基于PHP的动漫周边购物系统

有需要请加文章底部Q哦 可远程调试 基于PHP的动漫周边购物系统 一 介绍 此动漫周边购物系统系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。用户可注册登录&#xff0c;购物下单&#xff0c;评论等。管理员登录后台可对动漫周边商品&#xff0c;用户…

JVM中判断对象是否需要回收的方法

在堆里面存放着Java 世界中几乎所有的对象实例&#xff0c;垃圾收集器在对堆进行回收前&#xff0c;第一件事情就是要确定这些对象之中哪些还“ 存活 ” 着&#xff0c;哪些已经 “ 死去 ”。 引用计数算法 引用计数法是一种内存管理技术&#xff0c;它是通过对每个对象进行引用…

实现el-input-number数字框带单位

实现的效果展示&#xff0c;可以是前缀单位&#xff0c;也可以是后缀单位。实现的思路就是动态修改伪元素 ::before 和 ::after 的 content值 实现二次封装数字框的代码如下&#xff1a; <template><el-input-numberref"inputNumber"v-model"inputVal…

某60区块链安全之Call函数簇滥用实战二学习记录

区块链安全 文章目录 区块链安全Call函数簇滥用实战二实验目的实验环境实验原理实验内容实验步骤EXP利用 Call函数簇滥用实战二 实验目的 学会使用python3的web3模块 学会并区分以太坊call、staticcall、delegatecall三种函数调用的特点 找到合约漏洞进行分析并形成利用 实验…

linux CentOS7.6安装jenkins(小白版本)

前言 本人是一个前端开发者&#xff0c;由于有时候需要发版自己的东西&#xff0c;所以想搞一个Jenkins玩玩&#xff0c;看了网上好多教程&#xff0c;但是都不是针对小白的&#xff0c;比如linux怎么输入&#xff0c;怎么结束&#xff0c;自己也是搞了好久踩了好多坑 所以记录…

大数据预处理技术

文章目录 前言 大数据技术成为前沿专业 也是现在甚至未来的朝阳产业&#xff0c;大数据有分别是 数据预处理 数据存储 大数据处理和分析 数据可视化 部分组成 &#xff0c;大数据行业有数据则称王&#xff0c;大数据的核心是数据本身 怎么获取有价值的数据呢&#xff1f;本章讲…

七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门

前言 今天我们花费一个小时快速了解SQLite数据类型、SQLite常用命令和语法。 七天.NET 8操作SQLite入门到实战详细教程 第一天 SQLite 简介第二天 在 Windows 上配置 SQLite环境 EasySQLite项目源码地址 GitHub地址&#xff1a;https://github.com/YSGStudyHards/EasySQLite&…

Cookie、Session、CBV加装饰器的三种方法

【0】cookie、session和Token的发展史 【1】Cookie的形式 存储形式&#xff1a;k&#xff1a;v键值对存储位置&#xff1a;客户端缺点&#xff1a;不安全&#xff0c;信息可能会泄露 【2】session的形式 标识符&#xff0c;表示我是当前用户加密出来的数据对敏感信息进行加密…

github访问失败

1. 问题场景 今天了解到notepad可以安装许多插件&#xff0c;但是自动下载插件时总是失败&#xff0c;这些插件的下载源都是github&#xff0c;将地址复制到浏览器也打不开&#xff0c;所以查了下github的访问问题&#xff0c;目前插件已正常下载。 2. 解决方法 gitee上搜索…

[项目管理-33/创业之路-87/管理者与领导者-127]:如何提升自己项目管理的能力和水平

目录 前言&#xff1a; 一、项目经理的角色定位 1.1 项目经理的职责 1.2 不同矩阵类型的项目&#xff0c;项目经理的职责 1.3 项目经理的角色定位 1.4 项目经理的发展路径 二、项目经理项目理论和知识结构 三、软件项目经理在计算机水平的提升 四、项目经理业务知识的…

基于JavaWeb+SSM+Vue家庭记账本微信小程序系统的设计和实现

基于JavaWebSSMVue家庭记账本微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 1.1选题背景 互联网是人类的基本需求&#xff0c;特别是在现代社会&#xff0c;个人…

elasticsearch 7安装

问题提前报 max virtual memory areas error max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 如果您的环境是Linux&#xff0c;注意要做以下操作&#xff0c;否则es可能会启动失败 1 用编辑工具打开文件/etc/sysctl.conf 2 …