全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Gauss专版
3699 15
2011-02-08
各位好!小弟本次目標為利用高斯模擬大樣本理論中漸進分配之結果,即是模擬出(根號N)*(B的估計值 - B)在樣本數很大(未到無限大)時,分配性質會趨近常態分配,期望值為B,變異數西亇碼平方*(XtransposeX)逆矩陣的結果。小弟在爬版之後利用版上高手所提供的蒙地卡羅模擬方法寫出目前之程式碼,目前碰到的問題有二,希望版上各位高手可以幫小弟一起研究研究,謝謝各位!
(1)小弟跑出來的結果,最下圖,小弟不知道如何利用以下的程式碼得到的結果解釋估計值是符合常態分配的結論,似乎關鍵在於mean of estimated s.e. of OLS b ,但是小弟翻遍書籍還是不知道如何解釋Monte Carlo的結論
(2)因為Monte Carlo理論基本概念即是隨機抽取樣本的概念,所以我是用x = rndu(100,1)做為樣本,不知道這樣行不行?

-------------------------------------------------------------------------------------------------------------------------------------
/* Model Y = XB + e , e~N(0,4)
   Observe b = 1
   repeat 5000 times and get b1 b2...b5000
------------------------------------------*/
seed = 1;
x = rndu(100,1);
tt = 100;
kk = 5;
iter = 5000;
xx = ones(tt,1)~x;
tb = {0,1};


storb = zeros(iter,1);
storse = zeros(iter,1);
i = 1;
do while i<=iter;


yy = xx*tb + 2*rndn(tt,1);


b = invpd(xx'xx)*(xx'yy);
e = yy - xx*b;
s2 = (e'e)/(tt-kk);
v = s2*invpd(xx'xx);


se = sqrt(diag(v));


storb[i,1] = b[2,1];
storse[i,1] = se[2,1];


i = i + 1;
endo;


format/rd 12,3;
"Monte Carlo result";
"-----------";
"Mean of OLS b  =" meanc(storb);
"s.e  of OLS b  =" stdc(storb);
"mean of estimated s.e. of OLS b =" meanc(storse);


library pgraph;
graphset;
{a1,a2,a3} = hist(storb,50);
-------------------------------------------------------------------------------
結論
Monte Carlo result
-----------
Mean of OLS b  =       0.997
s.e  of OLS b  =       0.655
mean of estimated s.e. of OLS b =       0.661

-----------------------------------------------------------------------------
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-2-13 18:28:59
您的问题估计没有说清楚,要是说得更清楚明白就好了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-15 00:11:57
謝謝您的意見!小弟已經修改過了,煩勞各位高手可以幫小弟一起研究!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-15 11:08:41
楼主您的程序要是在每一行进行注释,解释一下这一行程序您想做什么,
这样大家就可以容易读懂您的程序,一方面大家可以向您学习;另一方面,
大家在学习的同时,如果有可能就可以向您提一些建议和帮助!
对您和大家都有好处!
因为大家都很忙,花很多时间琢磨您的程序很难,所以,希望您能考虑一下
我的建议!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-15 18:47:10
dxdsinx 发表于 2011-2-8 23:04
各位好!小弟本次目標為利用高斯模擬大樣本理論中漸進分配之結果,即是模擬出(根號N)*(B的估計值 - B)在樣本數很大(未到無限大)時,分配性質會趨近常態分配,期望值為B,變異數西亇碼平方*(XtransposeX)逆矩陣的結果。小弟在爬版之後利用版上高手所提供的蒙地卡羅模擬方法寫出目前之程式碼,目前碰到的問題有二,希望版上各位高手可以幫小弟一起研究研究,謝謝各位!
(1)小弟跑出來的結果,最下圖,小弟不知道如何利用以下的程式碼得到的結果解釋估計值是符合常態分配的結論,似乎關鍵在於mean of estimated s.e. of OLS b ,但是小弟翻遍書籍還是不知道如何解釋Monte Carlo的結論
(2)因為Monte Carlo理論基本概念即是隨機抽取樣本的概念,所以我是用x = rndu(100,1)做為樣本,不知道這樣行不行?
/*  Model y = xb + e , e~N(0,1)
    x=1~x1,x1~{uniform random variables between 0 and 1}
    E[x'x]=A=
        E[1*1]=1        E[1*x1]=1/2
        E[x1*1]=1/2     E[x1^2]=[E(x1)]^2+Var[x1]=1/4+1/12=1/3
   
    n^(1/2)*(bhat-b)~N(0,A^(-1))
------------------------------------------*/
library pgraph;
graphset;
// rndseed 100;
sigma=10;
nAll=10000;
x=ones(nAll,1)~rndu(nAll,1);
y=x*(1|1)+sigma*rndn(nAll,1);
dataAll=x~y;

// nSample=10|50|100|1000;
nSample=3|10|100;
nCase=rows(nSample);
nRepeat=10000;

Mb=zeros(nRepeat,nCase);
Msb=zeros(nRepeat,nCase);
for j (1,nCase,1);
    for i (1,nRepeat,1);
        n=nSample[j];
        dataIndex=ceil(rndu(n,1)*nAll);
        data=dataAll[dataIndex,.];
        
        x=data[.,1 2];
        y=data[.,3];
        b=invpd(x'x)*(x'y);
        Mb[i,j]=b[2];
        e=y-x*b;
        s2e=e'e/(n-2);
        s2b=s2e*invpd(x'x);
        sb=sqrt(diag(s2b));
        Msb[i,j]=sb[2];
        
    endfor;
endfor;

//Consistency of OLS
graphset;
_ptek="fig1.tkf";
title("Consistency of OLS");
xlabel("Sample Size");
ylabel("bhat");
xtics(1,4,1,1);
xy(seqa(1,1,nCase),Mb');

// Asymptotic Normality of OLS
Mb0=1/sqrt(12)*(ones(nRepeat,1)*sqrt(nSample')).*(Mb-1)/sigma;
bMin=minc(minc(Mb0));
bMax=maxc(maxc(Mb0));
x0=seqa(-4,8/20,20)|bMax;
Mm=zeros(rows(x0),nCase);
Mfreq=zeros(rows(x0),nCase);

for i (1,nCase,1);
    freq = counts(Mb0[.,i],x0);
   
    Mfreq[.,i]=freq/nRepeat;
endfor;

temp=cdfn(seqa(-4,8/20,20)|4.1);
ytemp=temp[1]|(temp[2:rows(x0)]-temp[1:(rows(x0)-1)]);
graphset;
_ptek="fig2.tkf";
title("Asymptotic Normality of OLS");
_plegctl={1 5 3 0.1};
_plegstr=" true\000 n=3\000 n=10\000 n=100";
xy(seqa(-4,8/20,20)|4.1,ytemp~(Mfreq));

Consistency of OLS: fig1.bmp
Asymptotic Normality of OLS: fig2.bmp
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-2-15 20:29:59
非常感谢iooo 的解释。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群