第五章 stata语言初步
- 格式:doc
- 大小:132.50 KB
- 文档页数:12
STATA 讲义目录Stata入门教程:Stata概貌Stata 第一章数据输入,存盘和调用文件命令以及数据管理命令Stata第二章 描述性统计命令与输出结果说明Stata第三章 正态检验与作图命令Stata第四章 t检验和单因素方差分析(上)Stata第四章 t检验和单因素方差分析(下)Stata第五章 多组计量资料比较的非参数检验命令与输出结果说明Stata第六章 卡方检验Stata第七章 相 关 分 析Stata第八章 单 因 素 生 存 分 析Stata第九章 多因 素 方 差 分 析 命 令 与 输 出 结 果 说 明Stata第十章 线 性 回 归 和 逐 步 回 归 命 令 和 输 出 结 果 说 明Stata第十一章 Logistic回归分析命令与输出结果说明Stata第十二章 Cox回归分析命令与输出结果说明第一章 Stata 概貌§1.1 Stata的功能、特点和背景Stata是一个用于分析和管理数据的功能强大又小巧玲珑的实用统计分析软件,由美国计算机资源中心(Computer Resource Center)研制。
从1985至1998的十四年时间里,已连续推出1.1,1.2,1.3,1.4,1.5,……及2.0,2.1,3.0,3.1,4.0,5.0,6.0等多个版本,通过不断更新和扩充,内容日趋完善。
它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点,又在许多方面别具一格。
Stata融汇了上述程序的优点,克服了各自的缺点,使其功能更加强大,操作更加灵活、简单,易学易用,越来越受到人们的重视和欢迎。
Stata的突出特点是只占用很少的磁盘空间,输出结果简洁,所选方法先进,内容较齐全,制作的图形十分精美,可直接被图形处理软件或字处理软件如WORD等直接调用。
一、 Stata的数据管理能力1. Stata的数据管理空间受计算机的操作系统和计算机扩展内存的影响。
stata教程Stata 是一种广泛应用于统计分析的软件,拥有强大的数据处理和建模能力。
本教程将介绍 Stata 的一些基础操作和常用命令,帮助您快速上手使用该软件。
1. 安装和启动 Stata在开始使用Stata 之前,您需要先安装该软件。
安装完成后,双击图标启动 Stata。
2. 导入数据使用 Stata 进行统计分析的第一步是导入数据。
可以通过命令 `use` 来加载已有的 Stata 数据集,或者使用 `import` 命令导入其它格式的数据文件。
3. 数据处理Stata 提供了许多数据处理的命令,比如 `drop` 可以删除某些变量或观察值,`rename` 可以修改变量名,`generate` 可以创建新变量等。
4. 描述性统计描述性统计是对数据的基本概况进行分析,可以使用命令`summarize` 来获取平均值、标准差等统计量,使用 `tabulate`命令生成频数表,还可以通过 `graph` 命令绘制直方图或散点图等图形。
5. 假设检验假设检验用于验证某个统计假设是否成立。
Stata 提供了多种假设检验的命令,比如 `ttest` 可以进行单样本或独立样本 t 检验,`anova` 可以进行方差分析等。
6. 回归分析回归分析是一种常用的建模方法,可以用于研究变量之间的关系。
在Stata 中,可以使用`regress` 命令进行简单线性回归,使用 `logit` 命令进行逻辑回归等。
7. 图形输出Stata 可以生成各种类型的图形输出,比如线图、散点图、柱状图等。
可以使用`graph export` 命令将图形导出为图片文件,方便在报告中使用。
8. 编写批处理脚本如果需要重复执行一组命令,可以将这些命令写入批处理脚本。
Stata 支持编写批处理脚本来自动化数据处理和分析的过程。
以上是关于 Stata 的基础教程,希望能帮助您快速入门并熟练使用该软件进行数据分析。
更多高级功能和命令,请参考Stata 官方文档或相关教程。
STATA统计分析软件使用教程引言STATA统计分析软件是一款功能强大、使用广泛的统计分析软件,广泛应用于经济学、社会学、医学和其他社会科学领域的研究中。
本教程将介绍STATA的基本操作和常用功能,并提供实例演示,帮助读者快速上手使用。
第一章:STATA入门1.1 安装与启动首先,下载并安装STATA软件。
完成安装后,点击软件图标启动STATA。
1.2 界面介绍STATA的界面分为主窗口、命令窗口和结果窗口。
主窗口用于数据显示,命令窗口用于输入分析命令,结果窗口用于显示分析结果。
1.3 数据导入与保存使用命令`use filename`导入数据,使用命令`save filename`保存当前数据。
1.4 基本命令介绍常用的基本命令,如`describe`用于显示数据的基本信息、`summarize`用于计算变量的统计描述等。
第二章:数据处理与变量管理2.1 数据选择与筛选通过命令`keep`和`drop`选择和删除数据的特定变量和观察值。
2.2 数据排序与重编码使用命令`sort`对数据进行排序,使用命令`recode`对变量进行重编码。
2.3 缺失值处理介绍如何检测和处理数据中的缺失值,包括使用命令`missing`和`recode`等。
第三章:数据分析3.1 描述性统计介绍如何使用STATA计算和展示数据的描述性统计量,如均值、标准差、最大值等。
3.2 统计检验介绍如何进行常见的统计检验,如t检验、方差分析、卡方检验等。
3.3 回归分析介绍如何进行回归分析,包括一元线性回归、多元线性回归和逻辑回归等。
3.4 生存分析介绍如何进行生存分析,包括Kaplan-Meier生存曲线和Cox比例风险模型等。
第四章:图形绘制与结果解释4.1 图形绘制基础介绍如何使用STATA进行常见的数据可视化,如散点图、柱状图、折线图等。
4.2 图形选项与高级绘图介绍如何通过调整图形选项和使用高级绘图命令,进一步美化和定制图形。
Stata教程(2)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(Stata教程(2))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为Stata教程(2)的全部内容。
第一章 Stata 概貌§1.1 Stata的功能、特点和背景Stata是一个用于分析和管理数据的功能强大又小巧玲珑的实用统计分析软件,由美国计算机资源中心(Computer Resource Center)研制。
从1985至1998的十四年时间里,已连续推出1.1,1.2,1。
3,1。
4,1.5,……及2。
0,2。
1,3。
0,3.1,4.0,5。
0,6。
0等多个版本,通过不断更新和扩充,内容日趋完善。
它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点,又在许多方面别具一格。
Stata融汇了上述程序的优点,克服了各自的缺点,使其功能更加强大,操作更加灵活、简单,易学易用,越来越受到人们的重视和欢迎。
Stata的突出特点是只占用很少的磁盘空间,输出结果简洁,所选方法先进,内容较齐全,制作的图形十分精美,可直接被图形处理软件或字处理软件如WORD等直接调用.一、 Stata的数据管理能力1.Stata的数据管理空间受计算机的操作系统和计算机扩展内存的影响。
对640k内存的微机,3.1版本的Stata可以管理2400个记录×99个变量,并随计算机扩展内存的增加而增加;对 4.0的WINDOWS版本,Stata可以管理4800个记录×99个变量;对WINDOWS 95下的5.0版本,可根据计算机的配置情况设置变量数和记录数,如32M扩展内存的计算机,可处理2千万个数据。
Stata操作讲义第一讲Stata操作入门第一节概况Stata最初由美国计算机资源中心(Computer Resource Center)研制,现在为Stata公司的产品,其最新版本为7.0版。
它操作灵活、简单、易学易用,是一个非常有特色的统计分析软件,现在已越来越受到人们的重视和欢迎,并且和SAS、SPSS一起,被称为新的三大权威统计软件。
Stata最为突出的特点是短小精悍、功能强大,其最新的7.0版整个系统只有10M左右,但已经包含了全部的统计分析、数据管理和绘图等功能,尤其是他的统计分析功能极为全面,比起1G以上大小的SAS系统也毫不逊色。
另外,由于Stata在分析时是将数据全部读入内存,在计算全部完成后才和磁盘交换数据,因此运算速度极快。
由于Stata的用户群始终定位于专业统计分析人员,因此他的操作方式也别具一格,在Windows席卷天下的时代,他一直坚持使用命令行/程序操作方式,拒不推出菜单操作系统。
但是,Stata的命令语句极为简洁明快,而且在统计分析命令的设置上又非常有条理,它将相同类型的统计模型均归在同一个命令族下,而不同命令族又可以使用相同功能的选项,这使得用户学习时极易上手。
更为令人叹服的是,Stata语句在简洁的同时又拥有着极高的灵活性,用户可以充分发挥自己的聪明才智,熟练应用各种技巧,真正做到随心所欲。
除了操作方式简洁外,Stata的用户接口在其他方面也做得非常简洁,数据格式简单,分析结果输出简洁明快,易于阅读,这一切都使得Stata成为非常适合于进行统计教学的统计软件。
Stata的另一个特点是他的许多高级统计模块均是编程人员用其宏语言写成的程序文件(ADO文件),这些文件可以自行修改、添加和下载。
用户可随时到Stata网站寻找并下载最新的升级文件。
事实上,Stata的这一特点使得他始终处于统计分析方法发展的最前沿,用户几乎总是能很快找到最新统计算法的Stata程序版本,而这也使得Stata自身成了几大统计软件中升级最多、最频繁的一个。
stata操作指南计量经济学stata操作(实验课)第一章stata基本知识1、stata窗口介绍2、基本操作(1)窗口锁定:Edit-preferences-general preferences-windowing-lock splitter (2)数据导入(3)打开文件:use E:\example.dta,clear(4)日期数据导入:gen newvar=date(varname, “ymd”)format newvar %td 年度数据gen newvar=monthly(varname, “ym”)format newvar %tm 月度数据gen newvar=quarterly(varname, “yq”)format newvar %tq 季度数据(5)变量标签Label variable tc ` “total output” ’(6)审视数据describelist x1 x2list x1 x2 in 1/5list x1 x2 if q>=1000drop if q>=1000keep if q>=1000(6)考察变量的统计特征summarize x1su x1 if q>=10000su q,detailsutabulate x1correlate x1 x2 x3 x4 x5 x6(7)画图histogram x1, width(1000) frequency kdensity x1scatter x1 x2twoway (scatter x1 x2) (lfit x1 x2) twoway (scatter x1 x2) (qfit x1 x2) (8)生成新变量gen lnx1=log(x1)gen q2=q^2gen lnx1lnx2=lnx1*lnx2gen larg=(x1>=10000)rename larg largeg large=(q>=6000)replace large=(q>=6000)drop ln*(8)计算功能display log(2)(9)线性回归分析regress y1 x1 x2 x3 x4vce #显示估计系数的协方差矩阵reg y1 x1 x2 x3 x4,noc #不要常数项reg y1 x1 x2 x3 x4 if q>=6000reg y1 x1 x2 x3 x4 if largereg y1 x1 x2 x3 x4 if large==0reg y1 x1 x2 x3 x4 if ~large predict yhatpredict e1,residualdisplay 1/_b[x1]test x1=1 # F检验,变量x1的系数等于1test (x1=1) (x2+x3+x4=1) # F联合假设检验test x1 x2 #系数显著性的联合检验testnl _b[x1]= _b[x2]^2(10)约束回归constraint def 1 x1+x2+x3=1cnsreg y1 x1 x2 x3 x4,c(1)cons def 2 x4=1cnsreg y1 x1 x2 x3 x4,c(1-2)(11)stata的日志File-log-begin-输入文件名log off 暂时关闭log on 恢复使用log close 彻底退出(12)stata命令库更新Update allhelp command第二章有关大样本ols的stata命令及实例(1)ols估计的稳健标准差reg y x1 x2 x3,robust(2)实例use example.dta,clearreg y1 x1 x2 x3 x4test x1=1reg y1 x1 x2 x3 x4,rtestnl _b[x1]=_b[x2]^2第三章最大似然估计法的stata命令及实例(1)最大似然估计help ml(2)LR检验lrtest #对面板数据中的异方差进行检验(3)正态分布检验sysuse auto #调用系统数据集auto.dtahist mpg,normalkdensity mpg,normalqnorm mpg*手工计算JB统计量sum mpg,detaildi (r(N)/6)*((r(skewness)^2)+[(1/4)*(r(kurtosis)-3)^2]) di chi2tail(自由度,上一步计算值)*下载非官方程序ssc install jb6jb6 mpg*正态分布的三个检验sktest mpgswilk mpgsfrancia mpg*取对数后再检验gen lnmpg=log(mpg)kdensity lnmpg, normaljb6 lnmpgsktest lnmpg第四章处理异方差的stata命令及实例(1)画残差图rvfplotrvfplot varname*例题use example.dta,clearreg y x1 x2 x3 x4rvfplot # 与拟合值的散点图rvfplot x1 # 画残差与解释变量的散点图(2)怀特检验estat imtest,white*下载非官方软件ssc install whitetst(3)BP检验estat hettest #默认设置为使用拟合值estat hettest,rhs #使用方程右边的解释变量estat hettest [varlist] #指定使用某些解释变量estat hettest,iidestat hettest,rhs iidestat hettest [varlist],iid(4)WLSreg y x1 x2 x3 x4 [aw=1/var]*例题quietly reg y x1 x2 x3 x4predict e1,resgen e2=e1^2gen lne2=log(e2)reg lne2 x2,nocpredict lne2fgen e2f=exp(lne2f)reg y x1 x2 x3 x4 [aw=1/e2f](5)stata命令的批处理(写程序)Window-do-file editor-new do-file#WLS for examplelog using E:\wls_example.smcl,replaceset more offuse E:\example.dta,clearreg y x1 x2 x3 x4predict e1,resgen e2=e1^2g lne2=log(e2)reg lne2 x2,nocpredict lne2fg e2f=exp(lne2f)*wls regressionreg y x1 x2 x3 x4 [aw=1/e2f]log closeexit第五章处理自相关的stata命令及实例(1)滞后算子/差分算子tsset yearl.l2.D.D2.LD.(2)画残差图scatter e1 l.e1ac e1pac e1(3)BG检验estat bgodfrey(默认p=1)estat bgodfrey,lags(p)estat bgodfrey,nomiss0(使用不添加0的BG检验)(4)Ljung-Box Q检验reg y x1 x2 x3 x4predict e1,residwntestq e1wntestq e1,lags(p)* wntestq指的是“white noise test Q”,因为白噪声没有自相关(5)DW检验做完OLS回归后,使用estat dwatson(6)HAC稳健标准差newey y x1 x2 x3 x4,lag(p)reg y x1 x2 x3 x4,cluster(varname)(7)处理一阶自相关的FGLSprais y x1 x2 x3 x4 (使用默认的PW估计方法)prais y x1 x2 x3 x4,corc (使用CO估计法)(8)实例use icecream.dta, cleartsset timegraph twoway connect consumption temp100 time, msymbol(circle) msymbol(triangle) reg consumption temp price incomepredict e1, resg e2=l.e1twoway (scatter e1 e2) (lfit e1 e2)ac e1pac e1estat bgodfreywntestq e1estat dwatsonnewey consumption temp price income, lag (3)prais consumption temp price income, corcprais consumption temp price income, nologreg consumption temp l.temp price incomeestat bgodfreyestat dwatson第六章模型设定与数据问题(1)解释变量的选择reg y x1 x2 x3estat ic*例题use icecream.dta, clearreg consumption temp price incomeestat icreg consumption temp l.temp price incomeestat ic(2)对函数形式的检验(reset检验)reg y x1 x2 x3estat ovtest (使用被解释变量的2、3、4次方作为非线性项)estat ovtest, rhs (使用解释变量的幂作为非线性项,ovtest-omitted variable test)*例题use nerlove.dta, clearreg lntc lnq lnpl lnpk lnpfestat ovtestg lnq2=lnq^2reg lntc lnq lnq2 lnpl lnpk lnpfestat ovtest(3)多重共线性estat vif*例题use nerlove.dta, clearreg lntc lnq lnpl lnpk lnpfestat vif(4)极端数据reg y x1 x2 x3predict lev, leverage (列出所有解释变量的lev值)gsort –levsum levlist lev in 1/3*例题use nerlove.dta, clearquietly reg lntc lnq lnpl lnpk lnpfpredict lev, leveragesum levgsort –levlist lev in 1/3(5)虚拟变量gen d=(year>=1978)tabulate province, generate (pr)reg y x1 x2 x3 pr2-pr30(6)经济结构变动的检验方法1:use consumption_china.dta, cleargraph twoway connect c y year, msymbol(circle) msymbol(triangle)reg c yreg c y if year<1992reg c y if year>=1992计算F统计量方法2:gen d=(year>1991)gen yd=y*dreg c y d ydtest d yd第七章工具变量法的stata命令及实例(1)2SLS的stata命令ivregress 2sls depvar [varlist1] (varlist2=instlist)如:ivregress 2sls y x1 (x2=z1 z2)ivregress 2sls y x1 (x2 x3=z1 z2 z3 z4) ,r firstestat firststage,all forcenonrobust (检验弱工具变量的命令)ivregress liml depvar [varlist 1] (varlist2=instlist)estat overid (过度识别检验的命令)*对解释变量内生性的检验(hausman test),缺点:不适合于异方差的情形reg y x1 x2estimates store olsivregress 2sls y x1 (x2=z1 z2)estimates store ivhausman iv ols, constant sigmamore*DWH检验estat endogenous*GMM的过度识别检验ivregress gmm y x1 (x2=z1 z2) (两步GMM)ivregress gmm y x1 (x2=z1 z2),igmm (迭代GMM)estat overid*使用异方差自相关稳健的标准差GMM命令ivregress gmm y x1 (x2=z1 z2), vce (hac nwest[#])(2)实例use grilic.dta,clearsumcorr iq sreg lw s expr tenure rns smsa,rreg lw s iq expr tenure rns smsa,rivregress 2sls lw s expr tenure rns smsa (iq=med kww mrt age),restat overidivregress 2sls lw s expr tenure rns smsa (iq=med kww),r first estat overidestat firststage, all forcenonrobust (检验工具变量与内生变量的相关性)ivregress liml lw s expr tenure rns smsa (iq=med kww),r *内生解释变量检验quietly reg lw s iq expr tenure rns smsaestimates store olsquietly ivregress 2sls lw s expr tenure rns smsa (iq=med kww) estimates store ivhausman iv ols, constant sigmamoreestat endogenous (存在异方差的情形)*存在异方差情形下,GMM比2sls更有效率ivregress gmm lw s expr tenure rns smsa (iq=med kww)estat overidivregress gmm lw s expr tenure rns smsa (iq=med kww),igmm*将各种估计方法的结果存储在一张表中quietly ivregress gmm lw s expr tenure rns smsa (iq=med kww)estimates store gmmquietly ivregress gmm lw s expr tenure rns smsa (iq=med kww),igmmestimates store igmmestimates table gmm igmm第八章短面板的stata命令及实例(1)面板数据的设定xtset panelvar timevarencode country,gen(cntry) (将字符型变量转化为数字型变量)xtdesxtsumxttab varnamextline varname,overlay*实例use traffic.dta,clearxtset state yearxtdesxtsum fatal beertax unrate state yearxtline fatal(2)混合回归reg y x1 x2 x3,vce(cluster id)如:reg fatal beertax unrate perinck,vce(cluster state)estimates store ols对比:reg fatal beertax unrate perinck(3)固定效应xtreg y x1 x2 x3,fe vce(cluster id)xi:reg y x1 x2 x3 i.id,vce(cluster id) (LSDV法)xtserial y x1 x2 x3,output (一阶差分法,同时报告面板一阶自相关)estimates store FD*双向固定效应模型tab year, gen (year)xtreg fatal beertax unrate perinck year2-year7, fe vce (cluster state)estimates store FE_TWtest year2 year3 year4 year5 year6 year7(4)随机效应xtreg y x1 x2 x3,re vce(cluster id) (随机效应FGLS)xtreg y x1 x2 x3,mle (随机效应MLE)xttest0 (在执行命令xtreg, re 后执行,进行LM检验)(5)组间估计量xtreg y x1 x2 x3,be(6)固定效应还是随机效应:hausman testxtreg y x1 x2 x3,feestimates store fextreg y x1 x2 x3,reestimates store rehausman fe re,constant sigmamore (若使用了vce(cluster id),则无法直接使用该命令,解决办法详见P163)estimates table ols fe_robust fe_tw re be, b se (将主要回归结果列表比较)第九章长面板与动态面板(1)仅解决组内自相关的FGLSxtpcse y x1 x2 x3 ,corr(ar1) (具有共同的自相关系数)xtpcse y x1 x2 x3 ,corr(psar1) (允许每个面板个体有自身的相关系数)例题:use mus08cigar.dta,cleartab state,gen(state)gen t=year-62reg lnc lnp lnpmin lny state2-state10 t,vce(cluster state)estimates store OLSxtpcse lnc lnp lnpmin lny state2-state10 t,corr(ar1) (考虑存在组内自相关,且各组回归系数相同)estimates store AR1xtpcse lnc lnp lnpmin lny state2-state10 t,corr(psar1) (考虑存在组内自相关,且各组回归系数不相同)estimates store PSAR1xtpcse lnc lnp lnpmin lny state2-state10 t, hetonly (仅考虑不同个体扰动性存在异方差,忽略自相关)estimates store HETONL Yestimates table OLS AR1 PSAR1 HETONL Y, b se(2)同时处理组内自相关与组间同期相关的FGLSxtgls y x1 x2 x3,panels (option/iid/het/cor) corr(option/ar1/psar1) igls注:执行上述xtpcse、xtgls命令时,如果没有个体虚拟变量,则为随机效应模型;如果加上个体虚拟变量,则为固定效应模型。
第五章stata语言初步本章导读:Stata系统最为突出的特点是短小精悍、功能强大,包含了全部的统计分析、数据管理和绘图等功能,尤其是他的统计分析功能极为全面,Stata的命令语句极为简洁明快,而且在统计分析命令的设置上又非常有条理,它将相同类型的统计模型均归在同一个命令族下,而不同命令族又可以使用相同功能的选项,这使得用户学习时极易上手。
而且,Stata语句在简洁的同时又拥有着极高的灵活性,用户可以充分发挥自己的聪明才智,熟练应用各种技巧,真正做到随心所欲。
本章简单介绍stata语言的基本成分与规则,stata语言如何用来管理数据库,stata语言作为作为一个统计计算语言的用法,以及stata过程使用的初步知识。
5.1 Stata语句基本成分与规则构成stata语言的基本单位是stata语句。
每个stata语句包括stata命令、变量,特殊字符、运算符。
5.1.1 Stata变量名除以下字符不能用作变量名外,任何字母、字母与数字(单独的数字也不允许)组合均可用做变量名:_all _b byte _coef _cons double float if in int long _n _N _pi _pred _rc _se _skip using with基本要求如下:_ 第一个字元可以是英文字母或下划线, 但不能是数字;_ 最多只能包括32 个英文字母、数字或下划线;_ 由于STATA 保留了很多以“_ “开头的内部变量,所以最好不要用为第一个字元来定义变量。
5.1.2 Stata变量类型由于stata语言是一种统计计算语言,因此在程序中需要频繁应用数学表达式。
表达式就是把常量、变量、函数调用用运算符、括号连接在一起得到的计算结果。
在表达式中最重要的就是常量和变量。
常量代表固定不变的数,变量则代表具有一定意义、变化的数值。
Stata变量主要有是数值型,字符型和日期型三类。
(1)数值型变量用0、1、2…9 及+、–(正负号)与小数点“(.)”来表示。
在输入数据时,逗号不能被识别,如1,024 应该直接写成1024. 其他示例5,-5,5.2,5.2e+3,5.2e-2后面两个数据为科学计数法的数据,分别表示5200 和0.052,其中的e 相当于10,因此5.2e+3 的意思是:5.2*103=5200数值型变量按其精度区分有五种类型,分别是:1.0000 的精度是不同的,前者在(0.5,1.5)区间内近似,而后者在(0.99995,1.00005)区间内近似。
若多次运算反复取四舍五入,精度较低时将使计算误差迅速变大,然而,精度高时占用的内存资源较多。
下面的命令有助于理解变量存贮类型变换。
(2)字符型变量字符型变量由字母或一些特殊的符号组成(如地名〈籍贯〉变量,迁出地,住址,职业等等)。
字符变量通常是一些身份信息,如姓名,地名。
另外,定类变量也可以用字符变量来表示,如性别分为“男”和“女”。
字符串变量也可以由数字来组成,但数字在这里仅代表一些符号而不再是数字。
字符串变量通常以引号“”注标,而且引号一般不被视同为字符的一部分,注意这里的引号必须是英文输入状态下的引号。
字符串最多可以达244 个字符。
一般用str#来表示字符的多少,如str20表示将有20 个字符。
一般三个中文字的姓名需要6 个字符。
例“String”“string”” string””string ””” //特殊字符串,表示空字符,缺失值。
” ” //注意与空字符串的区别,含有一个空格”125.27” //”125.27”由于有双引号,将被视同为字符而非数值。
“$2,343.68”“I love you”“旺材是条狗”注意前四个字符串均不相同,大小写是不一样的,有无空格及空格的位置不同,都表示不同的字符串。
对于”125.27”这样的数值型的字符串,可以用real()函数或者destring 命令转化成数值型变量。
(3)日期型变量在STATA 中,1960 年1 月1 日被认为是第0 天,因此1959 年12 月31 日为第-1 天,2001 年1 月25 日为15000 天。
例:1999 12 10Jan/10/200110Jan2001...-15,000 --- 01Dec1918-31 ---01Dec1959...-1 --- 31Dec19590 --- 01Jan19601 ---- 02Jan1960...31 ---- 01Feb1960...15,000 ---- 25Jan2001 (4) 缺失值因为stata 是一种数据处理语言,而实际中经常会遇到缺失值,比如没有观测到数值,或者观测值已经丢失等等。
Stata 总用一个单独的小数点”.”表示缺失值。
5.1.3 Stata 的运算Stata 共有四种运算,分别是代数运算、字符运算、关系运算和逻辑运算。
运算符一览表运算的优先序:!(或~),^,-(负号),/,*,-(减),+,!=(或~=),>,<,<=,>=,==,&,| 当不确定优先序的时候,最好用括号将优先序直接表达出来。
● 代数运算包括加(+)、减(-)、乘(*)、除(/),幂(^)和负数(-),当遇到缺失值或者运算不可行时(比如除数为零)均会得到缺失值。
例:求正式的值,若x=4,y=2,显然经过心算,应该为:-1xy y x y x -+-. di –(4+2^(4-2))/(2*4) //di 是display 命令的略写,表示显示结果. di 4-2 //输出2 . di 3*5 //输出15. di 8/2 //8除以2,输出4 . di 2^3 //2的立方,输出8. di –(2+3^(2-3))/sqrt(2*3) //括号运算优先,想一想,结果应为多少? 实际上,更多的情形是两个或多个变量的直接运算。
比如,将进口车的价格都增加100元(可能是关税),而国产车不变。
. sysuse auto, clear. gen nprice=price+foreign*100 . list nprice price foreign● 字符运算加(+)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符将被连成一个字符。
比如把”我爱”“STATA”合并在一起,命令为:. scalar a=”我爱” +“STATA”//要特别注意,引号必须是半角和英文模式. scalar list a //scalar命令将两个字符运算后的结果赋于a,然后显示a. scalar a=2 +“3”//注意到:字符与数值不能直接相加,显示类型不匹配type mismatchr(109);●关系运算关系运算包括大于、小于、等于;不等于、不小于、不大于等多种比较关系。
特别要注意到STA TA中的等于符号为“==”,是两个等号连写在一起,不同于赋值时用的单个等号“=”。
. di 3<5 //输出结果为1,意味着3小于5为真. di 3>5 //输出的结果为0,意味着3大于5为假。
当数据中含有缺失值的时候需要特别小心,因为系统缺失值大于任何一个数据,利用这一点,我们可以使用条件语句排除缺失值。
任务:将年龄分组为65岁以下和65岁及以上两组,缺失值显然不能包括在任何一组中。
. clear. edit将上述数据复制到STA TA中,然后退出数据编辑器。
. gen agegrp1=(age>=65)生成的数据中,将缺失值视为65岁以上分在了高龄组,这是错误的. gen agegrp2=(age>=65) if age<.生成的数据中,将缺失值排除在外,正确!这一命令常被用于生成虚拟变量。
. gen agegrp3=(age==65) if age<. //仅判断是否恰好为65岁. list //比较agegrp1、agegrp2和agegrp3的差异,体会if age<.的作用。
●逻辑运算逻辑运算包括非(!),和(&)、或(|)三种,主要用于条件语句中。
例:列示出价格大于10000元的任何车,或者小于4000元的国产车。
. sysuse auto, clear. list price foreign if price>10000 | price<4000 & forei==0在STATA中,和(&)优先于或(|),因此上述命令与下面的命令等价:. list price foreign if price>10000 | (price<4000 & forei==0)试一试下面的命令,这里列示的是国产车中价格高于10000元或者低于4000元的车。
. list price foreign if (price>10000 | price<4000) & forei==05.2 stata用作一般高级语言Stata是一种专用的数据处理、统计计算语言,但是它也包括一般的高级语言变成能力并扩充了许多数学、统计等方面的函数。
本节介绍stata语言用来进行一般编程计算的功能,即介绍一些常用的数据处理的命令。
stata语句命令有以下的格式:[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]注:[ ]表示可有可无的项,显然只有command 是必不可少的,下面结合例子分项来讲解命令的各个组成部分。
5.2.1 改变变量名rename old_varname new_varnameold_varname是原变量名,new_varname是新变量名。
例1 将表示年份的变量yr更名为year,则可以编写程序:rename yr year5.2.2生成新变量generate newvar = exp [if exp] [in range]newvar是生成的新变量,exp是由现有变量生成新变量的算术或逻辑表达式,[if exp] 和[in range]指定对哪些观测计算新变量值。
例2,generate age2 = age*age (新变量age2等于age的平方),例3,generate return =0.2 >ret>-1& ret~=. /*若return大于-1小于0.2且不缺失,则新变量return 为1,否则为0generate bh=_n /* 将数据库的内部编号赋给变量bh。
generate group=int((_n-1)/5)+1 /* 按当前数据库的顺序,依次产生5个1,5个2,5个3……。
直到数据库结束。