ML两步法

可以采用二步法进行ML估计,以下将会以一段样例代码展示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
webuse school, clear
set seed 1
capture program drop mybiprobit
program mybiprobit
args lnf m1 m2 athrho zb1 lns1
tempvar rho
qui:gen double `rho'=tanh(`athrho')
qui:replace `lnf'=ln(normalden($ML_y3,`zb1',exp(`lns1')))
qui:replace `lnf'=`lnf'+ln(binormal(`m1',`m2',`rho')) if $ML_y1==1 & $ML_y2==1
qui:replace `lnf'=`lnf'+ln(binormal(`m1',-`m2',-`rho')) if $ML_y1==1 & $ML_y2==0
qui:replace `lnf'=`lnf'+ln(binormal(-`m1',`m2',-`rho')) if $ML_y1==0 & $ML_y2==1
qui:replace `lnf'=`lnf'+ln(binormal(-`m1',-`m2',`rho')) if $ML_y1==0 & $ML_y2==0
end
**Here I am creating an artificial IV
gen z=logptax-rnormal()
ml model lf mybiprobit (private:private=logptax loginc years) (vote:vote=logptax loginc years) /athrho (zb1:logptax=loginc years z) /lns1

ml maximize,
matrix b=e(b)
阅读全文 »


引言

shell是用C语言编写的程序,但它自身同时也是一种程序设计语言。你可能经常听说“shell脚本”,但实际上shell编程并非等同于“shell脚本”编程,前者指shell程序本身的开发,后者则是利用shell程序进行开发。都说java和javascript的区别是周杰和周杰伦的区别,shell和shell script或许也有那么点意思。

shell脚本

似乎任何程序学习都是从"Hello World!"开始的,对于shell而言:

1
2
#!/bin/bash
echo "Hello World !"

#!是个标记,告知这段命令将用bash执行。echo则是一个向窗口展示文本的命令。 你可以将以上代码框的内容存为一个以.sh为后缀的文件,比如hw.sh,并赋予文件执行权限:

1
2
chmod +x ./hw.sh         #赋予执行权限
bash hw.sh #执行脚本
阅读全文 »