OxMetrics Maximum Likelihood Estimation

Ox这个计量软件做得真的很棒,语言基本就是C++,运算速度比Matlab快多了。

学习Ox,国内用得不多,要多用Ox/doc/OxIntro.pdf 这个文档。例如极大似然估计在其中有讲解:


#include <oxstd.h>
#include <oxfloat.h> // defines M_PI, M_2PI 这个头文件里有pi和2pi之类的数值
#import <maximize>
static decl s_mY; // the data sample (T x 1) //注意fLoglik参数中是没有序列值的,只有将时间序列定义成公共变量static,在全局引用
fLoglik(const vP, const adFunc, const avScore,const amHess)
{
decl dsum, dsig2;
dsum = sumsqrc(s_mY - vP[0]) / rows(s_mY);
dsig2 = vP[1];
adFunc[0] = -0.5 * (log(M_2PI * dsig2) + dsum / dsig2);
return 1; // 1 indicates success
}
main()
{
decl cn, dmu, dsigma2, vtheta, dfunc;
cn = 50; // sample size
dmu = 21; // distribution parameter: mean
dsigma2 = 49; // and variance
// generate a sample
s_mY = dmu + sqrt(dsigma2) * rann(cn, 1);
vtheta = <20;49>;
fLoglik(vtheta, &dfunc, 0, 0); // evaluate
print("function value is ", cn * dfunc,
" at parameter value:", vtheta’);
MaxControl(-1,5);
MaxBFGS(fLoglik, &vtheta, &dfunc, 0, TRUE);
print("Function value is ", cn * dfunc,
" at parameter value:", vtheta’);
}


Ox中其他的一些常用方法:

//载入xls矩阵或序列

decl x;

x = loadmat(abc.xls);


//debug要常用,在OxIntro.pdf里面有详细解释

//Run->OxDebug, type:

#break 192 //192是行号

#go 192

#go //运行到程序结束

#?x //查看变量x的值

#print(2*x) //对于非事先定义好的变量,用print打印出想看的式子


另外,Ox不支持虚数符号i,就是说sqrt(-1)得到的是NA

如果要算exp(sqrt(-1))之类的东西,就只能...cos+isin...这么玩儿了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值