學統計程式,有個dataset可以玩會比較能夠進入狀況,不然指令看過就忘了。此外,我覺得學習統計程式也是了解統計觀念的一個好方法,因為你可以直接看到結果。當結果與common sense不合,就會再去找找是不是哪做錯了。
找了很久,終於找到一個不大不小剛剛好,可以拿來練手的dataset,這dataset是general social survey 2000年所做的,你可以到此下載(記得選2000年),或是直接用我上傳到借來的空間。Gss2000的大小為3.61mb,原汁原味,沒經過任何修改。由於gss的網站好像沒看到可否自由散佈的相關資訊,就假設可以好了 XD 真的不行的話,那到時候再找別的dataset。
use http://twtcsl.org/dataset/gss2000.dta
耶~~~不過,拿到資料後要做什麼?不知道要做什麼,那先來看看種族(race)、姓別(sex)、年齡(age)、收入(income)這幾個變數吧!最簡單直覺的方式就是以表格呈現,在stata裡的指令是tab。所以我們打入tab race,先來看看種族的資料。
tab race
所以我們很快就知道問卷的回答者,大部分是白人,大約15%是黑人。剩下的sex, age, income就請自己試試。
一個一個變數看,可能無法得知全貌。如果想知道種族與性別的關係,最簡單的方式就是作一個交叉表。在stata裡很簡單,tab後打入兩個變數就好了。
tab race sex
可是在寫文章時,一開始不會是cross tab的,都是先看看mean、SD等資訊。好吧,我們有四個變數,那就用sum這個指令,來看看結果。
sum race sex age income
出來結果像上圖這樣。看一看,有什麼問題呢?
問題很大!
第一個問題是問卷的觀察數(obs)不一致,race與sex是2817個,但age降到2809,而income更進一步降到 2685。
第二個問題是race的最小值是1,最大值是3,這一點意義都沒有,因為一者誰知道你的1、2、3是什麼,二者,就算知道1是白人,2是黑人,3是其它種族的人,把1、2、3加起來,有什麼意義?平均值1.276難道意謂著灰人?當然不是!
第一個問題好解決,下個一串if就可以了,第二個問題就要靠虛擬變量(dummy variable)來解決了。簡單地說,虛擬變量就是把原本是類別變數裡面的數字,變成很多個變數,每個變數用0、1來表示原本的值。舉例來說,原本來race=1是white,我們把這個值用另外一個變數來dwhite來表示,dwhite=1表示是白人,dwhite=0為非白人。black就產生一個叫dblack,其它的就叫dother。詳情可參考這篇:Stata: 產生虛擬變量(Create dummy variables)和這篇:Stata: 產生虛擬變量(Create dummy variables)進階篇。
所以race產生虛擬變量的方式如下面,sex也要產生虛擬變量,方法依此類推。
tab race, gen(d)
rename d1 dwhite
rename d2 dblack
rename d3 dother
至於第一個問題怎麼解決,因為要牽涉的東西有點多,所以下次再說。
標籤: 統計分析