DPABI重复测量方差分析时,在permutation test或后续的多重比较校正时报错

各位老师们:

          你们好!最近在使用DPABI进行单因素重复测量方差分析(ANCOVA,Repeated Measures)时,可以生成F图,但在点击DPABI重复测量方差分析的permutation test,或用生成的F图放到viewer后,做后续的多重比较校正(GRF)时均报错,报错信息如下:

Convert F to Z...

Undefined function or variable 'lgamma'.
 
Error in betapdf (line 60)
                  + lgamma (a + b) - lgamma (a) - lgamma (b));
 
Error in betainv (line 87)
    h     = (betacdf (y_old, a, b) - x) ./ betapdf (y_old, a, b);
 
Error in finv (line 58)
  inv(k) = ((1 ./ betainv (1 - x(k), n/2, m/2) - 1) * n / m);
 
Error in y_TFRtoZ (line 46)
    F1    = finv(1 - Tol, Df1, Df2);
 
 
Error in w_GRFCorrection>EasyThreshButton_Callback (line 245)
    [ZMap, P]=y_TFRtoZ(OverlayHeader, '', TestFlag, Df, Df2);
 
Error in gui_mainfcn (line 95)
        feval(varargin{:});
 
Error in w_GRFCorrection (line 42)
    gui_mainfcn(gui_State, varargin{:});
 
Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)w_GRFCorrection('EasyThreshButton_Callback',hObject,eventdata,guidata(hObject)) 
Error using uiwait (line 81)
Error while evaluating UIControl Callback
 
还请各位老师给予帮助!非常感谢!!
 

I guess you didn't install statistical toolbox for matlab correctly.

严老师,

        您好,我试用了matlab2013a,2014b和2015b,用了3台电脑,也试用了mac和windows系统,在对重复测量分析后的F图进行多重比较校正时,均显示上述错误。但在进行双样本T检验的GRF多重比较校正,双样本T检验的permutation TFCE多重比较校正时,均可以正常进行。请问这还是matlb的统计toolbox安装问题吗?如果是的话,我该安装哪一个statistical toolbox呢?

非常感谢您的帮助!

 

祝好!

你尝试一下用DPABI做统计(不加permutation),然后直接自带估计的平滑核,不要点estimate smoothness试试。

严老师,

         我尝试了你说的方法,根据自带估计的平滑核进行GRF校正,仍然显示上述报错信息。

 

还请您给予指导,谢谢!

 

祝好。

换个电脑试试

解决自己使用其他函数遇到的bug时刚好检索到这个问题,我来尝试回答一下,希望能帮助到之后遇到这一问题的人。

出现这一报错可能是因为你把spm12中的stat文件夹(spm12/external/fieldtrip/external/stats/,Windows系统下请把 / 改为 \ )添加进了路径,导致该文件夹下的betapdf函数覆盖了matlab的自带函数。

解决方案:把该文件夹移除出路径即可。

Hi, 我正好也碰到这个这个问题,在spm做的预处理和统计,在dpabi做GRF校正,但是在estimate smoothness这一步出现了类似的报错,报错如下:

ex in position 3 exceeds array bounds (must not exceed 61).
 
Error in y_Smoothest (line 55)
            if MaskData(x, y, z) && MaskData(x-1, y, z) && MaskData(x, y-1, z) && MaskData(x, y, z-1)
 
Error in w_GRFCorrection>EasyThreshButton_Callback (line 250)
[dLh, resels, FWHM, nVoxels]=y_Smoothest(ZMap, Mask, '', OverlayHeader.Vox);
尝试了一下你提到的办法,报错依然存在。后来换了一个mask,这一步就可以进行估算了,但是后续填入p value 时,又出现了报错,如下:
Attempt to grow array along ambiguous dimension.
 
Error in DPABI_VIEW>RedrawOverlay (line 886)
OverlayVolume(~SendHeader.Mask)=0;
 
Error in DPABI_VIEW>ClusterPopup_Callback (line 1295)
        [OverlayHeader, SendHeader]=RedrawOverlay(OverlayHeader);
 
Error in gui_mainfcn (line 95)
        feval(varargin{:});
 
Error in DPABI_VIEW (line 43)
    gui_mainfcn(gui_State, varargin{:});
 
Error in  matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)DPABI_VIEW('ClusterPopup_Callback',hObject,eventdata,guidata(hObject))
 
Error while evaluating UIControl Callback.
希望有老师朋辈们能指导一下,非常感谢!
 

应该是Mask没有选择对应voxel size的。