数据清洗

第一讲 概述

经验研究的基本流程

选题-文献学习-理论构造-数据管理-数据分析-论文写作-投稿发表

什么是数据管理

我该用什么数据

我从哪些找数据

我怎么去熟悉数据

我如何清洗数据

我怎样发掘数据的根本规律

第二讲 数据管理前的必备工作

所需数据的大概样貌(教育回报)

1.时间:跨期,尽可能新

2.地点:有全国代表性

3.群体:至少包含劳动年龄人口

4.变量:劳动收入、教育程度、常见人口学变量

自己采集数据还是寻找既有数据

1.理想的数据采集和管理需要大量人力、物力、财力

2.优先寻找既有数据

3.实在找不到,再自己采集

思考题

想研究家庭消费的最新决定因素,需要怎样的数据?

选题:因变量-家庭消费

文献学习

理论架构(公式)

包含消费、收入、消费品价格度量、与偏好相关的家庭变量的家庭层面的最新数据

第三讲 常用宏观数据库介绍:国内数据库

官方宏观数据库:国家统计局

商业数据库

第四讲 国际宏观数据库

国际组织

联合国、世界银行、国际货币基金组织

国际学术平台 :

Penn World Table

第五讲 常用微观数据库介绍:综合类及人口类数据库

综合类微观数据库:CGSS(中国人民大学)

CFPS(北京大学)–追踪调查 全国成人及儿童 2010-2018

人口老龄化微观数据库:CHARLS 2011-2015 中老年人

人口流动微观数据库:CMDS 2009-2019

第六讲 常用微观数据库介绍: 社会经济类数据库

教育类微观数据库:CEPS 13/14 14/15(追访)初一初三

健康类微观数据库:CHNS 中国cdc+北卡大学 89-2015 社区、家庭、个人健康营养信息

收支财富类微观数据库 CHFS 11-15 中国家庭的收支和财富类信息

收支财富类微观数据库:CHIP 88-2013(国家统计局)

主管类微观数据库:WVS 各类主管问题 91-2014

第七讲 数据的获取

cgss获取过程

注册-数据-搜索-下载(stata主要、spss)中英文问卷

第八讲 数据的熟悉

为什么要先熟悉数据

熟悉数据的目标

宏观数据的熟悉

1.数据采集的过程

2.定义及统计口径:可比性

3.调查问卷

微观数据的熟悉

通读技术文档

整体信息

抽样设计

数据清洗、变量处理、指标代码等

权重信息(代表性)

精读调查问卷

问卷设计整体信息

以受访者身份回答一遍问卷

不同逻辑跳转均需回答一遍

实时体会受访者心境

第九讲 关键变量信息整理

是什么,为什么

因变量、关键自变量及其他变量

为后续数据合并、清洗和描述做好准备:减负、增效

变量-调查问卷-数据

1.在问卷中找到所需变量对应的问题:多度量

在数据中找到相应题号的变量名称

注意事项:变量调整思路、变量信息增补

关键变量信息整理演示

前九讲小结

1.前期阅读思考:了解数据大概样貌

2.浏览众多数据库:锁定及获取目标数据

3.研读技术文档和问卷:熟悉目标数据

4.整理关键变量信息:为后续数据处理打基础

第十讲 stata基本介绍

Statistics+Data

官网www.stata.com

介绍

界面及模块

数据载入

菜单操作

帮助体系及自学方法

第十一讲 stata编程基础

clear
set more off

  • 载入数据

use “E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta”

  • 分析数据
    summarize classid
    // 这是注释
  • 这是开头注释
    /* 这个也是注释 */

第十二讲 画图

GDP增长率随时间折线图

import excel “E:\BaiduNetdiskDownload\GDP增长率.xlsx”, sheet(“Sheet1”) firstrow
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if yeat<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)


第十三讲 变量提取及数据纵向合并

变量提取:

将所需变量从数据库中提取出来

纵向合并:

不同群体在同一组变量下的数据合并(2010,2015 不同群体,相同的属性调查)

横向合并:

携带不同变量信息的同一群体的整合(统一年份中,不同的数据,家庭,个人,性别)

为什么顺序是重要的:

提取-合并=清洗

提取代码

 * 数据提取的整个过程
 clear 
 set more off
 
 use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta" 
 keep classid assignm  /* 保留数据中两个字段名称*/
 * drop teacher 一样的意义,删除了哪些变量,推荐使用keep、知晓使用了哪些变量
  save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级_修正.dta", replace 
/* 有数据就覆盖*/
 use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级2.dta",clear
 rename 绩点 gpa
  append using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级1.dta"      "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级3.dta"
  save "E:\stata\datas\学分成绩点_所有班级.dta", replace 

第十四讲 横向合并的准备工作:ID唯一性检验

什么是ID?什么是ID的唯一性

识别观测值的变量或变量组合

横截面数据、时间序列数据、面板数据

ID需具有唯一识别性

ID唯一性检验流程

检验参与横向合并数据的ID唯一识别性

观测值的简单重复:删除多余观测值

不同个体错误分享同一ID:删去所有相关观测值

判断属性id是否是主键

isid id

//代码块部分(接着13th.do文件)
 * 去除简单重复值
  duplicates drop 
  // isid id
  
  *删除错误共享id的所有观测值,tag 给属性打标签,用ddd表示变量)
  duplicates tag id,generate(ddd)
  tab ddd
  * 列表出ddd>0的数据
  list if ddd>0
  drop if ddd>0
  isid  id

第十五讲 数据横向合并操作

1对1合并

多对一合并

一对多合并

多对多合并?

样本取舍

横向合并总结

1.判断横向合并类型:1对1,1对多,多对1

2.检验“1”那一方的ID唯一识别性,并做相应处理

3.执行合并,并根据情况处理未匹配样本

第十六讲 数据清洗流程简介

数据概貌-找到数据-熟悉数据-整理和提取关键变量-数据整合-数据清洗-数据描述

数据清洗的流程

1.阅览整体样貌-2.完善变量名及标签-3单变量清洗-4多变量清洗-5变量调整(可能整合,是否汉族,增加变量等等)-6样本筛选和存储-7整理清洗文档

* 4.数据清洗
   * 阅读数据整体样貌
   codebook

第十七讲 完善变量名称和标签

可以是中文或英文

完整单词的缩写,可以回溯到完整单词

stata:rename

变量标签

变量本身的标签:变量含义

变量取值的标签:变量取值含义

stata:label系列命令

des 变量名称都打出来
rename yob biryr 改变名称
help label 查看label 的一系列命令

 //给变量名称biryr打标签 出生年份
  label variable bthyr "出生年份
//先定义一个标签class 并定义值,再将值扔 
  label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
  label values classid class
tab classid 查看
tab classid,nolabel //没有标签查看

第十八讲 数据清洗:单变量清洗(1)

单变量清洗一般步骤

阅览单个变量取值分布:codebook,tab,sum

处理所有单变量错误值

处理所有变量缺失值

处理所有单变量值的极端值

处理错误值

情况一:本身无措,但不能直接用于分析

情况二:本身有错,且知道如何修改

情况三:本身有错,但不知道如何修改

注意区分错误值与极端值

处理缺失值

判断是否本来就应该缺失

对于本不应该缺失的,尽量填补缺失值

填补缺失值:确定性关系;相似性关系

无法填补的,记录缺失比重,分析未缺失样本代表性

处理极端值

在处理完错误值和缺失值之后进行

原则:不改动极端值,生成子样本标识符

根据不同子样本,检查分析结果的稳健性

阅览单个变量取值分布之前。。。

//先打开一个数据
help destring
destring , replace string类型但是是long类型 转换所有数字类型的变量
destring v2,replace ignore(",")
destring v3,replace force//(强制运行)
destring v3,generate(v3_temp) force //(string类型-数字型转换过来以及转换不过来变为缺失值)
list v3 if v3_temp == . 缺失值//发现数值录入的时候有空格
destring v3,replace ignore(" ")//一定要复制过来 //转变过来了
drop v3_temp//删除临时变量


   * 4.数据清洗
   * 阅读数据整体样貌
   codebook
   
   * 完善变量名称及标签
   /* des 看变量名称*/
   //修改yob 变为bthyr 意思更直观出生日期
  rename yob bthyr
  
  //给变量名称biryr打标签 出生年份
  label variable bthyr "出生年份"
  label variable height "身高(厘米)"
  
  //先定义一个标签class 并定义值,再将值扔 
  label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
  label values classid class
  
  *单变量清洗:处理错误值
  replace bthyr  = . if bthyr <1900
  replace height =height*100 if height<3
  replace gpa=. if gpa>4
  
  
  
  *单变量清洗:处理缺失值
  *确定性关系
  replace year =2015 if year ==.
  replace age=year-bthyr if age==.
  replace bthyr=year-age if bthyr==.
  
  * 近似插值 适用于随机缺失的,由内生决定机制的变量
  *确定是否是随机缺失的一般方法:生成是否缺失的二元0-1变量,拿它对研究对象特征进行回归,看自变量系数是否统计
  *参数方法:GPA=a=b+年龄+c*性别+d+班级+______.将参数关系套用再GPA缺失的个体身上
  *非参数方法:利用年龄、性别、班级——分组计算GPA的统计指标,再做填补
  
  save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta", replace 
  collapse gpa,by(age gender classid)
  drop if classid==.|gender==""|age==.
  rename gpa avggpa
  merge 1:m classid gender age using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta"
  gen missgpa=(gpa==.)
  
  replace gpa =avggpa if gpa ==.
  drop _merge avggpa

第十九讲 多变量清洗

易被忽略的多变量清洗

每个变量都正确,不意味着整个数据没问题

变量之间的联合分布是否正确?

变量之间的联合分布是否正确

变量之间的数量关系是否正确

变量之间的联合分布

某些变量之间的联合分布需要满足既定规律

跳转关系带来的分布规律:是否有工具和工资额度

变量之间的数量关系

某些变量之间的数值需要满足既定关系

变量之间的等式关系:总收入与收支各分项

变量之间的不等式关系:老大的年龄与老二的年龄

多变量清洗步骤

遍历每种变量组合,思考其中是否存在必然联系

检查特定分布或数量关系是否成立

如不成立:其他信息辅助判读;主观判断;同时处理

由此带来的新缺失值可以进行填补处理

第二十讲 变量调整、数据筛选及存储

变量调整

变量清洗干净后,不见得是后续分析需要的形态

既有变量取值转换:分类调整、尺度转换

新变量的生成

数据筛选:

变量筛选、样本筛选

选择样本筛选的合适方式

为什么此时进行数据筛选?

stata:drop

数据存储操作

切莫覆盖原始数据

注意存储版本

第二十一讲

数据清洗:文档整理及论文展示

是什么,为什么

系统性展示数据清洗的逻辑、过程及结果的文档

便于自己再检查数据清洗流程

便于合作者或指导老师了解数据清洗全程

便于后续论文写作

数据清洗文档的结构和内容

做了什么

为什么做

样本变动:改动、删除等操作设计的样本量

样本整体统计:样本量、删除率、改动率、缺失率

在论文中展示数据清洗

论文:数据部分=数据介绍+数据清理介绍+数据描述

正文:数据结构改变+关键变量调整+重要样本筛选+结果

附录:数据清洗详细步骤;可复制性

多学习、总结文献的做法

查看各属性缺失stata代码

misstable sum

结果


. misstable sum
                                                               Obs<.
                                                +------------------------------
               |                                | Unique
      Variable |     Obs=.     Obs>.     Obs<.  | values        Min         Max
  -------------+--------------------------------+------------------------------
           age |         2                 998  |      5         18          22
         bthyr |         2                 998  |      5       1993        1997
        height |         1                 999  |     34        152         187
          male |         1                 999  |      2          0           1
  -----------------------------------------------------------------------------

第二十二讲 第二十三讲 实操以cgss为例

/*
教育回报随时间变迁研究
数据清洗程序

*/
clear 
set more off
cd "E:\stata\datas" //当前数据路径
* 1.提取关键变量
* 提取2005 年关键变量
use cgss2005.dta,clear   //载入2005年数据
keep qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05 //保留关键变量
gen year=2005 //生成调差年份变量 ///表示命令还没完,注意间距加个空格
* 统一名称
ren (qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05) ///
    (totinc educ gender  bthyr ethn    prov region  wgt)
save cgss2005_ss.dta,replace

use cgss2010_14.dta ,clear
keep a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT
gen year = 2010
ren (a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT) ///
   (totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2010_ss.dta,replace
   
   
use "cgss2015_14.dta",clear
keep  a8a a8b a7a a7b a2 a301 a4 s41 s1 weight //保留关键变量
gen year = 2015
ren (a8a a8b a7a a7b a2 a301 a4 s41 s1 weight) ///
   (totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2015_ss.dta,replace

* 数据的纵向合并
append using cgss2005_ss.dta cgss2010_ss.dta


****3数据清洗******
* 阅读整体样貌
codebook

*完善变量标签
label var region "城乡"
label var prov "省份"
label var gender "性别"
label var bthyr "出生年份"
label var ethn "民族"
label var educ "最高教育程度"
label var grad "教学状态"
label var totinc "去年个人总收入"
label var year  "调查年份"


*lab list s1lab 查看标签s1lab
* tab region ,nolabel 

* 完善变量值标签
lab val prov qs2a

* 单变量清洗
replace bthyr =. if bthyr<0  //将取负值的出生年份替换成缺失值
replace ethn =. if ethn<0 //将负值的民族替换成缺失值
replace educ = . if (educ <0 | educ ==23 ) & year==2005 //将2005年教育中的负值或其它替换为缺失值
replace educ =.  if(educ <0 | educ ==14 ) & (year==2010 | year ==2015) //将2010或者2015年教育中的负值或其它替换为缺失值
replace grad = . if grad<0 //将2010年或2015年就学状态中的负值替换成缺失值
replace totinc = . if totinc >=9999996 | totinc <0  //将总收入当中的原缺失值和负值替换成缺失值
replace wrkinc = . if totinc >=9999996 | totinc <0 //将职业入当中的原缺失值和负值替换成缺失值



第二十四讲 数据描述简介

是什么?为什么

系统展示系统后数据的描述性统计指标

承上:检验数据是否可靠

启下:系统展示数据初始形态和规律

启下:发掘新的研究话题

数据描述展示工具

图+表

第一步:明确数据描述的内容是什么

第二步:根据变量形态和研究需要设计图标样式

第三步:用软件去实现图表的绘制

数据描述中的权重

当数据描述旨在推断总体特征时,使用权重信息

取值分布:展示未加权和加权结果

统计指标:展示加权结果

参考文献:what are we weighting for

数据描述中的权重:fw

表示某条观测值在数据中重复的次数,只能为正整数

aw

表示某条数据来自多少条原始观测值,可等比例调整大小 10个人平均成绩80.5 按照比例

pw

表示某条数据被抽中概率的倒数

iw

自行判断哪种重要

help weight

第二十五讲 数据描述-因变量描述

描述内容

因变量取值分布:频数分布

取值分布:频率分布

集中趋势指标:均值、中位数

离散趋势指标:方差、标准差、极值…

设计图表:截面数据

因变量取值分布:分布图

取值分布:分布表,每行一值,连续vs离散

统计指标:表格,每列一个指标,集中+离散

设计图表:时间序列数据

因变量随时间变化趋势图:原始时间尺度

趋势图:整合后的时间尺度

趋势图:图上标注重要统计指标

混合截面或面板数据

因变量:所有时间点的分布图叠加

取值分布:每表一指标,每行一值,每列一个时间点

统计指标:每表一指标,每列一个时间点

* 教育回报随时间变迁研究
* 数据描述程序


** 因变量数据描述
** 因变量取值分布描述
 tab totinc_grp year if sample, col //未加权的取值分布(频数+频率)
 tab totinc_grp year if sample [aw=wgt] ,col //加权的取值分布(频数)
 /* tabstat mean range */
 tabstat totinc if sample  [aw=wgt] ,s(mean median sd range) by (year) //加权的统计指标
 
 ///分布图命令
 twoway kdensity totinc if sample & year == 2005 ||  ///
        kdensity totinc if sample & year == 2010 ||  ///
		kdensity totinc if sample & year == 2015,    ///
		legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
//加权		
 twoway kdensity totinc if sample & year == 2005 ||  ///
        kdensity totinc if sample & year == 2010 ||  ///
		kdensity totinc if sample & year == 2015,    ///
		legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
hepl putexcel
findit putexcel
//tab 命令出来的数据,我们可以直接复制到excel中

第二十六讲 自变量

调整一些范围及原因
//两者调换了位置 先清洗在进行生成新样本
**多变量清洗
 recode totinc wrkinc (nonm=.)  if totinc < wrkinc & wrkinc !=.

 //定义样本:总收入不超过一百万的样本
gen sample = (totinc <= 1000000) if totinc != . //总收入效于100w的话,sample=1
label var sample "总收入不超过一百万的样本标识"
//考虑更正
 //对总收入进行分组(便于后续描述)
   gen totinc_grp =   min(int(totinc/4000),4) if totinc !=. //对收入不为空的情况进行判别 缺失值大于任何数
    lab define incgrp 0 "<4000" 1 "4000-8000" 2 "8000-12000" 3 "12000-16000" 4 ">16000" 
   lab val totinc_grp incgrp

第二十七讲 因变量与关键自变量联合描述

描述内容

因变量与关键字变量联合取值分布:频数分布

取值分布:频率分布

因变量集中趋势指标随关键字变量的变化:均值、中位数。。。

离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、

设计图表:混合截面或面板数据

联合取值分布:每个时间点一幅散点图,可叠加

取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值

统计指标:每表一指标,每行一自变量值,每列一个时间点

统计指标:可画图

第二十八讲 因变量与关键字变量异质性描述

因变量与关键自变量的关联如歌随第三方变量变化

异质性是经验研究的精髓之一

描述内容

因变量与第三方变量联合取值分布:频数分布

取值分布:频率分布

因变量集中趋势指标随关键字变量的变化:均值、中位数。。。

离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、

设计图表:混合截面或面板数据

联合取值分布:每表一个时间点一个指标,每行一个自变量值,每列一个第三方变量值

取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值

统计指标:每表一指标,每行一自变量值,每列一个第三方变量取值,表中填因变量统计指标

第二是九讲 数据描述:文档整理及论文展示

Excel 文件中的众多表格

首先需要检查结果是否有异常

从冰山到冰山一角

论文展示

同等条件下,图胜于表

同一内容,可正文用途,附录放表

图标的一般要求:标题、附注、“自我解释”

图标的各自要求:图—标识、视觉效果;表—结构层次、小数

第三十讲 数据管理总结及后续工作

流程图:参考第一讲

数据清洗的流程 :参考第一讲

数据描述的流程:因变量描述、关键自变量描述、其他自变量描述、因变量自变量关联

关联的异质性、解读修正、整合图表

数据管理的注意事项

谋定后动,耐心细心

顺序很重要

一定要编程

做好文档工作

数据管理后的工作

另开新程序进行数据分析

随时调整清洗内容,逐一对照描述结果

论文中数据管理内容的写作

整理好所有文档备用

第一讲 概述

经验研究的基本流程

选题-文献学习-理论构造-数据管理-数据分析-论文写作-投稿发表

什么是数据管理

我该用什么数据

我从哪些找数据

我怎么去熟悉数据

我如何清洗数据

我怎样发掘数据的根本规律

第二讲 数据管理前的必备工作

所需数据的大概样貌(教育回报)

1.时间:跨期,尽可能新

2.地点:有全国代表性

3.群体:至少包含劳动年龄人口

4.变量:劳动收入、教育程度、常见人口学变量

自己采集数据还是寻找既有数据

1.理想的数据采集和管理需要大量人力、物力、财力

2.优先寻找既有数据

3.实在找不到,再自己采集

思考题

想研究家庭消费的最新决定因素,需要怎样的数据?

选题:因变量-家庭消费

文献学习

理论架构(公式)

包含消费、收入、消费品价格度量、与偏好相关的家庭变量的家庭层面的最新数据

第三讲 常用宏观数据库介绍:国内数据库

官方宏观数据库:国家统计局

商业数据库

第四讲 国际宏观数据库

国际组织

联合国、世界银行、国际货币基金组织

国际学术平台 :

Penn World Table

第五讲 常用微观数据库介绍:综合类及人口类数据库

综合类微观数据库:CGSS(中国人民大学)

CFPS(北京大学)–追踪调查 全国成人及儿童 2010-2018

人口老龄化微观数据库:CHARLS 2011-2015 中老年人

人口流动微观数据库:CMDS 2009-2019

第六讲 常用微观数据库介绍: 社会经济类数据库

教育类微观数据库:CEPS 13/14 14/15(追访)初一初三

健康类微观数据库:CHNS 中国cdc+北卡大学 89-2015 社区、家庭、个人健康营养信息

收支财富类微观数据库 CHFS 11-15 中国家庭的收支和财富类信息

收支财富类微观数据库:CHIP 88-2013(国家统计局)

主管类微观数据库:WVS 各类主管问题 91-2014

第七讲 数据的获取

cgss获取过程

注册-数据-搜索-下载(stata主要、spss)中英文问卷

第八讲 数据的熟悉

为什么要先熟悉数据

熟悉数据的目标

宏观数据的熟悉

1.数据采集的过程

2.定义及统计口径:可比性

3.调查问卷

微观数据的熟悉

通读技术文档

整体信息

抽样设计

数据清洗、变量处理、指标代码等

权重信息(代表性)

精读调查问卷

问卷设计整体信息

以受访者身份回答一遍问卷

不同逻辑跳转均需回答一遍

实时体会受访者心境

第九讲 关键变量信息整理

是什么,为什么

因变量、关键自变量及其他变量

为后续数据合并、清洗和描述做好准备:减负、增效

变量-调查问卷-数据

1.在问卷中找到所需变量对应的问题:多度量

在数据中找到相应题号的变量名称

注意事项:变量调整思路、变量信息增补

关键变量信息整理演示

前九讲小结

1.前期阅读思考:了解数据大概样貌

2.浏览众多数据库:锁定及获取目标数据

3.研读技术文档和问卷:熟悉目标数据

4.整理关键变量信息:为后续数据处理打基础

第十讲 stata基本介绍

Statistics+Data

官网www.stata.com

介绍

界面及模块

数据载入

菜单操作

帮助体系及自学方法

第十一讲 stata编程基础

clear
set more off

  • 载入数据

use “E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta”

  • 分析数据
    summarize classid
    // 这是注释
  • 这是开头注释
    /* 这个也是注释 */

第十二讲 画图

GDP增长率随时间折线图

import excel “E:\BaiduNetdiskDownload\GDP增长率.xlsx”, sheet(“Sheet1”) firstrow
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if yeat<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)


第十三讲 变量提取及数据纵向合并

变量提取:

将所需变量从数据库中提取出来

纵向合并:

不同群体在同一组变量下的数据合并(2010,2015 不同群体,相同的属性调查)

横向合并:

携带不同变量信息的同一群体的整合(统一年份中,不同的数据,家庭,个人,性别)

为什么顺序是重要的:

提取-合并=清洗

提取代码

 * 数据提取的整个过程
 clear 
 set more off
 
 use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta" 
 keep classid assignm  /* 保留数据中两个字段名称*/
 * drop teacher 一样的意义,删除了哪些变量,推荐使用keep、知晓使用了哪些变量
  save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级_修正.dta", replace 
/* 有数据就覆盖*/
 use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级2.dta",clear
 rename 绩点 gpa
  append using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级1.dta"      "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级3.dta"
  save "E:\stata\datas\学分成绩点_所有班级.dta", replace 

第十四讲 横向合并的准备工作:ID唯一性检验

什么是ID?什么是ID的唯一性

识别观测值的变量或变量组合

横截面数据、时间序列数据、面板数据

ID需具有唯一识别性

ID唯一性检验流程

检验参与横向合并数据的ID唯一识别性

观测值的简单重复:删除多余观测值

不同个体错误分享同一ID:删去所有相关观测值

判断属性id是否是主键

isid id

//代码块部分(接着13th.do文件)
 * 去除简单重复值
  duplicates drop 
  // isid id
  
  *删除错误共享id的所有观测值,tag 给属性打标签,用ddd表示变量)
  duplicates tag id,generate(ddd)
  tab ddd
  * 列表出ddd>0的数据
  list if ddd>0
  drop if ddd>0
  isid  id

第十五讲 数据横向合并操作

1对1合并

多对一合并

一对多合并

多对多合并?

样本取舍

横向合并总结

1.判断横向合并类型:1对1,1对多,多对1

2.检验“1”那一方的ID唯一识别性,并做相应处理

3.执行合并,并根据情况处理未匹配样本

第十六讲 数据清洗流程简介

数据概貌-找到数据-熟悉数据-整理和提取关键变量-数据整合-数据清洗-数据描述

数据清洗的流程

1.阅览整体样貌-2.完善变量名及标签-3单变量清洗-4多变量清洗-5变量调整(可能整合,是否汉族,增加变量等等)-6样本筛选和存储-7整理清洗文档

* 4.数据清洗
   * 阅读数据整体样貌
   codebook

第十七讲 完善变量名称和标签

可以是中文或英文

完整单词的缩写,可以回溯到完整单词

stata:rename

变量标签

变量本身的标签:变量含义

变量取值的标签:变量取值含义

stata:label系列命令

des 变量名称都打出来
rename yob biryr 改变名称
help label 查看label 的一系列命令

 //给变量名称biryr打标签 出生年份
  label variable bthyr "出生年份
//先定义一个标签class 并定义值,再将值扔 
  label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
  label values classid class
tab classid 查看
tab classid,nolabel //没有标签查看

第十八讲 数据清洗:单变量清洗(1)

单变量清洗一般步骤

阅览单个变量取值分布:codebook,tab,sum

处理所有单变量错误值

处理所有变量缺失值

处理所有单变量值的极端值

处理错误值

情况一:本身无措,但不能直接用于分析

情况二:本身有错,且知道如何修改

情况三:本身有错,但不知道如何修改

注意区分错误值与极端值

处理缺失值

判断是否本来就应该缺失

对于本不应该缺失的,尽量填补缺失值

填补缺失值:确定性关系;相似性关系

无法填补的,记录缺失比重,分析未缺失样本代表性

处理极端值

在处理完错误值和缺失值之后进行

原则:不改动极端值,生成子样本标识符

根据不同子样本,检查分析结果的稳健性

阅览单个变量取值分布之前。。。

//先打开一个数据
help destring
destring , replace string类型但是是long类型 转换所有数字类型的变量
destring v2,replace ignore(",")
destring v3,replace force//(强制运行)
destring v3,generate(v3_temp) force //(string类型-数字型转换过来以及转换不过来变为缺失值)
list v3 if v3_temp == . 缺失值//发现数值录入的时候有空格
destring v3,replace ignore(" ")//一定要复制过来 //转变过来了
drop v3_temp//删除临时变量


   * 4.数据清洗
   * 阅读数据整体样貌
   codebook
   
   * 完善变量名称及标签
   /* des 看变量名称*/
   //修改yob 变为bthyr 意思更直观出生日期
  rename yob bthyr
  
  //给变量名称biryr打标签 出生年份
  label variable bthyr "出生年份"
  label variable height "身高(厘米)"
  
  //先定义一个标签class 并定义值,再将值扔 
  label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
  label values classid class
  
  *单变量清洗:处理错误值
  replace bthyr  = . if bthyr <1900
  replace height =height*100 if height<3
  replace gpa=. if gpa>4
  
  
  
  *单变量清洗:处理缺失值
  *确定性关系
  replace year =2015 if year ==.
  replace age=year-bthyr if age==.
  replace bthyr=year-age if bthyr==.
  
  * 近似插值 适用于随机缺失的,由内生决定机制的变量
  *确定是否是随机缺失的一般方法:生成是否缺失的二元0-1变量,拿它对研究对象特征进行回归,看自变量系数是否统计
  *参数方法:GPA=a=b+年龄+c*性别+d+班级+______.将参数关系套用再GPA缺失的个体身上
  *非参数方法:利用年龄、性别、班级——分组计算GPA的统计指标,再做填补
  
  save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta", replace 
  collapse gpa,by(age gender classid)
  drop if classid==.|gender==""|age==.
  rename gpa avggpa
  merge 1:m classid gender age using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta"
  gen missgpa=(gpa==.)
  
  replace gpa =avggpa if gpa ==.
  drop _merge avggpa

第十九讲 多变量清洗

易被忽略的多变量清洗

每个变量都正确,不意味着整个数据没问题

变量之间的联合分布是否正确?

变量之间的联合分布是否正确

变量之间的数量关系是否正确

变量之间的联合分布

某些变量之间的联合分布需要满足既定规律

跳转关系带来的分布规律:是否有工具和工资额度

变量之间的数量关系

某些变量之间的数值需要满足既定关系

变量之间的等式关系:总收入与收支各分项

变量之间的不等式关系:老大的年龄与老二的年龄

多变量清洗步骤

遍历每种变量组合,思考其中是否存在必然联系

检查特定分布或数量关系是否成立

如不成立:其他信息辅助判读;主观判断;同时处理

由此带来的新缺失值可以进行填补处理

第二十讲 变量调整、数据筛选及存储

变量调整

变量清洗干净后,不见得是后续分析需要的形态

既有变量取值转换:分类调整、尺度转换

新变量的生成

数据筛选:

变量筛选、样本筛选

选择样本筛选的合适方式

为什么此时进行数据筛选?

stata:drop

数据存储操作

切莫覆盖原始数据

注意存储版本

第二十一讲

数据清洗:文档整理及论文展示

是什么,为什么

系统性展示数据清洗的逻辑、过程及结果的文档

便于自己再检查数据清洗流程

便于合作者或指导老师了解数据清洗全程

便于后续论文写作

数据清洗文档的结构和内容

做了什么

为什么做

样本变动:改动、删除等操作设计的样本量

样本整体统计:样本量、删除率、改动率、缺失率

在论文中展示数据清洗

论文:数据部分=数据介绍+数据清理介绍+数据描述

正文:数据结构改变+关键变量调整+重要样本筛选+结果

附录:数据清洗详细步骤;可复制性

多学习、总结文献的做法

查看各属性缺失stata代码

misstable sum

结果


. misstable sum
                                                               Obs<.
                                                +------------------------------
               |                                | Unique
      Variable |     Obs=.     Obs>.     Obs<.  | values        Min         Max
  -------------+--------------------------------+------------------------------
           age |         2                 998  |      5         18          22
         bthyr |         2                 998  |      5       1993        1997
        height |         1                 999  |     34        152         187
          male |         1                 999  |      2          0           1
  -----------------------------------------------------------------------------

第二十二讲 第二十三讲 实操以cgss为例

/*
教育回报随时间变迁研究
数据清洗程序

*/
clear 
set more off
cd "E:\stata\datas" //当前数据路径
* 1.提取关键变量
* 提取2005 年关键变量
use cgss2005.dta,clear   //载入2005年数据
keep qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05 //保留关键变量
gen year=2005 //生成调差年份变量 ///表示命令还没完,注意间距加个空格
* 统一名称
ren (qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05) ///
    (totinc educ gender  bthyr ethn    prov region  wgt)
save cgss2005_ss.dta,replace

use cgss2010_14.dta ,clear
keep a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT
gen year = 2010
ren (a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT) ///
   (totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2010_ss.dta,replace
   
   
use "cgss2015_14.dta",clear
keep  a8a a8b a7a a7b a2 a301 a4 s41 s1 weight //保留关键变量
gen year = 2015
ren (a8a a8b a7a a7b a2 a301 a4 s41 s1 weight) ///
   (totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2015_ss.dta,replace

* 数据的纵向合并
append using cgss2005_ss.dta cgss2010_ss.dta


****3数据清洗******
* 阅读整体样貌
codebook

*完善变量标签
label var region "城乡"
label var prov "省份"
label var gender "性别"
label var bthyr "出生年份"
label var ethn "民族"
label var educ "最高教育程度"
label var grad "教学状态"
label var totinc "去年个人总收入"
label var year  "调查年份"


*lab list s1lab 查看标签s1lab
* tab region ,nolabel 

* 完善变量值标签
lab val prov qs2a

* 单变量清洗
replace bthyr =. if bthyr<0  //将取负值的出生年份替换成缺失值
replace ethn =. if ethn<0 //将负值的民族替换成缺失值
replace educ = . if (educ <0 | educ ==23 ) & year==2005 //将2005年教育中的负值或其它替换为缺失值
replace educ =.  if(educ <0 | educ ==14 ) & (year==2010 | year ==2015) //将2010或者2015年教育中的负值或其它替换为缺失值
replace grad = . if grad<0 //将2010年或2015年就学状态中的负值替换成缺失值
replace totinc = . if totinc >=9999996 | totinc <0  //将总收入当中的原缺失值和负值替换成缺失值
replace wrkinc = . if totinc >=9999996 | totinc <0 //将职业入当中的原缺失值和负值替换成缺失值



第二十四讲 数据描述简介

是什么?为什么

系统展示系统后数据的描述性统计指标

承上:检验数据是否可靠

启下:系统展示数据初始形态和规律

启下:发掘新的研究话题

数据描述展示工具

图+表

第一步:明确数据描述的内容是什么

第二步:根据变量形态和研究需要设计图标样式

第三步:用软件去实现图表的绘制

数据描述中的权重

当数据描述旨在推断总体特征时,使用权重信息

取值分布:展示未加权和加权结果

统计指标:展示加权结果

参考文献:what are we weighting for

数据描述中的权重:fw

表示某条观测值在数据中重复的次数,只能为正整数

aw

表示某条数据来自多少条原始观测值,可等比例调整大小 10个人平均成绩80.5 按照比例

pw

表示某条数据被抽中概率的倒数

iw

自行判断哪种重要

help weight

第二十五讲 数据描述-因变量描述

描述内容

因变量取值分布:频数分布

取值分布:频率分布

集中趋势指标:均值、中位数

离散趋势指标:方差、标准差、极值…

设计图表:截面数据

因变量取值分布:分布图

取值分布:分布表,每行一值,连续vs离散

统计指标:表格,每列一个指标,集中+离散

设计图表:时间序列数据

因变量随时间变化趋势图:原始时间尺度

趋势图:整合后的时间尺度

趋势图:图上标注重要统计指标

混合截面或面板数据

因变量:所有时间点的分布图叠加

取值分布:每表一指标,每行一值,每列一个时间点

统计指标:每表一指标,每列一个时间点

* 教育回报随时间变迁研究
* 数据描述程序


** 因变量数据描述
** 因变量取值分布描述
 tab totinc_grp year if sample, col //未加权的取值分布(频数+频率)
 tab totinc_grp year if sample [aw=wgt] ,col //加权的取值分布(频数)
 /* tabstat mean range */
 tabstat totinc if sample  [aw=wgt] ,s(mean median sd range) by (year) //加权的统计指标
 
 ///分布图命令
 twoway kdensity totinc if sample & year == 2005 ||  ///
        kdensity totinc if sample & year == 2010 ||  ///
		kdensity totinc if sample & year == 2015,    ///
		legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
//加权		
 twoway kdensity totinc if sample & year == 2005 ||  ///
        kdensity totinc if sample & year == 2010 ||  ///
		kdensity totinc if sample & year == 2015,    ///
		legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
hepl putexcel
findit putexcel
//tab 命令出来的数据,我们可以直接复制到excel中

第二十六讲 自变量

调整一些范围及原因
//两者调换了位置 先清洗在进行生成新样本
**多变量清洗
 recode totinc wrkinc (nonm=.)  if totinc < wrkinc & wrkinc !=.

 //定义样本:总收入不超过一百万的样本
gen sample = (totinc <= 1000000) if totinc != . //总收入效于100w的话,sample=1
label var sample "总收入不超过一百万的样本标识"
//考虑更正
 //对总收入进行分组(便于后续描述)
   gen totinc_grp =   min(int(totinc/4000),4) if totinc !=. //对收入不为空的情况进行判别 缺失值大于任何数
    lab define incgrp 0 "<4000" 1 "4000-8000" 2 "8000-12000" 3 "12000-16000" 4 ">16000" 
   lab val totinc_grp incgrp

第二十七讲 因变量与关键自变量联合描述

描述内容

因变量与关键字变量联合取值分布:频数分布

取值分布:频率分布

因变量集中趋势指标随关键字变量的变化:均值、中位数。。。

离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、

设计图表:混合截面或面板数据

联合取值分布:每个时间点一幅散点图,可叠加

取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值

统计指标:每表一指标,每行一自变量值,每列一个时间点

统计指标:可画图

第二十八讲 因变量与关键字变量异质性描述

因变量与关键自变量的关联如歌随第三方变量变化

异质性是经验研究的精髓之一

描述内容

因变量与第三方变量联合取值分布:频数分布

取值分布:频率分布

因变量集中趋势指标随关键字变量的变化:均值、中位数。。。

离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、

设计图表:混合截面或面板数据

联合取值分布:每表一个时间点一个指标,每行一个自变量值,每列一个第三方变量值

取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值

统计指标:每表一指标,每行一自变量值,每列一个第三方变量取值,表中填因变量统计指标

第二是九讲 数据描述:文档整理及论文展示

Excel 文件中的众多表格

首先需要检查结果是否有异常

从冰山到冰山一角

论文展示

同等条件下,图胜于表

同一内容,可正文用途,附录放表

图标的一般要求:标题、附注、“自我解释”

图标的各自要求:图—标识、视觉效果;表—结构层次、小数

第三十讲 数据管理总结及后续工作

流程图:参考第一讲

数据清洗的流程 :参考第一讲

数据描述的流程:因变量描述、关键自变量描述、其他自变量描述、因变量自变量关联

关联的异质性、解读修正、整合图表

数据管理的注意事项

谋定后动,耐心细心

顺序很重要

一定要编程

做好文档工作

数据管理后的工作

另开新程序进行数据分析

随时调整清洗内容,逐一对照描述结果

论文中数据管理内容的写作

整理好所有文档备用

  • 13
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值