⑴ 如何用stata画图
//lecture 6
cd /Victor/stata
use "nei_sample.dta",clear
edit zipcode
//split默认根据空格拆分 stub前缀 prase on these strings根据什么拆分(通过观察)
split facilityname_origin, generate(varnew) parse(,)
split zipcode,generate(zipnew) parse(-)//在2894行 有的没有破折号需要提取前五位
//按照某种符号拆分字符串
edit zipcode
help substr
//截取
gen zip5=substr(zipcode,1,5)
//生成zip5,表示截取zipcode的前五位 从第一位 截取五位
edit zipcode zip5 if length(zip5) ~=5
//展示长度不等于5的zip5和zipcode
edit zip5
gen len_cn = ustrlen(zipcode)
//生成中文字符串长度
edit fips
gen fips2 = substr(fips, 1,2)
edit fips2
gen fips3 = substr(fips, 3,3)
edit fips2 fips3
destring fips2, replace force
destring fips3, replace force
//字符变数值
tostring fips2 fips3, replace force
//数值变字符
edit fips2 fips3
replace fips2="0"+fips2 if length(fips2)==1
replace fips3="0"+fips3 if length(fips3)==2
replace fips3="00"+fips3 if length(fips3)==1
//前面用零补齐,补成五位
help plicates
//重复观测值
sort newid
plicates report newid year
//报告重复观测值
//copies代表这个数据一共有多少个 =1就代表没有重复 第4541只有一个观测值newid
plicates tag newid year, gen(p)
//标注重复观测值
tab p
//展示搭枯
edit new year if p>=177
plicates drop newid year, force
//去掉重复样本//两个都一样才丢掉
plicates report newid year
ssc install unique
//安装unique
unique newid year
//展示有几个是唯一的
unique fips
use nei_sample.dta, clear
help collapse
//压缩
collapse (sum) so2 co nox nh3 voc (first) facilityname_origin fips zipcode , by(newid year)
//根据newid year重复的字符串变量 (first)后面薯段的三个只取第一个数据 数值变量so2等等。。加总(sum) 没涉及的变量就丢掉了
plicates report newid year
collapse (sum) so2 co nox nh3 voc (count) newid, by(fips year)
//关于fips year 加总。数出newid(在fips year全都相同的情况下有几个newid(企业))
//每个地区每一年污染物的多知手洞少,企业有多少
gen id = newid
//replace
//改变面板数据的结构
use nei_sample.dta, clear
help reshape
keep newid year so2
plicates drop newid year, force
reshape wide so2 , i(newid) j(year)
reshape long so2 co nox voc nh3, i(newid) j(time)
//将宽表和长表相互转换
keep newid year co
reshape wide co,i(newid) j(year)
plicates drop newid year,force
reshape wide co,i(newid) j(year)
reshape long co,i(newid) j(year)//观测值变成了999*12,转换两次之后,数据变成
*balanced data(平衡面板数据)了 也是为了便于做可视化分析,计量分析
//lecture 7
cd /Victor/stata
use "nei_sample.dta",clear
keep newid year so2
//保留这三个
help reshape
//数据重排
plicates drop newid year, force
reshape wide so2 , i(newid) j(year)
//不同问题下i不同 这里的i是企业 j是时间
reshape long so2 co nox voc nh3, i(newid) j(time)
//reshape//long wide lecture7
use "nei_sample.dta",clear
keep newid year so2 co nox voc nh3 sic
plicates drop newid year, force
reshape wide so2 co nox voc nh3, i(newid sic) j(year)
keep newid year so2 co nox voc nh3 sic
reshape wide so2 co nox voc nh3, i(newid sic) j(year)
//数据变少了是因为有的newid对应多个sic
reshape long so2 co nox voc nh3, i(newid sic) j(year)
//通过这种方式将它强行变成平衡面板 先wide 后long(意义重大)
use nei_sample,clear
keep so2 co nox voc nh3 newid year
plicates drop newid year,force
reshape wide so2 co nox voc nh3,i(newid) j(year)
reshape long so2 co nox voc nh3,i(newid) j(time)//三千多个变成了一万多个
*reshape之后每一个企业都在每一年1990——2011有观测值,强行将数据变为balanced
ren (so2 co nh3 nox voc) (pol1 pol2 pol3 pol4 pol5)
//更改变量名 为了保证前缀都一样 才能转换
*sample
rename so2 pu1
rename co pu2
rename nox pu3
rename voc pu4
rename nh3 pu5
reshape long pu,i(newid time) j(type)
tostring type,replace
replace type="so2" if type=="1"
replace type="co" if type=="2"
replace type="nox" if type=="3"
replace type="voc" if type=="4"
replace type="nh3" if type=="5"
keep newid year pol1 pol2 pol3 pol4 pol5
reshape long pol, i(newid year) j(type)
//??? 没有drop
tostring type, replace force
//???
replace type = "so2" if type == 1
//替代污染物名称
use "nei_sample.dta",clear
plicates drop newid year, force
//去掉重复值
edit newid year so2
sort newid year
by newid: gen l1so2 = so2[_n-1]
//so2[1] so2[_N] n-1代表上一行的观测值 通过企业来分 每个n对于企业来说是不一样的
by newid: gen l2so2 = so2[_n-2]
//上两行
by newid: gen l0so2 = so2[_n]
by newid: gen f1so2 = so2[_n+1]
//滞后一期
bys newid: gen Nso2 = so2[_N]
//展示这个企业最后一年的数据
bys newid: gen n1so2 = so2[1]
//有时需要保证它是一个平衡面板:可利用以下命令
xtset newid year
//set panel variable 让他成为面板数据 如果不告诉它 它永远按上一行处理
gen lso2 = l.so2
//l.代表上一期的滞后变量(上一年)这个和上一行的数据不一样喔 有时可能上一行不是上一年 就没有上一期了
use "nei_sample.dta",clear
plicates drop newid year, force
edit fips year newid
sort fips year newid
by fips year: egen id_sum = count(newid)
//通过fips year来分 如果两个都相同就算一次
edit fips year newid so2
by fips year: egen so2_fips = sum(so2)
//missing values
//得到地区层面的数据 用于变量的构造 通过微观数据做加总数据又保留微观数据本身
//
use "nei_sample.dta",clear
help collapse
collapse (sum) so2 co nox nh3 voc (first) facilityname_origin fips zipcode , by(newid year)
//构造更高层面的行业数据 微观数据全部损失了. 加总相同年份的污染量,(first)后面的是只保留第一行
plicates report newid year
collapse (sum) so2 co nox nh3 voc (count) newid, by(fips year)
gen id = newid
//replace
//collapse by 2_digit sic and fips_stata (2_dight fips), and year,
use "nei_sample.dta",clear
gen fips3 = substr(fips,1,2)
gen sic2 = substr(sic,1,2)
collapse (sum) so2 co nox nh3 voc ,by( fips3 sic2 year)
//lecture 8
//图形的组成
sysuse uslifeexp2
decribe
scatter le year
//第一个是y 第二个是x轴
//connect(l) 表示以直线的方式连接相邻的两个点
//msymbol(i) 表示散点的显示方式为“看不见”
scatter le year, connect(l)
scatter le year, connect(l) msymbol(i)
scatter le year, connect(l) msymbol(smdiamond)
//散点形状改为棱形
scatter le year, connect(l) msymbol(smdiamond) mcolor(lime)
//标记间连线的方式,标记本身的形状,标记的颜色
help marker_options
//标记标签的选择
graph query symbolstyle
help marker_label_options
sysuse lifeexp.dta, clear
describe
list country lexp gnppc if region == 2
scatter lexp gnppc if region == 2, mlabel(country)
scatter lexp gnppc if region == 2, mlabel(country) mlabpos(9)
//将标签调整到九点钟方向 这样美国就可以显示出来了
//下面尝试利用 mlabvposition(varname) 选项为某些特殊选项的观测值设定标签的位置 为了单独为美国和洪都拉斯设定标签显示方向,
//需要生成一个指标方向的变量,命名为破碎,然后利用这个变量对每个案例的不同附值来调整各个散点的标签位置
generate pos = 3
//所有国家都是3
replace pos = 12 if country == "Honras"
replace pos = 9 if country == "United States"
scatter lexp gnppc if region == 2, mlabel(country) mlabv(pos)
//下面尝试利用改变坐标轴的覆盖范围来设定标签
//方法一:利用xscale(range())指定作图的区域
scatter lexp gnppc if region ==2,mlabel(country) mlabv(pos) xscale(range(-500 3500))
//方法二:利用plotregion( margin())来解决作图区域的微小变动
scatter lexp gnppc if region == 2,mlabel(country) mlabv(pos) plotregion(margin(l+9))
sysuse autornd, clear
descrbe
scatter mpg weight
scatter mpg weight, jitter(7)
//由于数据点太密集了,产生重叠,需要将数据点轻微地挪动位置,jitter(#)震荡选项
//二维绘图选项,help twoway
//标题选项,坐标,图例,增加线,by
sysuse lifeexp.dta, clear
scatter lexp gnppc
gen log_gnppc = log(gnppc)
//对数化,更线性
scatter lexp log_gnppc
//另一种方法:
scatter lexp gnppc, xscale(log)
//做散点图,并对比y轴刻度使用正常尺度与逆向尺度的异同
sysuse auto.dta, clear
scatter mpg weight
scatter mpg weight, yscale(rev)
//车重与油耗正相关
//下面绘制完全没有任何坐标的散点图和有坐标刻度但没有坐标线的散点图
scatter mpg weight, yscale(off)
//不要y轴
scatter mpg weight, yscale(noline) xscale(noline)
//去掉了坐标线,保留刻度
help axis_label_options
sysuse auto, clear
describe
sum
//下面分别绘值mpg、weight的标有大约坐标轴上5个10个刻度标识的mpg和weight散点图
scatter mpg weight
scatter mpg weight, ylabel(#5) xlabel(#5)
scatter mpg weight, ylabel(#10) xlabel(#10)
scatter mpg weight, ylabel(10(5)45) xlabel(1500 1970 2500(1000)4500)
//自定义规则
scatter mpg weight, ytick(#10) xtick(#15)
//绘制x轴大约有15个刻度,y大约10个刻度
scatter mpg weight, ymlabel(##5) xmtick(##10)
//把小刻度的标识也标上去,x轴主刻度之间有10个小刻度
scatter mpg weight , ymlabel(##5) xmlabel(##10)
//时间序列散点图时的轴线刻度标识问题
sysuse uslifeexp, clear
scatter le year, c(l)
scatter le year, c(l) xlabel(#10,grid)
//网格,用线连
scatter le year, c(l) xlabel(1900(10)2000,grid)
scatter le year, c(l) xlabel(1900 1918 1936 1950(20)2000,nogrid)
scatter le year, lcolor(yellow) c(l) xlabel(1900 1918 1936 1950(20)2000,nogrid)
line le year, lcolor(navy) lpattern(dot)
sysuse uslifeexp, clear
scatter le year, c(l) xlabel(1990 1918 1940(20)2000,grid) legend(on)
label var le_male "男人,人均寿命"
scatter le_male le_female year, legend(label(1 "Male") label(2 "Female"))
//绘制散点图并添加图例,将图例分别改为”male”和”female“
scatter le_male le_female year, c(l) legend(on)
//legend是图例
⑵ 镐庝箞鐢╯tata鍒嗘瀽鏁版嵁锛
鎴戜滑鍦ㄥ钩镞剁敤SPSS锅氩洖褰掑垎鏋愮殑镞跺欎细阆囧埌绾挎у拰闱炵嚎镐т袱绉嶆儏鍐碉纴鍦⊿PSS涓涓烘垜浠鎻愪緵浜11绉嶅父鐢ㄧ殑妯″瀷渚涙垜浠阃夋嫨锛岃繖绡囨寚鍗楀氨鏁椤ぇ瀹舵庝箞钖堢悊浣跨敤SPSS镟茬嚎𨰾熷悎锛屼互鍙婃庝箞鍒嗘瀽缁撴灉銆
1銆佹墦寮SPSS杞浠跺悗鍏堟墦寮浣犻渶瑕佸垎鏋愮殑鏁版嵁銆傛墦寮鍙充笂瑙掔殑镙囱瘑锛岄夋嫨浣犻渶瑕佺殑鏂囦欢锛岀偣鍑汇愭墦寮銆戯纴阃夋嫨鏂囦欢銆
2銆佹墦寮钖庡傛灉浣犱簨鍏堜笉鐭ラ亾涓や釜鍙橀噺涔嬮棿鏄绾挎ц缮鏄闱炵嚎镐э纴闾e氨鐢绘暎镣瑰浘鍒嗘瀽鍏惰秼锷裤伞愬浘褰銆---銆愭棫瀵硅瘽妗嗐---銆愭暎镣/镣圭姸銆---銆愮亩鍗曞垎甯冦---銆愬畾涔夈
3銆佸皢鐩稿簲镄勫彉閲忚剧疆涓簒,y 杞达纴镣瑰嚮銆愮‘瀹氥戯纴鎺ヤ笅𨱒ヤ细镊锷ㄥ湪鏂囨。镆ョ湅鍣ㄤ腑鏄剧ず鏁g偣锲撅纴濡傛灉阃夊彇镄勬牱链澶氱殑璇濓纴链夋椂鍊欎细杩炴垚镟茬嚎锛屼笉杩囦笉褰卞搷鍒嗘瀽銆
4銆佺‘瀹氢笉鏄绾挎у叧绯讳箣钖庯纴鐢ㄦ洸绾挎嫙钖埚垎鏋愩傜偣鍑汇愬垎鏋愩---銆愬洖褰掋---銆愭洸绾夸及璁°戯纴杩涘叆鍒版洸绾夸及璁¢溃𨱒块噷闱㈣剧疆銆
5銆佸湪镟茬嚎浼拌℃嗕腑璁剧疆濂绖,y杞达纴涓嬮溃镄11绉嶆ā鍨嬩腑鍙浠ラ夋嫨鍏朵腑姣旇缉绗﹀悎镙锋湰鍙桦寲𨱍呭喌镄勶纴锲犱负鍒氩紑濮嫔凡缁忕敾鍑烘暎镣瑰浘浜嗭纴镓浠ヨ繖涓姝ラ夋嫨妯″瀷灏辨瘆杈冨规槗锛屽傛灉涓岖煡阆挞夋嫨闾d釜锛屽氨澶氱偣鍑犱釜銆
6銆佺劧钖庢垒鍒板拰镙锋湰锲惧儚链涓哄惢钖埚拰镄勫浘镀忥纴铹跺悗鍒嗘瀽缁撴灉銆
7銆丄NOVA闾d釜琛锛屼篃灏辨槸F妫楠岋纴闾d釜琛ㄤ唬琛ㄧ殑鏄瀵逛綘杩涜屽洖褰掔殑镓链夎嚜鍙橀噺镄勫洖褰掔郴鏁扮殑涓涓镐讳綋妫楠岋纴濡傛灉sig0.05,璇存槑镊冲皯链変竴涓镊鍙橀噺鑳藉熸湁鏁堥勬祴锲犲彉閲忥纴杩欎釜鍦ㄥ啓鏁版嵁鍒嗘瀽缁撴灉镞朵竴鑸鍙浠ヤ笉鎶ュ憡
8銆佺劧钖庣湅绯绘暟琛锛岀湅镙囧嗳鍖栫殑锲炲綊绯绘暟鏄钖︽樉镢楋纴姣忎釜镊鍙橀噺閮芥湁涓涓瀵瑰簲镄勫洖褰掔郴鏁颁互鍙婃樉镢楁ф楠屻
9銆佹渶钖庣湅妯″瀷姹囨婚偅涓琛锛孯鏂瑰彨锅氩喅瀹氱郴鏁帮纴瀹冩槸镊鍙橀噺鍙浠ヨВ閲婄殑鍙桦纾閲忓崰锲犲彉閲忔诲彉寮傞噺镄勬瘆渚嬨
宸ュ叿/𨱒愭枡
鐢佃剳
IBM SPSS Statistics 19
⑶ stata命令有哪些
1、format x1 %10.3f ——将x1的列宽固定为10,小数点后取三位;
2、format x1 %10.3g ——将x1的列宽固定为10,有效数字取三位;
3、format x1 %10.3e ——将x1的列宽固定为10,采用科学计数法;
4、format x1 %10.3fc ——将x1的列宽固定为10,小数点后取三位,加入千分位分隔符;
5、format x1 %10.3gc ——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符;
6、format x1 %-10.3gc ——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐;
7、generate——生成新变量的命令,注意:变量名称只能用英文和数字,且若名称中同时有英文和数字,必须以英文开头。
8、drop——去除变量的命令,如果想把变量z给去掉,那么可以输入命令:drop z;
9、twoway (scatter y x)(lfit y x)——画出拟合线,注意:这个命令最开始的字母twoway也可以简写为tw。
10、scatter y x——画散点图,注意:在Stata的许多命令中,因变量一般都放在自变量前面。
⑷ 瀵逛簬璺ㄥ浗闱㈡澘鏁版嵁锛屾庢牱鍦╯tata涓濡备綍鐢ㄦ暎镣瑰浘𨱒ユ煡鐪嫔浗瀹堕棿镄勫樊寮
锻戒护濡备笅锛
scatter y x , by(锲藉讹级