t检验的p值对照表_一定会用到的统计检验

本文详细介绍了统计检验中的t检验和非参数检验,包括单样本、独立样本、配对样本的t检验,以及针对非正态分布数据的非参数检验如符号秩检验和威尔科克森检验。同时,还讨论了总体分布的检验和相关性检验的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小编之前从事医疗相关行业,发现统计检验无处不在,因为你总是要比较两组或多组群体有没有差别。

最典型的就是,比较用药组和无用药组有没有差异问题,再比如比较胆固醇高和低是不是会影响慢性肾脏病的恶化等等问题。

再后来,从事生物信息相关领域,发现大家虽然是生物背景出身,但是领导都默认员工都会统计检验了哈。

其实发现,这个和行业没有关系,只有你用到数据,那么一定会用到统计检验的知识。

一、统计检验

1.1 For one-sample hypothesis testing

578ff12dddfa3442fe7e4ef3c107ae26.png

独立样本假设检验

1.2 For two-sample hypothesis testing

2a72b87294aa362fcc4fff35d7b5ef24.png

两样本假设检验

二、参数t检验(关注结果变量为连续型的组间比较,并假设其呈正态分布)

2.1 单样本的t检验

    • 检验一个总体等于某个值
    • 如男性的年龄都在50岁

2.2 独立样本的t检验

    • 检验两个不相关的样本来自具有相同均值的总体
    • 如男性与女性的工作效率的比较

2.3 非独立样本的t检验(配对样本t检验)

    • 检验两个相关样本是否来自具有相同均值的总体
    • 如技术培训后是否提高了工作效率

2.4 多于两组的情况

    • 假设数据是从正态总体中独立抽样而得到,可以使用方差分析

三、非参数检验的条件

  • 数据无法满足t检验参数假设(两组,正态)
  • 无法满足方差分析参数假设(同正态,方差齐性)
  • 结果变量出现严重偏倚或呈现有序关系

3.1 非参数检验

1 独立样本的t检验

    • 检验两个不相关的样本来自具有相同均值的总体
    • 如男性与女性的工作效率的比较

2 非独立样本的t检验(配对样本t检验)

    • 检验两个相关样本是否来自具有相同均值的总体
    • 利用各对值的差值d与零均数进行比较来实现
    • 如技术培训后是否提高了工作效率

3 多于两组的情况

    • 假设数据是从正态总体中独立抽样而得到,可以使用方差分析

4 组间差异的非参数检验

    • 数据无法满足t检验参数假设(两组,正态)
    • 无法满足方差分析参数假设(同正态,方差齐性)
    • 结果变量出现严重偏倚或呈现有序关系

四、t 检验的原理

4.1 两个总体均是正态分布

  • 原假设:两个总体的均值是相等的(两个总体来自一个同样的分布),备择假设两个总体的均值不等
  • 方差齐性检验
    • 原假设:两个总体的方差相等,备择假设方差不等
    • 方差相等的情况看,t检验看Pooled统计量的P值
    • 方差不等的情况下,t检验看Satterhwaite统计量的P值
  • P值小于置信水平就拒绝原假设(置信水平一般取0.05或0.1)

4.2 单个总体服从正态分布

  • 原假设:该总体的均值等于某个值,备择假设均值不等于某个值
  • 如果该总体是正态分布,直接看t统计量(student's)的P值

五、非参数检验的原理(关注的总体不服从正态分布)

5.1 单个总体的非参数检验

    • 如果数据很明显是有偏度的(skewed),则是不对称的
    • 如果数据的均值、中位数和众数是同样的值,则是对称的
    • 总体不服从正态分布,看它是不是关于中值对称(symmetrical)
    • 关于中值对称,则用符号秩检验(signed rank test)统计量
    • 关于中值不对称,则用符号检验(sign test)统计量

5.2 两组非参数检验的比较

    • Wilcoxon符号秩检验,两组成对数据无法保证正态性假设的情境
    • 两组数据独立,用Wilcoxon秩和检验来评估观测是否从相同的概率分布中抽得的
    • 独立样本非正态
    • 非独立样本非正态(配对样本)

5.3 多于两组非参数检验的情况

    • 各组独立,用Kruskal-Wallis检验
    • 各组不独立,用Friedman检验

七、总体是否服从某个分布

  • 原假设:服从某个分布,备择假设:不服从某个分布
  • 适合检验任何分布的三个统计量
  • Kolmogorov-Smirnov、Anderson-Darling、Cramer-von Mises
  • 他们三个统计量对应的P值小于置信水平,则拒绝原假设

7.1 正态分布的t检验原理(一个总体)

  • 原假设:服从正态分布,备择假设:不服从正态分布
  • 看统计量Shapiro-Wilk对应的P值(只适合正态分布的统计量)
  • 也可以看统计量Kolmogorov-Smirnov,Anderson-Darling,Cramer-von Mises对应的P值

八、总体的相关性检验原理

  • 原假设:一对变量不相关,备择假设:两个变量相关
<think>我们根据用户提供的引用信息和之前的回答,用户希望使用特定的markergenes来区分正常细胞和癌细胞,并基于这些基因进行细胞类型注释和肿瘤细胞识别。用户提供的引用[3]中提到,他们通过整合拷贝数变异(intercnv)、聚类分布、谱系特异性基因达和特定突变(如KRASG12D)等信息来区分恶性与非恶性上皮细胞。同时,引用[1]指出基于marker的自动注释需要一组相关且足够大的标记基因。结合用户上一次的问题(先用SingleR初步注释,然后根据markergenesrefine,如果markergenes在DEGs里面,且与refdataset达有显著差,则标记为肿瘤),我们可以设计以下流程:1.使用SingleR进行初步注释(如用户引用[2]中的参考数据集,但注意用户引用[2]提供了广泛的细胞类型注释,包括上皮细胞、免疫细胞等)。2.利用用户提供的区分正常与癌细胞的markergenes(假设用户已经提供了一组基因,比如引用[3]中可能用到的基因)来优化注释,特别是识别肿瘤细胞。具体步骤:步骤1:使用SingleR进行初步注释(参考用户引用[2]的注释方法,但注意用户引用[2]的参考数据集是HumanPrimaryCellAtlasData吗?实际上用户引用[2]描述的是一个包含193,108个转录组的参考数据集,但未给出具体名称。在代码中,我们可以使用一个合适的参考数据集,比如HumanPrimaryCellAtlasData,或者用户自定义的参考数据。)步骤2:提取每个聚类的差异达基因(DEGs),然后检查用户提供的肿瘤markergenes是否在这些DEGs中,并且在该聚类中高达。步骤3:对于初步注释为上皮细胞的聚类(因为肿瘤通常起源于上皮细胞),我们进一步检查这些聚类是否达肿瘤markergenes,并且与参考数据集中的正常上皮细胞相比,这些基因是否显著高达。步骤4:将满足条件的聚类标记为肿瘤。注意:用户引用[3]中还提到了利用拷贝数变异(CNV)和体细胞突变(如KRASG12D)来辅助判断。如果用户的数据有这些信息,也可以整合进来。由于用户特别强调使用他们提供的区分正常细胞与癌细胞的markergenes,因此我们将这些基因作为关键标记。我们假设用户已经提供了一个肿瘤标记基因列(例如:cancer_markers),并希望用这些基因来识别肿瘤细胞。根据用户上一次的回答,我们修改肿瘤识别部分,直接使用用户提供的markergenes(而不是之前代码中预定义的cancer_markers)。修改后的肿瘤识别步骤:1.从用户输入中获取肿瘤标记基因列(假设为`user_cancer_markers`)。2.对于每个聚类(特别是上皮细胞聚类),计算该聚类与参考数据集中对应细胞类型(例如正常上皮细胞)在`user_cancer_markers`基因上的差异达。3.如果满足一定条件(比如至少n个基因显著上调),则将该聚类重新标记为肿瘤。代码调整:在第三部分“肿瘤细胞识别系统”中,我们将使用用户提供的肿瘤标记基因列。另外,考虑到用户引用[3]中使用了拷贝数变异分析,如果用户的数据是单细胞RNA-seq且没有CNV信息,我们可以跳过CNV分析。但如果用户有CNV数据,我们可以整合。不过,用户的问题中只提到了使用markergenes,因此我们主要基于基因达。因此,我们调整流程如下:```r#假设用户提供的肿瘤标记基因列为:user_cancer_markers<-c("基因1","基因2",...)#由用户提供#在肿瘤识别步骤中,我们使用这个列for(clusterinlevels(seurat_obj$seurat_clusters)){#获取该聚类的初步注释的细胞类型celltype<-unique(seurat_obj$celltype[seurat_obj$seurat_clusters==cluster])#注意:我们可能只关注上皮细胞,因为大多数实体肿瘤起源于上皮细胞#但有些肿瘤可能来自其他细胞类型(如肉瘤),所以用户可以根据实际情况决定是否限定细胞类型#这里我们假设用户希望检查所有聚类,或者可以设置条件:如果初步注释是上皮细胞,则进一步检查#例如:if(celltype%in%c("Epithelial","Secretory",...)){...}#从参考数据集中获取相同细胞类型的细胞作为对照ref_cells<-which(ref$label.main==celltype)#如果参考数据集中没有足够的该类型细胞,跳过if(length(ref_cells)<3)next#计算该聚类与参考数据集中相同细胞类型在肿瘤标记基因上的差异达degs_vs_ref<-FindMarkers(object=seurat_obj,ident.1=WhichCells(seurat_obj,idents=cluster),ident.2=colnames(ref)[ref_cells],#注意:参考数据集需要是Seurat对象或者矩阵格式,这里假设ref是一个SingleCellExperiment对象,使用colnames获取细胞名features=user_cancer_markers,logfc.threshold=0.1,#降低logFC阈以确保检测,因为后续会进行严格筛选min.pct=0.1,only.pos=FALSE#考虑下调基因,但主要关注上调)#筛选显著上调的肿瘤标记基因(根据用户设定的阈)#条件:调整p<0.01且log2FC>1(阈可调)sig_up<-degs_vs_ref[degs_vs_ref$p_val_adj<0.01&degs_vs_ref$avg_log2FC>1,]#如果显著上调的肿瘤标记基因数量达到阈(比如至少2个),则标记为肿瘤if(nrow(sig_up)>=2){seurat_obj$celltype[seurat_obj$seurat_clusters==cluster]<-"Tumor"}}```注意:上述代码中,我们使用参考数据集中的相同细胞类型作为对照。但是,参考数据集可能不包含肿瘤细胞,因此这种比较是合理的。另外,用户引用[3]中使用了空间信息(如果数据是空间转录组),我们可以进一步通过空间位置验证肿瘤细胞的分布(如肿瘤区域)。如果有空间数据,可以在第四部分进行可视化。考虑到用户可能没有空间数据,我们也可以只使用单细胞数据。最后,我们生成相关问题:1.如何确定用于区分正常细胞与癌细胞的标记基因的可靠性?2.如果参考数据集中没有与目标样本完全匹配的细胞类型,应该如何调整肿瘤识别策略?3.如何整合拷贝数变异(CNV)分析结果来辅助肿瘤细胞识别?4.在空间转录组数据中,如何利用空间位置信息验证肿瘤注释结果?5.对于非上皮来源的肿瘤(如肉瘤),如何调整标记基因列?下面按照要求整理回答。</think>### 基于用户提供标记基因的肿瘤细胞注释与分析方案 #### 一、肿瘤标记基因整合策略 根据引用[3],肿瘤标记基因需满足双重验证标准: 1. **特异性达**:在肿瘤细胞中显著高达(logFC > 1) 2. **跨平台验证**:在空间转录组数据中保持达模式一致性[^3] ```r # 用户提供的肿瘤标记基因 (示例) tumor_markers <- c("EGFR", "MET", "ERBB2", "MKI67", "TOP2A") # 验证标记基因可靠性 validate_markers <- function(seurat_obj, markers) { # 1. 达特异性检验 expr_matrix <- AverageExpression(seurat_obj, assays = "RNA")$RNA marker_specificity <- apply(expr_matrix[markers, ], 1, function(x) { max(x) / (mean(x) + 1e-6) # 避免除零错误 }) # 2. 空间共定位验证(若有空间数据) spatial_correlation <- if ("spatial" %in% names(seurat_obj@images)) { cor(t(GetAssayData(seurat_obj, assay = "Spatial"))[, markers]) } else rep(1, length(markers)) # 筛选可靠标记: 特异性>5且空间相关>0.7 valid_markers <- markers[marker_specificity > 5 & spatial_correlation > 0.7] return(valid_markers) } valid_tumor_markers <- validate_markers(seurat_obj, tumor_markers) ``` #### 二、肿瘤细胞注释工作流 ```mermaid graph TD A[SingleR初步注释] --> B[提取上皮细胞] B --> C{标记基因验证} C -->|通过| D[肿瘤细胞判定] C -->|未通过| E[正常细胞注释] D --> F[拷贝数变异CNV验证] F -->|CNV异常| G[确认恶性] F -->|CNV正常| H[重新评估] ``` ##### 代码实现: ```r # 1. 提取上皮细胞聚类 (根据引用[2]) epi_clusters <- seurat_obj$seurat_clusters[seurat_obj$celltype %in% c("Epithelial", "Basal", "AT1", "AT2")] # 2. 肿瘤标记基因评分系统 $$ \text{TumorScore}_c = \sum_{g \in G_t} \left( \frac{\text{Expression}_g^c}{\max(\text{Expression}_g)} \right) \times I(\text{logFC}_g > 1) $$ # $c$=聚类, $G_t$=有效肿瘤标记基因集 for (cluster in unique(epi_clusters)) { cluster_cells <- WhichCells(seurat_obj, idents = cluster) # 计算肿瘤得分 tumor_score <- sapply(valid_tumor_markers, function(gene) { expr_data <- GetAssayData(seurat_obj, slot = "data")[gene, cluster_cells] ref_expr <- ref_data[gene, ref_data$label == "Epithelial"] # 参考数据集[^2] logFC <- log2(mean(expr_data) / mean(ref_expr) + 1e-6) (mean(expr_data) / max(expr_data)) * as.numeric(logFC > 1) }) %>% sum() # 肿瘤判定: 得分>2.5 且 CNV异常 if (tumor_score > 2.5 & cnv_status[cluster] == "Abnormal") { seurat_obj$celltype[cluster_cells] <- "Tumor" } } ``` #### 三、多组学验证策略 (根据引用[3]) 1. **基因组验证**: ```r # KRAS突变检测 (示例) kras_mut <- VDJ_GEX_MULTI(seurat_obj, genes = "KRAS", mutation = "G12D")$mutation_frequency ``` 2. **空间转录组映射**: ```r SpatialFeaturePlot(seurat_obj, features = valid_tumor_markers, alpha = c(0.2, 0.8)) ``` 3. **蛋白组验证**: ```r ProteinAssay(seurat_obj, antibodies = c("EGFR", "HER2"), cluster = tumor_clusters) ``` #### 四、结果解读与可视化 ```r # 1. 注释结果对比 DimPlot(seurat_obj, group.by = c("celltype", "cnv_status"), combine = FALSE) # 2. 肿瘤标记基因热图 DoHeatmap(subset(seurat_obj, celltype == "Epithelial"), features = valid_tumor_markers, group.by = "tumor_status") # 3. 空间共定位分析 SpatialCoExpression(seurat_obj, gene_pairs = combn(valid_tumor_markers, 2, simplify = FALSE)) ``` ### 关键参数优化指南 | 参数 | 推荐 | 生物学依据 | |------|--------|------------| | logFC阈 | >1 | 确保2倍达差异[^3] | | 肿瘤得分阈 | >2.5 | 平衡灵敏度/特异性 | | CNV异常阈 | >5个染色体臂异常 | 癌症基因组标准[^3] | | 空间相关性 | >0.7 | 强共达证据 | ### 注意事项 1. **组织特异性调整**: - 肺腺癌(LUAD)需增加`"NKX2-1", "SFTPB"`等组织特异标记[^3] - 使用`AddModuleScore()`计算组织特异性得分: ```r lung_score <- AddModuleScore(seurat_obj, features = list(lung_markers)) ``` 2. **吸烟因素校正**: ```r # 吸烟相关基因过滤 (根据引用[3]) smoking_genes <- c("CYP1A1", "CYP1B1", "AKR1C2") valid_tumor_markers <- setdiff(valid_tumor_markers, smoking_genes) ``` 3. **批次效应处理**: ```r seurat_obj <- IntegrateData(anchors = FindIntegrationAnchors( object.list = SplitObject(seurat_obj, "batch") )) ``` ### 相关问题 1. 如何验证肿瘤标记基因在不同癌种间的特异性? 2. 当样本包含吸烟史时,如何排除环境因素对标记基因的影响?[^3] 3. 如何整合CNV分析结果提升肿瘤识别准确性? 4. 对于低肿瘤纯度样本,如何调整分析参数? 5. 空间转录组数据如何定量验证肿瘤标记基因的共定位?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值