⑴ 如何用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(鍥藉訛級