来源: http://blog.sciencenet.cn/blog-479412-572049.html,http://52brain.com/thread-15512-1-1.html

SPM8允许两种FDR校验。一个是voxel-wise FDR,另一个是topological FDR。
如果要做voxel-wise FDR 校验,就把spm_defaults里的68行的defaults.stats.topoFDR 改为0。
(有很多朋友下载下来的spm在处理结果是只显示FWE矫正和NOR,但是FWE矫正又太严格,我们往往需要FDR矫正来进行数据处理。spm的设置是在spm根目录下的spm_defaults这个文件。需要再matlab中调用才能编辑。在matlab中输入edit spm_defaults,在68行有defaults.stats.topoFDR = 1;  你把1改成0即可。当然你也可以对默认阈值、默认设置的激活体素大小进行设置。)
此时SPM8里的FDR按钮会出现。在SPM里点results,选FDR校验即可。
如果要做topological FDR 校验,就把defaults.stats.topoFDR设为1(默认是1)。
首先在SPM8里点results——None(无校验)——T threshold或p value(自己随意设,默认的0.001也可以)——extent threshold(默认0即可)。
然后在左下侧窗口点whole brain会得到results table。找到FDRc对应的值。然后再次点Results——None——T threshold或p value(输入上一次的值,例如上一次是0.001,这一次还是0.001)——extent threshold(输入FDRc对应的值)。这样得到的激活图就是cluster-wise FDR校验的结果,也就是topological FDR校验的结果。
SPM里面有peak-level FDR,见result table里面的FDRp,用FDRp对应的值作为height threshold得到的结果就是peak-level FDR的结果。用FDRc对应的值作为extent threshold得到的结果就是topological FDR(或cluster-wise FDR)的结果。
自己对topological FDR原理的理解(因为内部原理很复杂,不是特别懂,只写出简单理解,留着以后补充):topological FDR是基于高斯随机场理论,认为voxel之间不是独立的,超过T threshold的voxel 构成了一个个cluster,然后对这些cluster进行FDR校验,这样独立单元(原来是voxel总个数,而现在就是cluster的个数)就大大减小了。这种校验的错误发现率是小于0.05的,不论T threshold 设为多大。而原来的voxel-wise FDR认为voxel之间是独立。而实际的fMRI数据经过平滑之后,voxel之间是不独立的,因此对于一个激活的脑区来说,用这种voxel-wise FDR校验得到的错误发现率就很高。
 
参考文献
 Justin R. Chumbley, Karl J. Friston.False discovery rate revisited: FDR and topological inference using Gaussian random fields.NeuroImage 44 (2009) 62–70.

SPM FDR校正的更多相关文章

  1. 学习笔记50—多重假设检验与Bonferroni校正、FDR校正

    总结起来就三句话: (1)当同一个数据集有n次(n>=2)假设检验时,要做多重假设检验校正 (2)对于Bonferroni校正,是将p-value的cutoff除以n做校正,这样差异基因筛选的p ...

  2. FDR校正

    一.假设检验 假设检验的基本思路是: 设立零假设(null hypothesis)H0,以及与零假设H0相对应的非零假设(alternative hypothesis)H1,在假设H0成立的前提下,计 ...

  3. notes:spm多重比较校正

    SPM做完统计后,statistical table中的FDRc实际上是在该p-uncorrected下,可以令FDR-correcred p<=0.05的最小cluster中的voxel数目: ...

  4. matlab FDR校正

    http://home.52brain.com/forum.php?mod=viewthread&tid=27066&page=1#pid170857 http://www.mathw ...

  5. 学习笔记49—matlab FDR校正

    matlab自带函数mafdr,当ttest数较多时,可直接用[FDR, Q]=mafdr(P):但是Storey procedure在p值少于1000个时会崩溃,此时应改用BH FDR方法:mafd ...

  6. 假设检验:p-value,FDR,q-value

    来源:http://blog.sina.com.cn/s/blog_6b1c9ed50101l02a.html,http://wenku.baidu.com/link?url=3mRTbARl0uPH ...

  7. MCP|MZL|Accurate Estimation of Context- Dependent False Discovery Rates in Top- Down Proteomics 在自顶向下蛋白组学中精确设定评估条件估计假阳性

    一. 概述: 自顶向下的蛋白质组学技术近年来也发展成为高通量蛋白定性定量手段.该技术可以在一次的实验中定性上千种蛋白,然而缺乏一个可靠的假阳性控制方法阻碍了该技术的发展.在大规模流程化的假阳性控制手段 ...

  8. 浅谈多重检验校正FDR

    浅谈多重检验校正FDR Posted: 四月 12, 2017  Under: Basic  By Kai  no Comments 例如,在我们对鉴定到的差异蛋白做GO功能注释后,通常会计算一个p值 ...

  9. FDR错误发现率-P值校正学习[转载]

    转自:https://baike.baidu.com/item/FDR/16312044?fr=aladdin  https://blog.csdn.net/taojiea1014/article/d ...

随机推荐

  1. java field, property,variable及getField和getDeclaredField的区别

    java 里面的field ,property, attribute,variable的区别 field: 就是定义的用于保存数据的字段 property: property是用于描述类中的特征,所以 ...

  2. iOS-点击推送消息跳转处理

    当用户通过点击通知消息进入应用时 - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDi ...

  3. C#复习①

    C#复习① 2016年6月15日 08:19 Main Introduction of C# 简单介绍C# 1. C# is very similar to Java (70% Java, 10% C ...

  4. nginx 的信号控制概述

    <nginx 在ubuntu 上的启动,停止,重启>中的停止和重启命令基本都是用信号来控制的.这是一些简单的信号控制. 在Nginx服务器中,通常情况都是通过对其发送控制信号进行控制的,除 ...

  5. android 进程/线程管理(一)----消息机制的框架

    一:android 进程和线程 进程是程序运行的一个实例.android通过4大主件,弱化了进程的概念,尤其是在app层面,基本不需要关系进程间的通信等问题. 但是程序的本质没有变,尤其是多任务系统, ...

  6. 软件开发与UML的关系

    今天,我们上<统一建模语言UML>.课上老师给我们讲解了软件开发与UML之间的关系:UML常用于建立软件系统的模型,适用于系统开发的不同阶段.UML的应用贯穿于系统开发的不同阶段.1.需求 ...

  7. asp.net开发中常见公共捕获异常方式总结(附源码)

    本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统 ...

  8. JDK动态代理和CGLIB的区别

    Aspect默认情况下不用实现接口,但对于目标对象,在默认情况下必须实现接口 如果没有实现接口必须引入CGLIB库 我们可以通过Advice中添加一个JoinPoint参数,这个值会由spring自动 ...

  9. MySQL锁问题

    MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎 采用的是表级锁:BDB存储引擎采用的是页面锁,但也支持表级锁:InnoDB存储引擎 ...

  10. PostgreSQL模仿Oracle的instr函数

    -- -- instr functions that mimic Oracle's counterpart -- Syntax: instr(string1, string2, [n], [m]) w ...