Stata命令

更新时间:2023-10-14 06:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Stata语句1 1.reg y x1 x2 predict xxx predict newvar, stdp predict aaa,re predict newvar, stdr predict newvar, xb 量的预测值。

predict newvar, residual test x1

值为回归报告中t值平方。test x1=x2 test x1*a=x2*b 系。

2.tab x1,gen(x1) gen fsize1=fize==1 则为零。下同。 gen fsize2=fsize==2 gen fsize3=fsize==3 gen fsize4=fsize==4 gen fsize5=fsize>=5 3.reg y x1 x2 x3,level(99) 返回先前回归中因变量的拟合值,xxx随意变量名。 预测拟合值的标准差

返回先前回归中因变量的残差, aaa为随意变量名。 预测残差的标准差

产生一个新变量其值为由上面回归方程计算的被解释变

产生一个新变量其值为由上面回归方程计算出的残差 检验变量x1的显著性,返回当X1系数为零时的F值,F检验x1 x2变量的系数是否相等。

a,b为任意常数,检验变量x1与x2是否存在某种线性关产生x1的虚拟变量。

产生虚拟变量,如果family size为1,则令fsize1=1,否返回回归报告中99%的置信区间。

set level 97 reg y x1 x2 x3,noconstant 4.display fprob(q, n-k-1, F) 值

di tprob(n-k-1,t) 5.stata中缺失值为无穷大值。

在以后的回归中都默认返回97的置信区间。 无常数回归。

返回值为F,分子自由度为q,分母自由度为n-k-1的p

返回值为t,自由度为n-k-1的p值

reg bwght cigs parity faminc if fatheduc<. & motheduc<.

6.标准化变量

egenstdprice=std(price) std(0)/

reg y x1 x2 x3,beta

7. 将回归结果输入到test.doc regbwght cigs faminc

outreg2 using test.doc, nolabel replace regbwghtlbs cigs faminc

outreg2 using test.doc, nolabel append regbwght packs faminc

outreg2 using test.doc, nolabel append 8.逻辑表达式: 缺失值用“.”表示

/可以添加语句:egenstdprice=std(price) ,mean(0)

关系运算符:==,!=(不等于),~=(约等于),>,<,<=,>= 逻辑运算符:&(与),|(或),~(非) 9.对现有变量重新赋值

replace oldvar =exp [if] [in] [, nopromote]

10.describe:报告样本容量、变量个数、变量名称等 11.sort x1 x2 依次按升序排列 gsort -x1 按x1降序排列 12.excle转为stata时日期变量的处理

gen date(或任一新变量名)=date(‘原变量名’,‘YMD’/'DMY'/..) form date %td

12. 删掉重复记录 duplicates drop 13.独立样本均值差异检验 ttest

Stata语句2

* Introduction to Stata

log using stata_fall.txt, text replace

*使用日志(log)。它可以帮助我们记录stata的运行结果 clear all set more off

*关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空

格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出

*cd D:/undergraECMT/data *进入数据所在的盘符和文件夹 log using (文件名).log,replace

*打开日志文件,并更新。日志文件将记录下所有文件运行后给出的结果,如果你修改了文件内容,replace选项可以将其更新为最近运行的结果 use http://www.ats.ucla.edu/stat/data/hs0, clear *打开数据文件 *

*insheet using intro_hs0.csv, clear *

*use intro_hs0, clear

*Summarizing the data describe

*可以告诉我们每一个变量的含义

*具体了解每一个变量的特征,我们可以用 tabstat 命令。例如我们可以计算 wage 的均值,方差,中位数,范围,具体可以用 help tabstata 查询。

tabstat wage, stats(mean)

tabstat wage, stats (sd median range) *算 wage 的均值,方差,中位数,范围

tabstat wage, by (educ) stats(mean) *不同教育水平的工资的均值

summarize

*总计全体,Summarize(Sum)将汇报数据的均值和方差等信息。 summarize wage *有关工资的均值与方差

*如果需要更详尽的信息,可以进一步使用后缀detail

histogram wage *画柱状图

scatter wage educ

*画出两个变量之间的分布关系

graph twoway scatter wage educ

*直观的看到教育水平变化时工资的变化,可以用 “scatter” 命令或者 “graph twoway scatter” 命令

graph twoway line wage educ

*“graph twoway”命令可以带别的后缀,例如 “graph twoway line” 则画的是线状图。

graph matrix wage educ *了解更多的变量之间的关系 graph matrix wage educexper

graph bar (mean) wage, over (educ) *了解y的平均值关于x分布的柱状图。

list gender-read in 1/15 *取1到15列数据列表

summarize read math science write

*read math science write的均值方差啊等信息 summarize if read >= 60 *所有read大于60的均值方差 summarize if prgtype == \*所有prgty1pe == \的均值,方差 summarize read, detail

*有关read的均值和方差,以及具体分布

*Summarizing the data by group tab prgtype

*鎬荤粨prgtype鍐呭悇缁勬儏鍐? bysortprgtype: summarize read write *涓嶆噦...

tabstat read write math, by(prgtype) stat(n mean sd)

*Correlations

correlate write read science

*modifying the data order id gender

label variable schtyp \ *插入标签

rename gender female *重命名

gen score=read+write+math

*在分析的过程中,有些变量并没有在数据中提供,需要我们用原始数据或者回归的结果构造。

gen score2=score^2 gen pass=1 if score>=150 *生成pass=1,当成绩过150时

*egen命令相对复杂一些,它能生成一些“gen”命令无法生成的变量。 egenwagesum=sum(wage) *生成wagesum 为每个人的工资和 egenwagemedian=median(wage)

*生成 wagemedian 为工资的中位数(median) egenwagemax=max(wage) *生成wagemax 为工资的最大值

egenwagemaxeduc=max (wage),by (educ)

*产生一个变量“wagemax”为相同教育水平里的最高工资 *replace

*我们需要替换某一变量,我们可以用的命令是“replace”

gen wagehigh=1 if wage>=10 replace wagehigh=0 if wagehigh ==.

*有时候我们在生成变量时可以加上一定条件,例如如果一个样本工资超过3,我们就定义它的变量wagehigh 的取值为1,否则为0。 *注意是两个等号

drop if read<40 drop schtyp

*drop命令去掉过程中的暂用的变量,以方便我们浏览数据和重新定义变量

count if wage<100 count if wage<10

*我们可以用“keep”或“drop”命令来删除一些样本,在删除之前,我们需要了解删除带来的影响,则可以用“count”命令来了解样本取值的情况。

*Creating dummy variables

*可以用“sort”和“list”命令来了解数据分布的细节 sort prgtype *排序

xi, prefix() i.prgtype * sort wage list wage in 50/70

*工资值从小到大排列在第50到70的样本的工资值。 keep if wage<100 drop if wage>=100

*想保留工资小于100的样本,可以有上面两种命令

*Generating variables egenavgscore=mean(score)

*生成avgscore为成绩的均值

egenavggroupscore=mean(score), by(prgtype)

*生成一个avggroupscore为在相同prgtype水平下的均值

ttest y1=y2

*检验变量y1和y2的平均值是否相等 signtest y1=y2

*秩检验,检验变量y1和y2的中值是否相等。检验y1的中值是否为5可用如下命令 ttest write, by(female) *

correlate wage educexper tenure *报告变量之间的相关系数

*Regression reg write read female *进行 OLS 回归

*表格中最后两行报告回归的斜率和截距的系数,相应的标准差、t值和P值,同时给出95%的置信区间。

*在表格左上方,报告了回归的总变异、解释变异和残差变异。 *表格右上方报告回归的R方和调整后的R方。

*其中F是自变量所有的系数都为0(即自变量完全没有解释力)这样一个零假设对应的F分布值。

*regression with dummy variables xi: reg write read female i.prgtype reg write read femal IPTY1 IPTY2 *Defining global variables global ylist write global xlist read female

*using global variables reg $ylist $xlist

*using outreg2 est store m1

outreg2 [m1] using test.doc, replace *生成word,文件名为test.doc

display sqrt(5)*sin(0.5)

*Stata 可以充当计算器用,使用 “display” 命令

ssc install outreg2

*从命令库下载命令,此处为下载outreg2

*using logout

logout,save(test2) word replace: sum *将所有数据保存到word里

*使用日志(log)。它可以帮助我们记录stata的运行结果 log close *关闭日志文件 exit,clear

*退出并清空内存中的数据 *补充1 describe

*describe命令可以描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storage type),标签(label)等

summarize [varlist] [weight] [if exp] [in range] [,detail]

*summarize可以提供varlist指定变量(可以不止一个)的如下统计量:Percentiles(分位数),四大最大的数和四个最小的数,Variance(方差),Std. Dev.(标准差),Skewness(偏度),Kurtosis(斜度)

tabstatvarlist [weight] [if exp] [in range] [, stats(statname [...]) ] *tabstat提供[, stats(statname [...]) ]指定的统计量,

*可供选择的有mean(均值),count(非缺失观测值个数),sum(总和),max(最大值) *range(最大值-最小值),sd(标准差),var(方差),cv(变易系数=标准差/均值),skewness(偏度),kurtosis(斜度),median(中位数),p1(1%分位数,类似地有p5, p10, p25, p50, p75, p95, p99),iqr(interquantile range = p75 – p25)。

*t值是对单个变量显著性的检验,t值的绝对值大于临界值说明该变量是显著的, *要注意的是t检验是对总体当中变量是否是真正影响因变量的一个变量的检验,即检验总体中该变量的参数是否为零,

*只不过总体中变量的参数永远未知,只能用其无偏估量(参数的样本估计量)来代替进行检验.

*F值是对所有解释变量整体显著性的检验,其原假设是所有的解释变量的参数都为零, *而只要其中至少有一个解释变量的参数不为零就说明解释变量在整体上对因变量有显著性的影响,

*但仅依靠F检验是无法判断究竟哪个自变量对因变量有显著性的影响,必须进一步对每一个变量进行t检验。

*R平方值表明了模型对样本数据的拟合程度,其值越高说明模型对样本数据拟合得更好 *要注意R平方值是样本依赖的,就是说R平方值判别模型的一个潜在的假设是你所抽取的

样本是真正来自于你所研究的总体

*而现实当中这一点往往难以做到。我们进行计量经济分析的最终目的是要依据样本数据来研究总体的规律性

*那么相应的检验也是要对总体进行,而R平房值的高低仅代表模型对样本数据的拟合程度,并不能说明总体当中变量的显著性

*虽然F统计量和R平方值有换算关系,但是二者的构造机理是完全不同的,包括t检验都是针对总体的检验

*所以在现实中我们一般不对R平方值的大小给与太大的关注,而更看重t检验的结果, *试想如果你抽取的一组样本不是来自于你真正要研究的对象的总体,即使R平方值再高、那也说明不了问题。

*t检验,主要用于样本含量较小(例如n<30),总体标准差σ未知的正态分布资料。 *T检验是用于小样本(样本容量小于30)的两个平均值差异程度的检验方法。它是用T分布理论来推断差异发生的概率,从而判定两个平均数的差异是否显著。

邹至庄检验 reg salary sales ros *回归

scalar ssr=e(rss) scalar list ssr

*用科学计数法显示ssr

scalar F=[(ssr-ssr1-ssr2)/(k+1)]/[(ssr1+ssr2)/(n-2k-2)] scalar list F dis fprob(k+1,n,F) *显示p-value

当Y是哑变量,或Y对Xi变化非线性,则采用reg会有较大误差,此时应该采用probit或者logit模型

第一问:参见do file

结论:因为selfemp的partial effect为-0.2069031小于0,所以自我雇佣的更倾向于不去买健康保险。且partial effect为-0.2069031 第二问:

由于Y与Xi并非线性关系,所以LPM和probit以及logit模型估计出的结果有较大差异;而后两者则由于前者假设随机变量服从逻辑概率分布,而后者假设随机变量服从正态分布所以估计量存在微小差异。

不能直接比较,因为probit以及logit模型是非线性的,直接比较估计量β意义不大 probit以及logit模型估计值几乎一样,这两者和LPM模型估计结果有较大差异(比较dprobit结果中partial effect和logit的mfx以及LPM的估计量β)log using stata_fall.txt, text replace clear all set more off

use C:\\Users\\hehe\\Desktop\\2015-2016秋季课程\\计量经济学\\homework\\insurance.dta

probit insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp

dprobit insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp,r

reg insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp

logit insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp

mfx, predict (p) varlist (age deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg > _othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male marri >edselfemp) log close exit,clear

probit insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp

dprobit insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp,r

reg insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp

logit insured age

deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg_othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male married selfemp

mfx, predict (p) varlist (age deg_nddeg_geddeg_hsdeg_badeg_madeg_phddeg > _othfamilyszrace_blrace_otrace_whtreg_nereg_mwreg_soreg_we male marri >edselfemp) log close exit,clear

本文来源:https://www.bwwdw.com/article/6kmf.html

Top