本文介绍作者根据自己经验教训所总结的关于数据分析研究的注意点。意在记录心得,不求编写教程。有些地方较为个人化,仅供参考。内容根据作者的积累持续更新。
一、存放和记录
每一个项目建立文件夹,用项目的简称、英文缩写或自己喜欢的名称命名。文件夹内设置模块子文件夹,包括程序、数据、文献、草稿、结果、展示、会议、投稿等。如果更新较多,各个子文件夹中又可根据时间设立文件夹,如程序部分,如果每次运行不仅一个程序(比如有一个main file,同时又调用多个函数),可以建立projdo202107和projdo202207文件夹。
建立一个Readme.txt (.doc)文件,作为日志。记录每一次的任务目标、完成情况。写明最近的文件,比如两个程序Aproject202109a.do和Aproject202110b.do,一方面从命名上可以看出先后,但最好在日志文件中写明最新版是哪个文件(万一时间最近的版本的结果不不如早期的结果,而最近一次是用了较早日期的程序,又忘了更新)。
及时(每隔几秒或几分)就保存,不要随意点看冒出的链接,以免正在创作的程序或文章被覆盖。
二、数据
注意保存数据来源:包括链接、查找方式(以防下次链接失效),更具体地,包括网站名、网站地址、登录时的用户名和密码、依次要点击哪些标题、进入查找页面后选择哪些变量下载、时间的频率和范围、个体的单位和范围(国家、省、市、区县、家庭、个人、事件)。
变量要加标签或注释(在程序中或设立一个txt/excel/word文件),否则时久忘记变量含义。
开始处理数据前,原始数据与新数据尽量分开放。以免新数据覆盖原始数据或新生成的文件太多,以后调用原始数据时不好找到;或长时间搁置项目,再处理时忘了原始数据的名称。
三、编程
程序开头设置好路径,这样导入数据时就不用写太长的路径字符串,生成的结果也会自动保存入路径文件夹。
遇到较难的bug,在解决后要写好解决方法。下次遇到同样的问题时就不用再想了。以STATA为例,在使用merge、duplicates drop等语句时,它们常常会随机选取样本,造成每次整理样本统计数据不一样,对结果影响可大可小。基本解决思路是逐步运行,发现“杂重复值”(确切含义是:在一些变量下是重复的,但在另一些变量下是不重复的,从而导致样本结果老是变),全部删除或更改。另外,merge中的“keep(match) nogenerate”容易删掉太多样本,在生成最终样本之前,尽量保留多的样本,到最后一步再删除,或不删除而代之以if条件或交给软件自动忽略掉缺失值。nogenerate可代之以drop if _merge == 2 \\\ drop _merge(“\\\”表示换行)。
四、结果
分步进行,拆大为小。既要敢于前进,又要勤于回顾(这两句适用于几乎所有研究的重要方面,如构思、写作)。写出将要生成哪些图表。编程时走走停停,通过手动看数据、生成统计量、绘图等方式感知数据属性,发现异常,也能提示前进方向。
理论为导,结果为归。结果与理论预期不一致时,从两方面考虑如何调整。最大限度地避免不思考、久坐调显著性。理论包括教科书或经典文献的定理、学术界或大众的普遍观点及其逻辑。
尽量自动生成图表(字体、坐标轴标题、颜色、背景),以免每次手动绘制时的劳累、费时和难免的一两处疏忽。图表可以自动、半自动或手动存放入excel。再导入word或Latex。