社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt

上传人:laozhun 文档编号:2909455 上传时间:2023-03-02 格式:PPT 页数:88 大小:682KB
返回 下载 相关 举报
社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt_第1页
第1页 / 共88页
社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt_第2页
第2页 / 共88页
社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt_第3页
第3页 / 共88页
社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt_第4页
第4页 / 共88页
社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt》由会员分享,可在线阅读,更多相关《社会统计分析与数据处理技术(Stata)5 数据的合并与转换.ppt(88页珍藏版)》请在三一办公上搜索。

1、第五章 数据的分组、合并与转换,本章主要内容,5.1数据合并的类型和原理5.2纵向合并(append)增加样本量5.3横向合并(merge)增加变量5.4数据的转换5.5数据的分组5.6数据的集合,5.1数据合并的类型和原理,内容相似的独立调查:城乡;性别不同层次、不同年份的调查母亲的数据与子女的数据低层数据的高层特征,为什么需要合并数据,一个内容相同或类似的调查分别在城、乡进行,或在男性和女性间进行。数据也在不同地方由不同人员录入。若需比较城乡之间、性别之间在某些方面的差异,最好的方法之一就是将城乡样本合二为一,将男性和女性样本合二为一个体居住的社会环境可能影响他们的日常生活和行为。越来越多

2、的社会调查除了关注个体本身的差异外,也开始关注他们的生存环境,包括家庭和社区背景等。家庭寓于社区中,个人寓于家庭中。数据分析时,需要将分别录入的数据合并成包括不同层次、不同内容的数据,数据合并的类型,增加观察值(即样本量):纵向合并若有一个城市儿童数据和一个农村儿童数据,二者的内容基本相同可进行独立分析或整合后作为整体样本的次样本分析增加变量:横向合并若有一个社区数据和一个家庭数据,家庭寓于社区中,若想将二者合二为一,从而使家庭数据包含社区的基本特征,则需将数据进行横向合并,数据合并的窗口路径,数据合并的几个主要概念,主要数据(Master dataset):指当前在Stata界面的数据,又称

3、当前数据(current dataset)、窗口数据或记忆空间数据使用数据(using dataset):指当前不在Stata界面、但行将被合并到当前数据的数据,也称辅助数据。该名词主要用于数据的合并关键变量(Key variables),也称标识符(identifiers)或合并变量(match variables):横向合并的专有词汇,用来合并两个数据的变量。该变量必须同时存在于主要数据和使用数据中,且在使用前必须排序。主要变量可以是一个,也可以是两个或多个,扩大记忆空间的容量,由于合并数据将增加当前数据的观察值或(和)变量,扩大数据的占用空间,故在进行合并前,首先要确定是否有足够的记忆空

4、间允许数据的合并否则,可能遇到错误提示Caution!Merging and appending both add data to the data already in Statas memory.It is easy to ask Stata to put more data in memory than youve allowed room for.Add together the sizes of all the files you want to merge or append before you combine them,clear and set memory if neces

5、sary,then combine the files.If not,you may get the message No room to add more variables/observations.,5.2纵向合并(append)增加样本量,原理,将保存在某个盘符中的stata数据文件的内容追加到当前数据窗口的后面,生成一个新数据在绝大部分的纵向合并中,用于两个数据库的格式和变量基本类似,但观察值却未必一样观察值可以是独立的,来自于同一调查的不同样本,也可能不是完全独立的,来自于不同调查时间的相同样本合并后,数据的变量基本不变,但观测个案增加了该方法可以将两个或多个数据文件进行上下对接,

6、简单明了,不易出错,方法,窗口路径DataCombine datasetsAppend datasets(纵向合并数据的对话框),命令,.append using 使用数据的路径和名称:纵向合并数据的基本命令:使用数据的路径和名称(目前记忆空间的数据是主要 数据)也可以只读入使用数据中的部分变量.append using 使用数据的路径和名称,keep变量名:在合并使用数据时,只保留keep后面指定的变量,几点说明(I),使用纵向合并的场合纵向追踪调查内容相同的调查在不同地区由不同人群完成几点说明:无需排序数据,因为无需按照任何标识符(identifier)进行各并,而只是将两个数据上下对接到

7、一起进行纵向合并时,Stata的log文件往往提示说,标签已经定义了。可以忽略,几点说明(II),不同数据中,内容相同的变量需要有同样的名称。故在合并以前,分别描述数据:若两个文件的变量相同、名称也相同,合并后,新文件的变量数应该与合并前任何一个数据的变量数目一致若每个文件都有一些独特的变量,但相同变量的名称是一样的,则新文件的变量数应该多于合并前任何一个数据的变量数(keep)若每个文件的变量数目相同、变量包含的内容也相同,但变量的名称却不同,合并后,变量数目也会多出来,且需给内容相同、但名称不同的变量更名,5.3横向合并(merge)增加变量,场合,不同层次数据:母亲(或家庭或社区)与儿童

8、数据母亲是儿童的母亲,家庭是儿童的家庭,社区是儿童居住的社区不同层次数据合并;低层次数据寓于高层次数据中配对数据:妻子与丈夫、兄弟姊妹同层数据合并纵向追踪调查:不同时期的调查数据大部分不同时期的调查对象是相同的可以是单层次、也可以是不同层次数据的合并,以调查的内容而异其它场合,原理,从一个数据库中提取一些变量到另一个数据库中,故横向合并也就是变量的合并将盘符文件的内容连接到当前数据编辑窗口的右边,形成新数据新数据的变量增加,但观察个案可以不变实际上是将两个数据文件,按照个案对应进行左右对接实现数据文件的横向合并的前提是,主要数据和使用数据必须有一个(或多个)相同的关键变量横向合并中,除关键变量

9、外,其它变量的名称都不能相同若两个数据包含其它的同名变量,则使用数据中的变量数值将被主要数据的同名变量数值取代,窗口路径,Data Combine datasets Merge two datasets(Merge multiple datasets)对话框及其解释One-to-one on key variables(利用关键变量进行一对一的合并)One-to many on key variables(unique key for data in memory)(利用记忆空间的关键变量进行一对多的合并)Many-to-one on key variables(unique key for

10、data on disk)(利用使用数据的关键变量进行一对多的合并)One-to-one by observation(一对一观察值的合并),选项对话框,Keep the following variables:(If not specified,all variables are kept)Specify name of new variable to mark result of merge:Do not copy value lable definition from fileDo not copy notes from fileReplace missing data in memor

11、y with data from fileReplace nonmissing data in memory with data from fileDrop observations in dataset on disk that do not match第1、3、4项都与append命令下的选项相同;其它几项是merge命令独特的选项,横向合并与纵向合并的异同,横向数据合并的基本命令是merge。利用该命令,将新变量添加到当前数据中与append 命令一样,在合并数据前,首先需要有足够的记忆空间,承载新增加的内容注意:横向数据合并中,主要数据和使用数据都必须按照主要变量进行排序,否则合并无法

12、进行,还会得到错误的提示,纵向数据合并无需对哪个变量进行排序横向数据合并需要关键变量,纵向数据合并无需关键变量.append将两个变量类似、但观察个案不同的数据整合在一起;.merge将具有不同变量的两个数据整合在一起,横向合并的第一步,先看使用数据:.use 文件路径名称 打开使用数据库.sort 关键变量将关键变量进行排序,该变量是两个数据库共有的标识符.save 文件路径名称,replace 保存并关闭已经按关键变量排序的使用数据库,横向合并的第二步,再看主要数据:.use 文件路径名称 打开主要数据库.sort 关键变量对关键变量进行排序.merge 关键变量 using 文件路径名称

13、,keep 变量关键变量即为sort后面的变量;利用该变量匹配两个数据文件名是盘符数据库的名字keep选项,横向合并的基本选项,.merge 关键变量A 关键变量B using 文件路径和名称.merge 关键变量 using 文件路径和名称,update.merge 关键变量 using 文件路径和名称,update replace.merge 关键变量 using 文件路径和名称,nokeepunique,uniqmaster,uniqusing,系统变量 _merge,当Stata 合并文件时,软件自动生成系统变量_merge该变量有取值,因是否使用update 或replace 选项而

14、异根据取值,可以了解合并的结果:1=观察值仅来自于主要数据,使用数据没有匹配的数据 2=观察值仅来自于使用数据,主要数据没有匹配的数据3=观察值来自主要数据和使用数据,且数值匹配4=观察值来自主要数据和使用数据,且主要数据的缺失值得到更新5=观察值来自于主要数据和使用数据,但两个数据的数值不匹配,一对一合并(one-to-one on key variables),.merge husbid using I:statahhwk_husb00.dta,unique,一对多合并(One-to-many on key variables)(1)使用数据分布情况,一对多合并(One-to-many o

15、n key variables)(2)主要数据分布情况,.merge mothid using“I:stataru_merge.dta”,uniqmastervariable mothid does not uniquely identify observations in F:stataru_merge.dta,多对一合并(Many-to-one on key variables)(unique key for data on disk),.merge mothid using I:statamuqin_merge,uniqusing variable mothid does not uni

16、quely identify observations in the master data,一对多 vs.多对一,一对一观察值的合并(One-to-one by observation),.merge using data2,注意事项:同名变量,除标识符外,两个数据中的变量名称不能相同;否则,使用数据变量的数值将被主要数据中同名变量的数值所取代。这样既达不到增加变量的目的,还会混乱数据在行将合并的数据中,同样的变量内容需要有不同的名称熟悉、了解主要数据和使用数据。若有重名变量,则新生成的数据变量比两个数据加起来的变量少(除关键变量外),注意事项:合并后的变量数目,数据合并后,新数据的变量必须

17、增加。新数据具体有多少变量因两个原始数据中变量的数目而异也因合并数据过程中读入的变量数目而异但合并后的数据无疑会比主要数据和使用数据有更多变量若主要数据和使用数据各有5个变量,在合并数据的过程中,也没有限定读入的变量,且只有一个关键变量,则新数据将有9个变量(=5+5-1),注意事项:合并后的样本量,在一对一的配对合并中,合并后的数据样本量因原始数据样本量的多寡而异也因合并方式而异但通常不会少于主要数据的样本量若使用数据中的观察值与主要数据不完全匹配的话,则会出现多余的样本量,注意事项:_merge变量,在合并数据的过程中,系统自动生成_merge变量当合并完成后,可删除_merge变量删除_

18、merge变量一则是因为该变量已经没有什么用处了,再则在以后的某个时间,我们也可能将新生成的数据与另一个文件合并在新一轮的合并中,Stata又会产生一个_merge变量若原先的_merge变量没有删除的话,则Stata拒绝执行新的合并命令,且输出一个错误的提示,提示_merge已经存在,注意事项:unique,uniqmaster,uniqusing选项,选项unique:只能用于使用关键变量的一对一的合并中。有时会得到下面的错误提示:variable mothid does not uniquely identify observations in the using datar(459);

19、(mothid在使用数据中不是独一无二的)一对多的合并可以使用uniqmaster 选项;多对一的合并可以使用uniqusing选项。即便不使用选项,也会得到以下提示:variable mothid does not uniquely identify observations in the using datavariable mothid does not uniquely identify observations in the master data,注意事项:样本的取舍,.keep if _merge=3或.drop if _merge=1|_merge=2(N observatio

20、ns deleted)这样实际上是去掉了两个原始数据中不匹配的观察值。剩余的观察值就是在两个文件中都有的,注意事项:重复值(I),合并后的数据是否有重复的观察值?(注意:若一个高层数据与低层数据合并如儿童数据与母亲数据合并则对兄弟姊妹来说,母亲的ID一定是重复的。)查找重复值的方法:方法一:使用list _n-1命令.sort kidid.list kidid if kidid=kidid_n-1 若有输出结果,则有重复值;否则无注意,若某个变量有一个以上的缺失值,则从第二个缺失值开始,它们被当作是重复的,注意事项:重复值(II),方法二:使用assert命令.bysort kidid:ass

21、ert _N=1按照kidid 的分组,检查_N=1的命题正确与否对于每个kidid,必须有一个、且只能有一个观察值1 contradiction in 15 by-groupsassertion is falser(9);(在15个by分类中,有一个与上面的命题不符)(命题不正确),注意事项:重复值(III),方法三:使用duplicates report命令提供一个表格,描述观察值出现的次数,是否有重复值.duplicates report kididDuplicates in terms of kidid-copies|observations surplus-+-1|14 0 2|2

22、1-14个数据(surplus等于0);一个数值出现两次,注意事项:重复值(IV),方法四:使用isid命令,检查关键变量是否独一无二地区分每个观察值.isid kididvariable kidid should never be missingr(459);(变量kidid永远不应该是缺失的)这是一个错误提示。当该变量不缺失、但数据中存在重复观察值时,得到的将是:variable id does not uniquely identify the observationsr(459);相反,若没有重复观察值,则该命令不会有任何输出结果,注意事项:重复值(V),方法五:使用tab命令.tab

23、 kidid,m该方法如同list一样,当数据的观察值不多时,很好使用,但若观察值太多,则是耗时耗力的,即便不是毫无结果的,两个或多个关键变量的合并,一个标识符通常就可代表一个观察值,但有时需要两个甚至多个标识符才能代表一个观察值。比如,有一个不同社区的个体数据。于是,有一个独一无二的社区标识符(commid),还有一个个体的身份标识符(personid);个体标识符在不同社区可能是同样的。在这种场合,使用commid和personid一起表示独一无二的个体观察值合并数据时需要同时使用这两个关键变量,且使用数据和主要数据都必须按照两个关键变量进行排序。此外,sort后面变量的顺序与merge后

24、面变量的顺序应该是一样的:.sort commid personid.merge commid personid using 使用数据的路径和名称检查commid与personid一起,是否表示同一个观察值:.by commid personid:assert _N=1,多个数据的合并(I),数据1(主要数据).use ds1.sort id.save ds1,replace数据2:.use ds2.sort id.save ds2,replace,数据3:.use ds3.sort id.save ds3,replace数据4:.use ds4.sort id.save ds4,replac

25、e,从第8版开始,Stata一次可以合并两个或多个数据假如有四个数据:ds1,ds2,ds3,ds4。其基本步骤:,多个数据的合并(II),回到主数据(数据1):.use ds1.sort id.merge id using ds2 ds3 ds4.tabulate _merge.list id _merge*merge*中的*符号表示,列出所有_merge变量的频数分布这是因为,在合并多个数据时,Stata自动生成一组描述性变量。这组变量都以_merge命名,分别称为_merge1,_merge2,_merge3等。它们分别与第一个using数据、第二个using数据、第三个using数据相

26、关mergek=0:相应的使用数据没有的观察值 mergek=1:相应的使用数据拥有的观察值,5.4数据的转换,社会科学多以人为研究对象。由于个体寓于家庭等群体中,也由于群体环境对个体行为有着深刻影响,故大部分的社会调查收集家庭成员资料两种录入格式;两类不同的数据结构:宽数据(wide format)长数据(long format)相异的录入方式不会使数据的内容产生任何差异,但对不同结构的数据而言,研究对象和内容、分析单位是不同的纵向调查数据来自的不同的年份。当将每期调查数据整合在一起的时候,其结构同样可以表现为长格式或宽格式 出于研究的需要,常常对原有的数据结构进行转换,宽数据(wide f

27、ormat)结构(I),第一列:变量HHID(即家庭户的标识符;对每个家庭来说,它是独一无二的);四个家庭户,分别称为1001,1002,1003,1004第二列第五列:变量age01-age04(家庭第一到第四个成员的年龄)每个家庭成员的数量不尽相同:1-4;取值的缺失在这样的数据格式中,即便一个家庭有10个成员,也只有一个观察值(或样本);同样,如果一个家庭仅有一个成员,它也有一个观察值多变量数据,长数据(long format)结构,一个家庭有多个观察值。具体观察值的个数因被调查的家庭成员的多寡而异比如,若一个家庭有10个成员,则该家庭有10个观察值;若一个家庭只有一个成员,则该家庭仅有

28、一个观察值多观察值数据,长、宽数据比较,记录同样的内容,仅表现形式不同可相互转换转换数据结构是出于研究的需要当研究问题是家庭、分析单位也是家庭时,数据结构必须是以家庭为单位的宽格式,每个家庭有一个、且只能有一个观察值若研究问题是儿童、分析单位也是儿童时,数据的结构必须是以儿童为单位的长格式。每个儿童有一个独立的观察值,但同一个家庭可能有多个观察值,数据转换的菜单窗口,Stata的数据转换的菜单路径和窗口:Data Create or change variables Other variable transformation commands Convert data between wide

29、 and long 对话框:四种数据的转换方式:(1)从宽数据到长数据(2)从长数据到宽数据(3)回到长数据(4)回到宽数据命令reshape需要以下资料才能运行:变量i;变量j,变量x_ij,从长到宽的基本命令,.reshape wide 转换的变量,i观察值的标识符 j次标识符:将长数据转换为宽数据的命令:一组变量的共同前缀,即x_ij的x,指定希望转换的变量名称。在前面提到的家庭户数据中,需要转换的变量为age:选项i及括号内的变量一起,指定观察值的标识符,或取值独一无二、代表每个逻辑观察值的变量。在家庭户数据中,每个家庭构成一个逻辑观察值:选项j及括号内的变量一起,指定观察值的次标识符

30、,或在每个逻辑观察值中,其独一无二的取值代表每个次观察的变量。在家庭户数据中,次观察即每个家庭中的个体。它也告诉Stata,在生成新变量的时候,使用哪个原有变量的取值,从宽到长的基本命令,.reshape long 变量名称,i观察值的标识符 j次标识符:将宽数据转换为长数据的命令:根据次标识符指定的、有共同主干、但不同尾缀的一组变量,生成一个新变量:同前:变量j代表次标识符,在数据中已经存在,是生成新变量的依据没有在reshape命令中指定的变量对同一个i变量的取值而言,其取值也必须是同样的(相当于对话框中的Note:All other variables should be constan

31、t within ID),5.4.2将长数据转换成宽数据使用的数据:E:stataChapter5_reshape.dta,熟悉数据的基本情况与结构,Contains data from I:statachild04_reshape.dta obs:2,108 vars:6 22 Nov 2006 16:58 size:65,072(93.8%of memory free)-storage display valuevariable name type format label variable label-age byte%8.0g age in 2004girl byte%8.0g gir

32、l in 2004,0=boy-1=girlkidid double%13.0g children id in 2004mothid double%13.0g mother id in 2004order float%9.0g yob int%8.0g year of birth in 2004-Sorted by:kidid,数据共有2108个观察值,6个变量:母亲的标识符(mothid)儿童的标识符(kidid)儿童的年龄(age)性别(girl)胎次(order)yob(出生年),数据的结构,儿童数据。每个儿童都有一个独立的观察值和独一无二的标识符;相反,母亲的标识符却是可以重复的,出现

33、的频次因孩子的多寡而异那么,样本中一共有多少位母亲?每位母亲最多有几个孩子在样本中?有助于判断数据转换结果是否正确如何获得这两方面的信息,.list in 2090/2099+-+|mothid kidid age yob girl order|-|2090.|52240301781 52240301782 0 2004 0 1|2091.|52240306202 52240306281 3 2001 0 1|2092.|52240308102 52240308103 8 1996 0 1|2093.|52240308102 52240308104 3 2001 0 2|2094.|52240

34、400502 52240400506 17 1987 0 1|-|2095.|52240401302 52240401307 15 1988 1 1|2096.|52240401581 52240401582 0 2003 0 1|2097.|52240404102 52240404103 9 1995 0 3|2098.|52240404102 52240404104 7 1997 1 2|2099.|52240404102 52240404161 4 2000 1 1|+-+,第一个问题:母亲的数量,.sort mothid.by mothid:keep if _n=1(424 obser

35、vations deleted)按母亲的身份号码分群(by mothid)保留每位母亲的第一个观察值(if _n=1)424个观察值被删除。故数据共有1684位母亲(2108-424),第二个问题:母亲的子女数,.by mothid:gen ceb=_N按mothid的分类,生成一个名为ceb的变量,即母亲的总生育数量变量的取值依赖于mothid出现的总次数,由_N表示,.tab ceb ceb|Freq.Percent Cum.-+-1|1,303 61.81 61.81 2|690 32.73 94.54 3|96 4.55 99.10 4|8 0.38 99.48 5|5 0.24 99

36、.72 6|6 0.28 100.00-+-Total|2,108 100.00,从长数据到宽数据(I),.reshape wide kidid age girl yob,i(mothid)j(order)(note:j=1 2 3 4 5 6):reshape wide命令告诉Stata,将长数据格式转换成宽数据格式:命令参数后面的变量kidid,age,girl即是需要转换的变量:i(mothid)告诉Stata,以mothid为标准进行转换。命令reshape需要一个共同的标识符(ID),利用该标识符将每个孩子指定给他的母亲;将兄弟姊妹指定给同一母亲,从长数据到宽数据(II),.resh

37、ape wide kidid age girl yob,i(mothid)j(order)(note:j=1 2 3 4 5 6):在从长数据转换为宽数据的过程中,需要另一个标识符,表明转换后变量尾缀的取值,也就是给每个新的母亲层次的变量指定一个相应的尾缀本例中,它是由j()来表示的。该命令告诉Stata,按照order的数值给变量kidid,age,girl指定尾缀假若一位母亲有六个孩子,孩子的顺序(order)为1,2,3,4,5,6,则在宽数据中,age将会变成age1,age2,age6。变量后面的尾缀代表每个孩子与兄弟姊妹之间的长幼顺序关系。变量j自动消失,变成了其它变量的后缀,N(

38、by mothid:keep if _n=1);为什么变量数目;kidid1-kidid6,age1-age6,girl1-girl6;变量order自动消失;缺失合并后数据的基本情况(describe)、分布(list),从长到宽:转换后的数据结构特点,观察值减少;变量增加虽然变量增加,但变量名称的主干不变,age还是叫age,girl还是叫girl,kidid还是叫kidid不同的是,在原变量的后面,都增加了1-6的数字尾缀。尾缀1表示第一个孩子,尾缀2表示第二个孩子,以此类推尾缀的取值取决于代表孩子长幼序列的变量j(order);该变量在生成宽格式数据的过程中消失了,取而代之的是新变量的

39、后缀,两类常见的错误,1.缺失值错误标识符变量不能有缺失值。否则,Stata将停止工作,并显示错误。如:当变量j有缺失时:order contains missing valuesr(498);(变量order有缺失值)非常数错误Stata按照指明的变量进行转换,并假定数据中其它变量在同一组群中仅有一个取值,即常数。当该假定不成立时,软件也会停止工作,并输出错误提示.reshape wide kidid age girl,i(mothid)j(order),5.4.3.从宽数据到长数据,从宽数据到长数据(I),.reshape long kidid age girl yob,i(mothid)

40、j(order)(note:j=1 2 3 4 5 6):将数据从宽格式转换为长格式的命令参数:变量kidid,age,girl,yob都是横向数据变量名的主干部分,其后都有1-6的后缀。后缀相当于每个孩子的胎次,第一个孩子的年龄为age1,如此类推;后缀也是每个孩子长幼次序的标识符。若数据中的变量不是主干+数字的格式,最好是先重新定义变量,将其转换为这类格式:按照mothid给每个孩子分组,从宽数据到长数据(II),.reshape long kidid age girl yob,i(mothid)j(order)(note:j=1 2 3 4 5 6):j(order)告诉Stata,按照

41、reshape long后面变量的后缀,生成名为order的新变量变量j有6个取值(note:j=1 2 3 4 5 6)。若原变量的后缀是1,则order的取值为1,以此类推变量order代表每个孩子与兄弟姊妹的长幼关系,变量名称是任意的这与reshape wide不同,因为在reshape wide命令中,我们必须使用现存的、实际上的确标识母亲每个孩子顺序的标识符现将刚刚转变为宽格式的数据转变回来,从宽到长:命令输出结果,Data wide-long-Number of obs.1684-10104Number of variables 25-6j variable(6 values)-o

42、rderxij variables:kidid1 kidid2.kidid6-kidid age1 age2.age6-age girl1 girl2.girl6-girl yob1 yob2.yob6-yob-从原来的1684个观察值变成了10104个观察值;从原来的25个变量减少到6个变量;生成名为order的新变量原来的xij变量都失去了尾缀,变成了kidid,age,girl,yob,从宽到长:数据基本特征(I),Contains data obs:10,104 vars:6 size:252,600(75.9%of memory free)-storage display value

43、variable name type format label variable label-mothid double%13.0g mother id in 2004order byte%9.0g age byte%8.0g girl byte%8.0g kidid double%13.0g yob int%8.0g-Sorted by:mothid order Note:dataset has changed since last saved,从宽到长:数据基本特征(II),在数据转换的过程中,经过转换的变量的标签都丢失了更为重要的是,宽数据只有1684个观察值,而长数据却出现了10104

44、个观察值。为什么?在宽数据中,一个母亲最多有6个孩子。于是,Stata假定,每个母亲都有6个孩子;reshape long命令以6为基准,给每组mothid各生成6个观察值,代表6个孩子,无论孩子是否存在。因此,新数据的观察值=1684 x 6(即10104)然而,事实上,并不是每个母亲都有六个孩子,大部分母亲只有一个或两个孩子,所以,对绝大部分观察值来说,孩子的数据都是缺失的:,.list+-+|mothid order age girl kidid yob|-|10093.|52240404102 1 9 0 52240404103 1995|10094.|52240404102 2 7

45、1 52240404104 1997|10095.|52240404102 3 4 1 52240404161 2000|10096.|52240404102 4.|10097.|52240404102 5.|10098.|52240404102 6.|10099.|52240404202 1 16 0 52240404203 1988|10100.|52240404202 2 12 0 52240404204 1992|10101.|52240404202 3.|10102.|52240404202 4.|10103.|52240404202 5.|10104.|52240404202 6.

46、|+-+,从宽到长:保留有效数据,由此可见,每位母亲都有6个观察值,但并不是每位母亲都有六个孩子。母亲52240404102有三个孩子;母亲52240404202有两个孩子当孩子缺失的时候,所谓孩子的数据当然也就是无效的。于是,需要剔除无效样本:.keep if kidid!=.或.drop if kidid=.(7996 observations deleted)(只保存kidid 为有效值的样本;共有7996观察值被删除),从宽到长的常见问题,宽数据变量的尾缀不能以0开头的。虽然Stata依旧工作,但其结果却是有问题的假若该数据已经保存为Stata格式数据,现在我们希望将其转变为长数据格式

47、,输入以下命令,得到的结果是:,Data wide-long-Number of obs.4-16Number of variables 5-7j variable(4 values)-pidxij variables:age1 age2.age4-age-正确的情况是,在新数据中,变量的数目应该是3个:hhid,pid,age。为什么是5个呢,从宽到长:常见问题的原因与解决方法,原因:原始数据age变量的尾缀以0开头由于j变量的默认排序从1开始,故在生成变量age时,Stata寻找尾缀为1,2,3,4的变量然而,在原数据中,age的尾缀分别为01,02,03,04,Stata找不到相应的数据

48、故reshape long命令的输出结果提醒说,age1-age4 not found解决方法:事前预防:在数据转换前,将原数据age变量的尾缀替换为1,2,3,4。这是比较省事的方式事后弥补:在数据转换后,使用replace命令,替换age的缺失值,然后再删除变量age01-age04,5.5.数据的分组(group),为什么对数据进行分组,社会科学研究经常分析比较不同人群的特征及其差异,产生差异的原因,以及这些特征对社会行为和结果的影响有人希望探讨地区或城乡之间经济发展的异同有人分析男性和女性收入的差异还有人探究不同年龄的妇女对儿子和女儿的看法研究者还希望分析种种因素对不同人群行为影响的异

49、同在这种情况下,我们往往根据研究问题的需要,区分群体(城乡、地区、性别、年龄等)的组群,并进行比较分析。由于该分组是在系统内定义的,在数据管理器中并不易明确体现,.sort urban.by urban:sum x y z按城乡计算变量x y z的统计量.sort urban girl.by urban girl:sum x y z按城乡和性别计算变量x y z的统计量.sort urban girl region.by urban girl region:sum x y z按城乡、性别和地区计算变量x y z的统计量.sort urban girl region age.by urban g

50、irl region age:sum x y z按城乡、性别、地区和年龄计算变量x y z的统计量.sort urban.by urban:regress y x1 x2 x3按城乡进行回归分析,5.6.数据的集合(Collapse 和 Contract),数据的集合,命令collapse和contract对记忆空间的数据进行集合,生成一个新的高层次数据前者用于生成均值、中位数等统计量的数据后者用于生成频数或比例的数据特别需要注意的是,新生成的数据将会取代记忆空间的数据。因此,若不想取代原数据的话,则在执行该命令之后,应该使用save as的命令 集合数据的窗口,窗口与路径,集合频数或比例的路

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号