4_变量的生成与处理_第1页
4_变量的生成与处理_第2页
4_变量的生成与处理_第3页
4_变量的生成与处理_第4页
4_变量的生成与处理_第5页
已阅读5页,还剩45页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章变量的生成与处理,导论,Stata对数据的处理是以变量为前提的若没有需要分析的变量,则Stata将一无用处熟悉变量的内容和分布、生成新变量、改变旧变量等是处理数据的第一步,本章主要内容,4.1.变量的测量水平(measurements)4.2.新变量的生成、规则及注意事项4.3利用系统变量或下划线变量生成新变量4.4生成字符型变量4.5生成数值型变量4.6生成分类变量4.7生成虚拟变量,4.8.Egen命令(ExtendedGenerate)4.9日期变量(DateVariables)4.10变量类型的更换4.11给数据、变量和变量的属性贴标签(labeldata,labelvariab

2、le;labeldefine)4.12重新命名变量4.13变量的格式4.14生成随机数,4.1.变量的测量水平(measurements),离散和连续测量离散方式(discretemeasure):由定性测量和定序测量组成;适用于低层次数据连续方式(continuousmeasure):由定距测量和定比测量组成。适用于高、低层次数据在这四种测量中,层次从高到低的排序依次是:定性、定序、定距和定比,定性和定序测量,定性测量(nominalmeasure):变量的属性具有完备性和排他性特征,是表达概念特征的名称或标签,描述属性之间的差异。有别于定序、定距和定比测量性别,政治党派,民族,宗教流派,出

3、生地,等等定序测量(ordinalmeasure):描述变量属性的相对程度或排行序列,但数值之间的差别既无法确定、也无意义:社会经济地位的高、中、低教育程度的文盲、小学、初中、高中和大学非常同意、同意、一般、不同意、非常不同意,定距和定比测量,定距测量(intervalmeasure):变量的属性可以按顺序排列;相邻属性之间的距离是相等且有实际意义的华氏温度计。30度和40度之间的距离等于50度和60度之间的距离“0”没有意义。华氏的60度并不是30度的一倍,零度并不意味着没有温度,零下30度也不等于比没有热度低30度。摄氏温度计的原理也是如此定比测量(ratiomeasure)连续测量。数值

4、之间的距离是连续的、等距离的可描述前面三种测量提到过的属性以真实的“0”为基础,“0”有意义。如:“0”岁表示孩子刚出生;“0”收入表示没有任何收入。与定距测量的主要区别在于“0”的意义的有无,区分变量测量水平的意义,统计程序的需要:每一种统计程序都基于一定的假设和条件有些统计程序(如,%或众数)适用于所有类型数据;其他统计程序(如,均值、标准偏差、相关关系)仅适用于定距或定比数据某些统计程序稳健,即便一些基本的假定被违反,分析结果也不受影响;另一些统计程序的假定一旦被违反,其结果就变得无意义对定性数据,计算均值毫无意义模型选择的需要:数据形式和变量的测量直接影响到模型的选择一般情况下,最好是

5、收集高层次的数据。高层次数据可转换为低层次数据,4.2.新变量的生成、规则及注意事项,Stata的变量类型,Stata软件生成三类变量:numeric(数值型)变量,string(字符型)变量(相当于定性变量)和date(日期)变量。虽然日期变量以数值型变量的技术记录、存储,但二者的用途却不同数值型变量包括定距和定比变量。可以是整数、小数、负数和正数。数值型变量可以有多种存储方式(StorageTypes)用str类型保存的定性等分类变量也可区分为多种形式,从str1-str244,Stata的日期变量,日期(date)变量是数值型变量的一个特例。它们通常以字符的形式输入(如:01JAN199

6、2or01/01/92),但必须以数值型数据存储才能有用Stata有几个命令可以工作于日期和时间依赖(time-dependent)数据Stata将所有的日期保存为从1960年1月1日以来的天数或月份、季节等。此前的日期是负值,此后的是正值。SAS使用同样的日期方式,但其起始时间是1582年的10月14日。Excel使用1900年1月1日为默认起始日。如果读入Excel数据,则以字符型变量输入日期,并重新格式日期,生成变量的路径,DataCreateorchangevariables,生成变量的窗口,DataCreateorchangevariablesCreatenewvariable,基本

7、命令,Stata有四个基本的生成和修改变量的命令:gen、egen、replace和recode.gen和egen分别是generate和extendedgenerate的缩写,它们用于生成新变量.replace和recode用来改变现存变量的属性或数值.replace需要与gen一起使用;二者的区别在于,gen用于生成新变量,replace用于重新定义已经存在的变量.recode也可以与gen一起使用,基本语法,.gen变量名=表达式1.replace变量名=表达式2if条件:生成新变量或替代现存变量取值的基本命令:新变量或其取值将被替换的变量的名称:在gen命令的取值不同于在replace

8、命令的取值:替换原有变量的取值必须满足if指定的条件,*yrofschoolingrecoded(这是一个注释;*代表注释)genedu=0replaceedu=1ifyrsch=11replaceedu=2ifyrsch=12replaceedu=3ifyrsch=13replaceedu=4ifyrsch=14replaceedu=5ifyrsch=15replaceedu=6ifyrsch=16replaceedu=7ifyrsch=21replaceedu=8ifyrsch=22replaceedu=9ifyrsch=23,replaceedu=10ifyrsch=24|yrsch=2

9、7replaceedu=11ifyrsch=25|yrsch=28replaceedu=12ifyrsch=26|yrsch=29replaceedu=13ifyrsch=31replaceedu=14ifyrsch=32replaceedu=15ifyrsch=33replaceedu=16ifyrsch=34replaceedu=17ifyrsch=35replaceedu=18ifyrsch=36replaceedu=.ifyrsch=.|yrsch=-9tab1yrschedu*查看变量的生成是否成功,变量生成的规则(I),生成新变量、重新定义旧变量时需遵循的一些基本规则:变量的名称可

10、长达32个字符,必须以字母、汉字或字符(,_,#,$等)开头(不能使用空白字符或!、?等特殊字符)。变量最后一个字符不能是句号变量的名称必须唯一,不能有两个相同的变量名Stata区分大小写,对大写、小写敏感:Variable不能写成variable,反之亦然使用描述性的变量名字:“变量a”这个名称没有任何意义。调查问题是变量名称的很好选择,变量生成的规则(II),字符型变量的取值属性置于双引号中;其取值在Intercooled版本可多达80个字符,在SpecialEdition版本可达244个字符。超过该极限的字符都被自动舍去数值型变量的缺失值用一个实心小圆点(.)或在26个字母前加一个实心小

11、圆点(如.a,.b,.c,.z)表示。后者属于延伸(extended)缺失值,对Refused(拒绝回答)或NotApplicable(不适用)进行编码时十分有用字符型变量的缺失值以双引号表示,引号中什么也没有。但这与空白不是一回事在Stata中,缺失值被默认为大于正数的最大值;在使用if条件从句和排序数据时尤为重要,变量生成的注意事项,尽量避免使用同一变量名称。换言之,不要使用新变量取代旧变量。保持原始变量有助于检验我们的命令是否正确充分了解原始变量的分布以及每个数值代表的含义遵循不重不漏(exhaustiveandmutuallyexclusive)原则(详见“生成分组变量”一节)在变量生

12、成后,将原始变量和新变量的取值进行对比,检查是否有误注意原始变量的缺失值,4.3利用系统变量或下划线变量(_n和_N)生成新变量Stata有几个下划线变量(_variables,读为“underscorevariables”),因包含下划线而得名。这类变量并不出现在Stata的Variables(变量)窗口中,故又称系统变量。其中,经常使用的有_n和_N。系统变量_n和_N对于数据的管理和处理十分有用,尤其是与特殊选项by同时使用时,系统变量_n,_n是指当前的观察值,即独一无二的观测序号,从1到_N(_N=总样本)_n是Stata系统内部独特的辨识器,标志从第一个观察值开始直到最后一个观察值

13、(_N)的序列_n=1为第一个观测,_n=2为第二个观测,_n=_N是最后一个观测该系统变量适于(1)指示观察值;(2)生成系列数值;(3)生成其他变量,使用系统变量_n指示观察值,系统变量_n表示每个观察值的位置(numberingobservations)。其原则是:当前观察值:_n总观察值(最后一个观察值_n):_N第一个观察值:1最后一个观察值:_N滞后一个(lag)观察值:_n-1前移一个(lead)观察值:_n+1第27个观察值:27,假如现有以下数据:+-+|provincepersonidhomesizeagegirlsiblings|(省份)(个人ID)(家庭规模)(年龄)(

14、女孩)(姊妹数量)|-|1.|212106018504505girl1|2.|35350515410310018boy0|3.|3232050937032468boy0|4.|373708156203609boy0|5.|454452082404206girl3|6.|3535011173052513girl2|7.|4545260576069010girl3|8.|323209163903252boy0|9.|373702093304687boy1|10.|3737040575038020boy3|+-+现在想看看每个孩子在省内的排序,使用系统变量_n生成新变量,步骤1:对province(

15、即“关键变量”)进行排序.sortprovince步骤2:生成感兴趣的变量.byprovince:genorder=_n:按province的分类进行排序和计算:生成新变量的基本命令:新变量的名称:新变量的取值等于同一province内观察值的序次步骤3:使用频数分布查看生成的结果是否正确.taborder,使用系统变量_N生成新变量,系统变量_N代表样本总数。最后一个样本_n即是_N使用前面的数据,看看每个省共有几个孩子在样本中步骤1:对province进行排序步骤2:生成感兴趣的变量。其命令是:.byprovince:genceb=_N步骤3:查看结果正确与否.tabceb,生成滞后(la

16、g)变量或移前变量(lead),在分析某些类型数据(包括常用的家庭成员数据和纵向数据)的过程中,常常需要根据研究问题将一个样本的取值转移到上一个(或下一个)观察值中.gena=b_n-1.gena=b_n+1:需要生成的新变量的名称:现有变量的名称:将现有变量的取值下移一行(_n-1)或前移一行(_n+1)的基本命令,.gena=age_n-1(1missingvaluegenerated).genb=age_n+1(1missingvaluegenerated).list+-+|provincepersonidhomesizeagegirlsiblingsorderab|-|1.|21210

17、6018504505girl11.2|2.|323209163903252boy0158|3.|3232050937032468boy02218|4.|35350515410310018boy01813|5.|3535011173052513girl22189|10.|4545260576069010girl326.|+-+,使用系统变量_n或_N检查重复样本,可利用系统变量_n和_N的滞后和前移功能,检查数据中是否存在重复样本第一步:对关键变量(ID)进行排序第二步:使用_n或_N将该ID的数值下置一行,如果下置的数值与当前ID相等的话,则该样本是重复样本在纵向数据中,一个样本可以有多个记录

18、。比如,如果调查共进行了四次,则一个样本最多可有四个记录。这时,我们需要同时利用样本编码(ID)和调查时间为依据,找出重复样本,4.4.生成字符型变量的命令,假如需要生成一个“男孩”的字符型变量:.genboy=nanhai在字符型变量中,“=”后面表达式的内容需置于双引号中并不是每个样本都是男孩,故需替代上述命令的部分结果.replaceboy=nvhaiifgirl=1命令replace与if条件句相结合,改变变量的取值。当变量girl的取值为1时,将变量boy的取值替换为nvhai,其他值不变定义缺失值.replaceboy=noneifboy=,4.5生成数值型变量,使用recode,

19、gen命令生成新变量,.recode原变量(原变量取值=新变量取值)*=其他取值,gen新变量:给变量重新赋值的命令:现有变量的名称:现有变量的取值:新变量的取值;和是一个整体:*符号表示所有其他没有列出的数值,包括缺失值;recode与gen之间有逗号(,)隔开:生成新变量的命令:新变量的名称,以本章数据中的变量“yrsch”为例。前面使用genreplace的方法在“yrsch”的基础上生成变量“edu”;现在使用另一种简便的方法生成“edu”由于变量edu已经存在,首先需要删除该变量:.dropedu.recodeyrsch0=011=112=213=314=415=516=621=72

20、2=823=92427=102528=112629=1231=1332=14*=.,gen(edu)该命令在原变量yrsch的基础上生成一个新变量(edu)新变量对原变量的取值重新编码。原变量照旧保存着若无gen(edu)部分,则仅取代原有变量的取值,使用数学表达式生成新变量,任何有效的数学表达式在生成变量时都适用。既可以是加、减、乘、除的单独表达式,也可以是混合表达式:.gena=b+c+d加法:将变量b,c,d的数值累加起来,生成新变量a.gena=b-c减法:将变量b的数值减去变量c的数值,得到变量a.gena2=a*a乘法:该命令生成新变量a2;a*a是axa的表达方式.gendoub

21、lea=b/c除法:用变量b的数值除以变量c的数值,得到新变量a。该变量定义为double类型.gena=b/(c2)新变量a的取值等于变量b的取值除以变量c取值的平方,生成分组变量:不重原则,不重是指每组之间必须相互排斥(mutuallyexclusive)。每个观察到的样本必须且只能有一个编码。比如:若一个孩子目前是10岁,他就不可能同时是11岁在一个数据中,样本的受教育年限从0-18年。现需要将其分为4组:文盲和小学(06)、初中(79)、高中(1012)、大学及以上(13)。若将教育程度划分成了0-7年、7-9岁、10-12年、13年以上的话,则受过7年教育的样本被同时包括在两个组中,

22、违反了不重的原则,生成分组变量:不漏原则,不漏是指详尽分类(exhaustiveness)。新变量的类别应该包括数据中的每个观察(observation)样本“婚姻状态”通常被分为在婚、从未结过婚、离婚和丧偶。该分类可能违反了不漏的原则,若调查数据中有同姓婚姻的话。解决方法之一是增加“其他”选项,包括其他类型婚姻若“同姓婚姻”是研究的重点,或具有理论上重要性的话,“其他”分类就不合适了教育数据中,若将教育划分为0-5年、7-9年、10-12岁、13年及以上,则受过6年教育的样本就被遗漏了,4.6生成分类变量,*agegroup.genagegrp=0.replaceagegrp=1ifage=

23、0&age=5&age=10&age=15.replaceagegrp=.ifage=.egenagegrp=cut(age),at(0,5,10,15,20),4.6,4.7生成虚拟变量(dummy,dichotomousvariable),方法1,.gen新变量名=b限制条件:生成新变量的基本命令:新变量名:旧变量名:当b满足某种条件时,生成新变量比如:.genxiaoxue=edu7或.genxiaoxue=edu=6或.genbytexiaoxue=edu7或.genbytexiaoxue=edu6,方法2,.gen变量名1if取值为1的限制条件.replace(变量名0if取值为0的

24、限制条件比如:.genxiaoxue=1ifedu=7若edu大于或等于7,则xiaoxue等于0.replacexiaoxue=.ifedu=.若edu等于.,则xiaoxue等于.(缺失),方法3,虚拟变量往往是根据某(几)个已知变量的取值生成的.tab已知变量名,gen新变量名基于某个已知变量,生成一组虚拟变量虚拟变量的数目因已知变量的分类而异若现存变量有两个取值,则生成两个虚拟变量若现存变量有三个取值,则生成三个虚拟变量若现存变量有n个取值,则生成n个虚拟变量新生成的虚拟变量有相同的前缀,也就是新变量名,但尾缀相异,由已知变量名的取值决定,4.8.egen命令(ExtendedGene

25、rate),Egen是Stata最强大、最有用的命令之一。与generate一样,该命令用于生成新变量,但其功能远胜于此其特点之一是拥有强大的函数功能虽然gen可以支持一些函数,但egen支持额外的函数。egen可以实现许多gen难以达到的目的。比如新生成的变量的取值是另一个变量每个类别的均值(如,男性和女性的收入均值).egen还可以通过计算另一个变量符合某种特征的数值或某些观察值来生成新变量,使用egen生成分类变量,.egen新变量名=cut旧变量名,at旧变量取值的下限:生成新变量的命令参数:生成的新变量名称:按照指定的取值下限分割旧变量;函数cut在将数值型数据分解成分类变量的时候非

26、常有用,将一个连续变量的数值按照选项at()的具体值将该变量分成几类;at()指名每个组群的最小值:旧变量名:现有变量取值的下限,假如有以下数据:Age|Freq.PercentCum.-+-2|110.0010.005|110.0020.006|110.0030.007|110.0040.008|110.0050.009|110.0060.0010|110.0070.0013|110.0080.0018|110.0090.0020|110.00100.00-+-Total|10100.00,现将该连续变量生成一个分类变量:.egenagegrp1=cut(age),at(2,7,13,21)该命令生成分类变量agegrp(年龄组)新变量包含三组26岁712岁1320岁,使用egen计算描述性统计量(I),.egena_mean=mean(a),by(b):生成一个均值的变量:生成均值的命令的一部分:按照变量b的分类生成均值该命令生成的变量是按变量b的分类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论