来源: 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. iOS开发--Swift 如何完成工程中Swift和OC的混编桥接(Cocoapods同样适用)

    由于SDK现在大部分都是OC版本, 所以假如你是一名主要以Swift语言进行开发的开发者, 就要面临如何让OC和Swift兼容在一个工程中, 如果你没有进行过这样的操作, 会感觉异常的茫然, 不用担心 ...

  2. 我曾经的第一个OC程序

    一. OC简介 C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 二. OC语 ...

  3. redis如何执行redis命令

    Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cm ...

  4. 新版微耕软件(N3000)与旧版2000的实体功能区别

    更多细节请参阅其软件操作说明书. 建议:基于安全的应用始终变化不断,软件投入一直无法满足客户的定制化要求.不如提供基本的SDK,接口,允许第三方以插件的形式开发控制界面.报表. 软件只提供核心的界面. ...

  5. js DOM Node类型

    DOM(文档对象模型)是针对HTML和XML文档的一个API. DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的.以特定节点为根节点的树形结构.节点分为12种不同的类型,每种类型分别表示 ...

  6. 深入理解“HelloWorld”小程序

    对于每个Java程序员来说,HelloWorld是一个再熟悉不过的程序.它很简单,但是这段简单的代码能指引我们去深入理解一些复杂的概念.这篇文章,我将探索我们能从这段简单的代码中学到什么.如果你对He ...

  7. Extjs4.1中图片数据源

    var jdPicStore = Ext.create('Ext.data.Store',{             fields: ['icon','evalValue'],             ...

  8. iOS 导航栏实现总结

    目标: 在UI界面中实现 整体效果的导航栏, 比如1 首页无导航条,次页有导航条, 2 导航条中不包含下方不包含黑边 3 导航条包含多个筛选项 等等 问题: 用系统带的NavigateBar 来实现时 ...

  9. BIEE建模参考规范

    BIEE建模参考规范 注:本文基于网上盛传的“BIEE建模黄金法则”,并做了更为细致的讲解,以及修改. 物理层 1.  在可能的情况下,配置你的连接池使用本地驱动来连接物理数据库.例如,使用OCI而不 ...

  10. Javascript之旅——第三站:几个需要注意的运算符

    平时写惯了C#,所以会觉得什么样的运算符就应该做什么样的运算,但是有一天你的习惯被其他语言颠覆了,不知道是不是有一股强大的好奇 心,刚好在js中,我的这种习惯就被颠覆了,下面就看看哪些运算符颠覆了我的 ...