stata如何估计参数

如题所述

一、极大似然估计的原理
极大似然的估计原理可以由下面的程序得到说明。我们首先生成 10 个服从
正态分布的总体,每个总体的均值都不同,依次为 0,1,2,3,4,5,6,7,8,
9。方差相同,均为 1。然后我们随机地取出一个总体,从中抽出 10 个样本,因
为事先不知道是从哪一个总体中抽出来的,所以我们分别用已知的 10 个总体参
数值代入似然函数,计算出 10 个似然函数值,取其中最大的似然值,认为该样
本是从相应的总体中取出的(从而联合概率密度也最大化)。然后我们让计算机
告诉我们它是从第几个总体中取样的,并与我们的判断进行对比。
code:================================================================
capt prog drop mle
prog mle

drawnorm double x0-x9,n(8) m(0,1,2,3,4,5,6,7,8,9) clear
global i=int(10*uniform()) //设定一个随机数,用于随机取出一个总体
forv j=0/9 {
gen lnf`j' =-0.5*ln(2*_pi)*8-sum(0.5*(x$i-`j')^2) //对取出的总体计算似然值
scalar lnf`j'=lnf`j'[_N] //最终的似然值
}
scalar list // 比较10个似然值哪个最大,猜想是从第几个总体取出来的?
end
mle
di "所抽中的样本为" as error "X"$i
二、最小二乘估计 OLS 原理
与极大似然估计寻求样本密度函数对数值最大不同,最小二乘估计寻求样本
点与总体参数的距离最小。这种距离通常以平方和来表示,因此称为最小二乘估
计。最小二乘估计原理可以由下面的程序得到说明。
我们首先生成 10 个服从正态分布的总体,每个总体的均值都不同,依次为
0,1,2,3,4,5,6,7,8,9。但方差相同,均为 1。然后我们随机地取出一
个总体,从中抽出 10 个样本,因为不知道是从哪一个总体中抽出来的,所以我
们分别计算样本点与已知的 10 个总体参数值(均值)之间距离的平方和,然后
取使得平方和最小的哪个参数值,认为该样本是从哪个总体中取出的。然后我们
让计算机告诉我们它是从第几个总体中取样的。
code:================================================================
capt prog drop ols
prog ols
drawnorm double x0-x9,n(8) m(0,1,2,3,4,5,6,7,8,9) clear
*生成10个总体,每个总体取8个样本
global i=int(10*uniform()) //设定一个一位数的随机数,0,1,2,…,9
forv j=0/9 {
gen lnf`j' =sum((x$i-`j')^2) //对某总体计算10个观察值到总体均值的平方和
scalar lnf`j'=lnf`j'[_N] //取平方和赋给标量
}
scalar list //比较10个平方和哪个最大,猜想是从第几个总体取出来的?
end
ols
*根据10个平方和,猜想是从第几个总体取出来的?
di "所抽中的样本为" as error "X"$i //显示真正的取样总体是?
三、矩估计MM原理
矩估计法不需要知道总体的分布,只要知道总体的矩即可。然后直接求出样
本矩,代替总体矩即可。矩估计原理可以由下面的程序得到说明。
我们首先生成 10 个总体,每个总体的均值都不同,依次为 0,1,2,3,4,
5,6,7,8,9。然后我们随机地取出一个总体,从中抽出 8 个样本,因为不知
道是从哪一个总体中抽出来的,所以我们分别计算样本的一阶原点矩,即均值,
然后取该样本均值作为总体均值的估计值,比较样本均值与总体均值,认为相距
最近的哪个样本是从相应总体中取出的。
code:================================================================
cap prog drop mm
drawnorm double x0-x9,n(8) m(0,1,2,3,4,5,6,7,8,9) clear
*生成10个总体,取样,得到10个样本
global i=int(10*uniform()) //设定一个一位数的随机数,0,1,2,…,9
quietly sum x$i
di r(mean)
*根据样本均值,猜想是从第几个总体取出来的?
di "所抽中的样本为" as error "X"$i //显示真正的取样总体是?
四、区间估计原理
区间估计与点估计不同,它寻求一个区间,该区间以一定的概率保证真正的总
体参数值包含在其中,当然,对于一个特定的样本,它可能包含参数真值,也可
能不包含。
code:================================================================
capt prog drop bb
prog bb
drawnorm x,n(100) m(5) sds(10) d clear

quietly sum x
end
***将上述抽样试验进行100次,得到100个样本均值mean和标准差sd
simulate mean=r(mean) sd=r(sd), reps (100) nodots: bb
g n=_n
*在已知总体方差前提下(总体标准差为10),求100个子样本95%的置信区间
g zlow=mean-invnorm(0.975)*10/sqrt(100)
g zhigh=mean+invnorm(0.975)*10/sqrt(100)
*在总体方差未知的前提下,用样本标准差sd替代,需要借助t统计量
g tlow=mean-invttail(99,0.025)*sd/sqrt(100)
g thigh=mean+invttail(99,0.025)*sd/sqrt(100)
*考察总体均值是否在子样本的95%置信区间内,如不在则标记为1,否则为零
g zsign=(zlow<5& zhigh>5)
g tsign=(tlow<5& thigh>5)
*统计没有包括总体均值的子样本95%置信区间个数
table zsign
table tsign
*图示
tw rcapsym thigh tlow n, yline(5) || rcapsym thigh tlow n if thigh<5 | tlow>5
五、假设检验原理
由于(1)我们不知道真正的总体均值,(2)只能抽取一个样本,因此,当
我们根据对样本的统计结果来对总体均值进行推断的时候就可能出错。从一次抽
样来推断时,样本均值的 95%置信区间可能含有总体均值,也可能不含有总体均
值,含有的可能性为 95%,不含有的可能性为 5%。如果本来是不含有的真值的,
我们认为含有,就犯了纳伪错误;如果本来是含有的真值的,我们认为不含有,
就犯了弃真错误。
当总体的方差未知时,用样本方差来替代总体方差,则样本均值减总体均值
服从(n-1)的 t 分布。
情形 1:总体均值已知,为 u=5。但我们假装不知道,却做出了对总体均值正确
的原假设,认为它等于 u0=5,则抽样进行假设检验如下
code1:=================================================================
drawnorm x,n(100) m(5) sds(10) d clear
*生成一个均值u=5,标准差o=10的正态随机变量,作为研究总体
quietly sum x
di as text "从样本计算t统计值为:" as error (r(mean)-5)/(sqrt(100)*r(sd))
di as text "根据t统计量临界值为:" as error invttail(99,0.025)
di as result "对这次实验,拒绝还是接受?"
code2:==================================================================
capt prog drop bb
prog bb
drawnorm x,n(100) m(5) sds(10) d clear
quietly sum x
scalar ref=(abs(sqrt(100)*(r(mean)-5)/r(sd))>invttail(99,0.025))
*如果样本统计量(t)值大于临界值,则拒绝原假设一次jud=1,否则为0
end
simulate ref,reps(100):bb
tab _sim //其中的1表示在100次中拒绝原假设的次数。
情形 2:总体均值已知,为 u=5。但我们假装不知道,并做出了对总体均值错误
的原假设,如认为它等于 u0=10,则抽样进行假设检验如下
code3:=================================================================
capt prog drop bb
prog bb
drawnorm x,n(100) m(5) sds(10) d clear
quietly sum x
scalar jud=(abs(sqrt(100)*(r(mean)-10)/r(sd))>invttail(99,0.025) ) //比较统计值与临界值大小
end
simulate jud,reps(100):bb
tab _sim
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-05
方法太多了
我替别人做这类的数据分析蛮多的