admin 管理员组文章数量: 1184232
2024年3月26日发(作者:layui时间选择器)
Stata语句1
y x1 x2
predict xxx 返回先前回归中因变量的拟合值,xxx随意变量名。
predict newvar, stdp 预测拟合值的标准差
predict aaa,re 返回先前回归中因变量的残差, aaa为随意变量名。
predict newvar, stdr 预测残差的标准差
predict newvar, xb 产生一个新变量其值为由上面回归方程计算的被解释
变量的预测值。
predict newvar, residual 产生一个新变量其值为由上面回归方程计算出的残差
test x1
回归报告中t值平方。
检验变量x1的显著性,返回当X1系数为零时的F值,F值为
test x1=x2 检验x1 x2变量的系数是否相等。
test x1*a=x2*b a,b为任意常数,检验变量x1与x2是否存在某种线性关系。
x1,gen(x1) 产生x1的虚拟变量。
gen fsize1=fize==1 产生虚拟变量,如果family size为1,则令fsize1=1,否则
为零。下同。
gen fsize2=fsize==2
gen fsize3=fsize==3
gen fsize4=fsize==4
gen fsize5=fsize>=5
y x1 x2 x3,level(99) 返回回归报告中99%的置信区间。
set level 97 在以后的回归中都默认返回97的置信区间。
reg y x1 x2 x3,noconstant 无常数回归。
y fprob(q, n-k-1, F) 返回值为F,分子自由度为q,分母自由度为n-k-1
的p值
di tprob(n-k-1,t) 返回值为t,自由度为n-k-1的p值
中缺失值为无穷大值。
reg bwght cigs parity faminc if fatheduc<. & motheduc<.
6.标准化变量
egen stdprice=std(price)
std(0)/
/可以添加语句:egen stdprice=std(price) ,mean(0)
reg y x1 x2 x3,beta
7. 将回归结果输入到
reg bwght cigs faminc
outreg2 using , nolabel replace
reg bwghtlbs cigs faminc
outreg2 using , nolabel append
reg bwght packs faminc
outreg2 using , nolabel append
8.逻辑表达式:
缺失值用“.”表示
关系运算符:==,!=(不等于),~=(约等于),>,<,<=,>=
逻辑运算符:&(与),|(或),~(非)
9.对现有变量重新赋值
replace oldvar =exp [if] [in] [, nopromote]
be:报告样本容量、变量个数、变量名称等
x1 x2 依次按升序排列
gsort -x1 按x1降序排列
转为stata时日期变量的处理
gen date(或任一新变量名)=date(‘原变量名’,‘YMD’/'DMY'/..)
form date %td
12. 删掉重复记录 duplicates drop
13.独立样本均值差异检验 ttest
Stata语句2
* Introduction to Stata
log using stata_, text replace
*使用日志(log)。它可以帮助我们记录stata的运行结果
clear all
set more off
*关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。
你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出
*cd D:/undergraECMT/data
*进入数据所在的盘符和文件夹
log using (文件名).log,replace
*打开日志文件,并更新。日志文件将记录下所有文件运行后给出的结果,如果你修
改了文件内容,replace选项可以将其更新为最近运行的结果
use /stat/data/hs0, clear
*打开数据文件
*
*insheet using intro_, 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” 命令或者
twoway scatter” 命令
graph twoway line wage educ
*“graph twoway”命令可以带别的后缀,例如 “graph twoway line” 则画的是
“graph
线状图。
graph matrix wage educ
*了解更多的变量之间的关系
graph matrix wage educ exper
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 == "academic"
*所有prgty1pe == "academic"的均值,方差
summarize read, detail
*有关read的均值和方差,以及具体分布
*Summarizing the data by group
tab prgtype
*鎬荤粨prgtype鍐呭悇缁勬儏鍐?
bysort prgtype: 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 "type of school"
*插入标签
rename gender female
*重命名
gen score=read+write+math
*在分析的过程中,有些变量并没有在数据中提供,需要我们用原始数据或者回归的
结果构造。
gen score2=score^2
gen pass=1 if score>=150
*生成pass=1,当成绩过150时
*egen命令相对复杂一些,它能生成一些“gen”命令无法生成的变量。
egen wagesum=sum(wage)
*生成wagesum 为每个人的工资和
egen wagemedian=median(wage)
*生成 wagemedian 为工资的中位数(median)
egen wagemax=max(wage)
*生成wagemax 为工资的最大值
egen wagemaxeduc=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() e
*
sort wage
list wage in 50/70
*工资值从小到大排列在第50到70的样本的工资值。
keep if wage<100
drop if wage>=100
*想保留工资小于100的样本,可以有上面两种命令
*Generating variables
egen avgscore=mean(score)
*生成avgscore为成绩的均值
egen avggroupscore=mean(score), by(prgtype)
*生成一个avggroupscore为在相同prgtype水平下的均值
ttest y1=y2
*检验变量y1和y2的平均值是否相等
signtest y1=y2
*秩检验,检验变量y1和y2的中值是否相等。检验y1的中值是否为5可用如下命
令
ttest write, by(female)
*
correlate wage educ exper tenure
*报告变量之间的相关系数
*Regression
reg write read female
*进行 OLS 回归
*表格中最后两行报告回归的斜率和截距的系数,相应的标准差、t值和P值,同时
给出95%的置信区间。
*在表格左上方,报告了回归的总变异、解释变异和残差变异。
*表格右上方报告回归的R方和调整后的R方。
*其中F是自变量所有的系数都为0(即自变量完全没有解释力)这样一个零假设对
应的F分布值。
*regression with dummy variables
xi: reg write read female e
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 , replace
*生成word,文件名为
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(斜度)
tabstat varlist [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_, text replace
clear all
set more off
use C:UsersheheDesktop2015-2016秋季课程计量经济学
probit insured age deg_nd deg_ged deg_hs deg_ba deg_ma deg_phd
deg_oth familysz race_bl race_ot race_wht reg_ne reg_mw reg_so reg_we male
married selfemp
dprobit insured age deg_nd deg_ged deg_hs deg_ba deg_ma deg_phd
deg_oth familysz race_bl race_ot race_wht reg_ne reg_mw reg_so reg_we male
married selfemp,r
reg insured age deg_nd deg_ged deg_hs deg_ba deg_ma deg_phd deg_oth
familysz race_bl race_ot race_wht reg_ne reg_mw reg_so reg_we male married
selfemp
logit insured age deg_nd deg_ged deg_hs deg_ba deg_ma deg_phd deg_oth
familysz race_bl race_ot race_wht reg_ne reg_mw reg_so reg_we male married
selfemp
mfx, predict (p) varlist (age deg_nd deg_ged deg_hs deg_ba deg_ma deg_phd
deg
> _oth familysz race_bl race_ot race_wht reg_ne reg_mw reg_so reg_we male
marri
> ed selfemp)
log close
exit,clear
版权声明:本文标题:Stata命令 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711440824a594226.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论