楼主: 蒋科学
123307 377

[MATLAB] Matlab实现非线性格兰杰因果关系检验   [推广有奖]

LiuRuijin 发表于 2016-3-4 16:48
请参考m文件中所列示的文献 Hiemstra and Jones(1994)。
我做的时候,“本文设m=1”
大神,不好意思,我在弱弱问一下,我运行的时候,MATLAB提示 function [cs,tval,p,c1,c2,c3,c4] = nonlinear_granger(x,y,m,Lx,Ly,e)
|
Error: Function definitions are not permitted in this context.要怎么解决呢

使用道具

152
LiuRuijin 发表于 2016-3-4 21:53:42 |只看作者 |坛友微信交流群
万实行就稔 发表于 2016-3-4 20:26
大神,不好意思,我在弱弱问一下,我运行的时候,MATLAB提示 function [cs,tval,p,c1,c2,c3,c4] = nonlin ...
不能直接运行function的那个文件。
你在命令窗口,设置各参数的值,然后调用[cs,tval,p,c1,c2,c3,c4] = nonlinear_granger(x,y,m,Lx,Ly,e),应该就可以出结果。或者将建立新的M文件,来编辑运行。
注意MATLAB当前的目录下,包括这些函数文件。

使用道具

LiuRuijin 发表于 2016-3-4 21:53
不能直接运行function的那个文件。
你在命令窗口,设置各参数的值,然后调用[cs,tval,p,c1,c2,c3,c4] =  ...
大神,真是万分感谢

使用道具

万实行就稔 发表于 2016-3-4 21:57
大神,真是万分感谢
大神,请问您一下function [cs,tval,p,c1,c2,c3,c4] = nonlinear_granger(x,y,m,lx,ly,e),里面的lx,ly是指x,y的滞后一期吗,还有就是里面的e指的是什么呢?

使用道具

155
LiuRuijin 发表于 2016-3-5 16:41:08 |只看作者 |坛友微信交流群
万实行就稔 发表于 2016-3-5 11:17
大神,请问您一下function [cs,tval,p,c1,c2,c3,c4] = nonlinear_granger(x,y,m,lx,ly,e),里面的lx,ly是 ...
注:Lx、Ly分别表示两个变量的滞后项;TVAL是关于CS检验的统计量;CS是C1(m+Lx, Ly, e) / C2(Lx, Ly, e)与C3(m+Lx, e)/C4(Lx, e),本文设m=1,e=1;**表示1%显著性水平。variable e is related to the error and more specific information is available in the paper of Hiemstra and Jones(1994).

使用道具

LiuRuijin 发表于 2016-3-5 16:41
注:Lx、Ly分别表示两个变量的滞后项;TVAL是关于CS检验的统计量;CS是C1(m+Lx, Ly, e) / C2(Lx, Ly, e)与 ...
太谢谢您了,我在试一试。

使用道具

LiuRuijin 发表于 2016-3-5 16:41
注:Lx、Ly分别表示两个变量的滞后项;TVAL是关于CS检验的统计量;CS是C1(m+Lx, Ly, e) / C2(Lx, Ly, e)与 ...
大神,不好意思,又打扰一下,我运行MATLAB In nonlinear_granger (line 48)
Warning: Integer operands are required for colon operator when used as index
> In a (line 11)
  In nonlinear_granger (line 48)
Error using  *
Inner matrix dimensions must agree.

Error in nonlinear_granger (line 48)
               eij(i,j) = eij(i,j) + 4 * w * 1/(2*(n-k+1)) * (...
请问一下要怎么改呢

使用道具

158
陈彦 发表于 2016-3-6 12:02:33 |只看作者 |坛友微信交流群
谢谢正是需要的

使用道具

159
LiuRuijin 发表于 2016-3-6 17:21:42 |只看作者 |坛友微信交流群
万实行就稔 发表于 2016-3-6 10:57
大神,不好意思,又打扰一下,我运行MATLAB In nonlinear_granger (line 48)
Warning: Integer operand ...
你检查一下 a.m 和 kf.m 是不是在同一根目录下
第48行开始 要调用a.m 这个函数function  [h]=a(i,t,x,y,lx,ly,m,n,c1,c2,c3,c4,e)

再检查一下 function [cs,tval,p,c1,c2,c3,c4] = nonlinear_granger(x,y,m,Lx,Ly,e)
变量x 和 y 的长度是不是一致的。

使用道具

LiuRuijin 发表于 2016-3-6 17:21
你检查一下 a.m 和 kf.m 是不是在同一根目录下
第48行开始 要调用a.m 这个函数function  [h]=a(i,t,x,y, ...
太感动了,真是万分感谢

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-27 16:50