Stata: 產生虛擬變量(Create dummy variables)進階篇

上一篇講到用stata產生虛擬變量,方法是正確的,沒什麼問題,但如果你的變數裡有10個group,依照上次的作法,產生一個dummy variable要3行程式,10個group就要30行。其實30行程式也不是什麼大不了的,只不過是多了幾次複製與貼上而已。但如果你不是很在意dummy variable的名稱,我們有更快的方式可以完成。

我們一樣用上次的table來示範:

id language
1 1
2 1
3 2
4 3
5 .

 

只要一行程式就可以搞定:

tabulate language, gen(d)

這一行的意思是這樣的:tabulate language是先列出language所有的值,然後gen(d)會產生變數,變數的名稱是d開頭,然後從1到language的最大值。照我們的例子來說,language的值是1到3,最後就會產生d1、d2、d3三個變數,d1對應到language 值1,依此類推。

如果d1這種名稱讓你很困惑的話,你可以先大量產生dummy variables之後,再大量rename。rename的方式很簡單,像這樣:

rename d1 dChinese

其它依此類推。

記得最後放到計算的時候,要記得留一個dummy variable不要放喔

6 thoughts on “Stata: 產生虛擬變量(Create dummy variables)進階篇”

  1. 您好~小弟我最近在研究STATA這個軟體,正好看到您有在介紹這套軟體,想請問一下就是在這篇文章中,您說"記得最後放到計算的時候,要記得留一個dummy variable不要放喔!"這是什麼意思,可否請您解釋一下,因為我有點困惑,謝謝!
    然後在敘述統計二那篇文章中,您在最後完整的code那部份最後一行"sum dwhite dblack dother dmale age income if !mi(age) & !mi(income)"沒有加入"dfemale"是有特別原因嗎?還是只是單純沒有加入?
    不好意思,麻煩您了!謝謝!

  2. 簡單地講,dummy variable在regression中,就是拿來比較。但比較是要有一個基準點,對吧?不然怎麼知道這是高還是低呢?這個基準點就是你的reference group。以gender來說,就是男與女,在我的例子中放的是dmale,沒放的是dfemale,意思就是這些是跟female作比較。

    會困惑的地方是為什麼sum放了dwhite dblack dother,但是sex只放男、女呢?Well,在descriptive analysis的部分其實沒差,把種族放進來是因為有三組,所以這樣比較容易看出各個比例,而gender放不放都很容易看出來。

    但是在regression的時候,上面說的留一組就是必要的,不然stata會自動幫你drop掉。為什麼?因為以性別來說,你把男、女都放進去了,那跟誰比呢?你可參看性伴侶那個例子,會比較清楚。

  3. 您好,很感謝您的blog給我很大幫助,但我現在還有些關於dummy variable的問題希望能夠得到解答。
    我現在用的面板數據裡含有大概200個城市連續5年的數據,我現在要做回歸但我不明白這種情況下需不需要放虛擬變量,因為我有看到有些研究文章裡作者是放了的,有些沒有放,所以不是很確定…另外就是如果放dummy variable的話,具體是放進年份的呢還是應當放城市的呢?非常感謝

  4. 看你的研究問題而定。有些人用fixed effect,有些人用random effect,真的要看你的資料與你想回答什麼問題來決定要不要用dummy variable。

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top
Verified by MonsterInsights