CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法

CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法

  • 问题复现
  • 问题定位
  • 解决问题

问题复现

MATLAB版本2018a,SPM12版本7771,CAT12版本r2000。
按照Manual进行LONGITUDINAL DATA IN TWO GROUPS(Page 43-44)分析。
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第1张图片
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第2张图片

Factor两个,subject被SPM识别,time被SPM当作Factor(SPM12使用condition描述时间点),两个Main effects为2和1。
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第3张图片
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第4张图片
Run Batch之后得到如下的设计,是正确的:
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第5张图片
问题从Estimate开始,可以看到执行过程出现了ReML Iteration
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第6张图片
在SPM对照管理中可以看到右侧的设计矩阵有问题:
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第7张图片

问题定位

过程简略描述一下就是通过对比SPM Specify 2nd-level和CAT12生成的SPM.mat文件差别发现存在SPM.xVi.VSPM.xVi.Vi的差异

解决问题

首先读取CAT12生成的SPM.mat

load('SPM.mat')

其次将CAT12的SPM.mat修改
复制粘贴执行下述代码:

SPM.xVi.V = sparse(eye(length(SPM.xVi.I)));
SPM.xVi = rmfield(SPM.xVi,'Vi');
save('SPM_modified.mat','SPM')

执行后在当前目录生成一个SPM_modified.mat
把这个SPM_modified.mat改名为SPM.mat替换CAT12生成的SPM.mat即可(因为Estimate的Batch Editor只读取SPM.mat,或者把Filter修改)
经过测试,Estimation没有问题
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第8张图片
SPM contrast manager设置没有问题
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第9张图片
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第10张图片
CAT12中纵向数据Basic Models在SPM12中Estimate后出现Design Matrix错误不能Define contrast的解决办法_第11张图片

你可能感兴趣的:(matlab)