p24 myols.ox

来自「时间序列分析中著名的OxMetrics软件包」· OX 代码 · 共 40 行

OX
40
字号
#include <oxstd.h>

MyOls(const mY, const mX, const vP, const vStd)
{
    decl b,m_mRes,m_dSigmaSqr,cp,m_mCovar;

    if (olsc(mY, mX, &b, &m_mCovar)==1)
	{
		m_mRes = mY - mX * b;
		cp=columns(mX);
    	m_dSigmaSqr = m_mRes'm_mRes / (rows(mY) - cp);
		vP[0]=b;
		vStd[0]=sqrt(diagonal(m_dSigmaSqr*m_mCovar))';
		return 1;
	}
	else
	{
		vP[0]=0;
		vStd[0]=0;
		return 0;
	}
}

main()
{
    decl b,std;
            // mY argument, mX argument, both just random
    decl n, sigma, x, beta, y;

    n = 100;  sigma = 0.25;
    x = 1 ~ ranu(n, 2);
    beta = <1; 2; 3>;

    y = x*beta+sigma * rann(n, 1);

	if (MyOls( y, x, &b, &std ))
	    print("true~b~std~t_stat", beta~b~std~(b./std));
	else print("Estimation failed");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?