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 .

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

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

Stata是一套滿簡單、易學的統計軟體,最近在用它跑問卷分析,所以就產生了不少虛擬變量(dummy variables),於是就簡單寫篇教學文吧!

如果你拿到一個資料像是這樣的:

id language
1 1
2 1
3 2
4 3

language的數字代表不同的語言,1對應到Chinese,2對應到English,3對應到Spanish。要產生dummy variable,在stata最土法煉鋼的方式就是用gen指令(generate的縮寫,在stata輸入gen就行了)先產生一個變數,然後在用replace 將language的值指派給dummy variable。

Language有三個值,我們只要產生3-1=2 個虛擬變量,這點非常重要,一定要弄對,不然辛苦了半天跑出來的結果會非常怪。當然也有人傾向產生3個虛擬變量,到時候跑regression的時候少放一個當作是reference group,但一定要記得少放才行啊!

那我們就以Chinese為reference group,所以我們就不需要產生Chinese這個虛擬變量,而是產生dEnglish, dSpanish這兩個。開頭的d表示是虛擬變量,以示分別,免得自己弄錯。

gen是產生變數的指令,所以我們要先產生dEnglish與dSpanish。

gen dEnglish=0

gen dSpanish=0

再來就是要給這兩個新的變數1這個值。language欄位中2的值表示English,所以用replace把值指過去

replace dEnglish =1 if language==2

replace dSpanish =1 if language==3

注意:language==是兩個等號,不是筆誤。比較數值的時候用==,指派數值的時候用=。

很多人會搞混的一點就是:為什麼dEnglish跟dSpanish都要=1?產生虛擬變量的目的就是把上述的表格變成下面這樣:

id language dEnglish dSpanish
1 1 0 0
2 1 0 0
3 2 1 0
4 3 0 1

我們回顧一下每個變數的定義。Language是母語,dEnglish的定義則是此人的母語是English,是的話值就是1,不是的話值就是0。dSpanish同理可推,如母語為Spanish值為1,否的話值為0。所以上面的語法才會dEnglish與dSpanish的值為1。

想一想,上面這樣寫有什麼問題?如果我們的table像下面這樣,問題就出現了:

id language dEnglish dSpanish
1 1 0 0
2 1 0 0
3 2 1 0
4 3 0 1
5 .

Stata: 產生虛擬變量(Create dummy variables) Read More »

想六月畢業?先規劃一下進度吧!

這篇好像post的有點晚,應該要一個月前寫的 XD 今天看之前號召的學術研究精華區,發現網友推了一個有趣的東西:The Dissertation Calculator

如果你沒寫過論文,也不知道要多久的時間完成,或是你不知道該如何著手,那這個網站可以給你一點概念。不過每個人作研究的情況都不一樣,最重要還是跟你的老闆密切合作,完成學位論文。

網址:https://library.rit.edu/researchguides/disscalc/index.phtml

想六月畢業?先規劃一下進度吧! Read More »

電腦進水急救法

人總有失手的時候,前幾天我朋友就不小心把水打翻了,水就從eeepc上面給他下去 @@  由於我人不在現場,是電話才知道這個慘案的 = = 事情發生了,就要來想辦法急救。

如果電腦不小心進水了,你要做的:

  1. 馬上把電源拔掉!請不要再慢慢關機了。軟體壞掉你還可以拿到別台去讀讀看,硬體壞掉不花幾張小朋友是沒辦法搞定的。
  2. 電池拔掉!因為進水最怕進到主機板,你想想如果水進去了,你電腦上有電,那會發生什麼事?
  3. 把電腦倒立,像^樣子,讓水不要流進主機板。
  4. 用紙將在電腦上的水吸乾
  5. 如果你會拆電腦,那先把硬碟拆下來,擦拭上面水面。
  6. 行有餘力,再把鍵盤和其它部分也拆下來,輕輕擦拭上面水份。
  7. 別用吹風機,因為吹風機的熱風會傷害你的鍵盤!
  8. 免拆電腦的方法就是把電腦(和其零件)放到防潮箱,然後開除濕;或是把筆電與除濕機放到一小型密閉空間。

保守一點,等個兩天之後再把東西裝回去,試試看能不能開機囉!

預防勝於治療,很少人在書桌上用筆電的時候,旁邊不會放個茶杯或盛水的容器,這是很正常的。但為了避免慘案發生,我想有幾點可以做:

  • 容器加蓋,這是最保險的作法
  • 如果你桌面空間夠大,或是旁邊有小桌子的話,就將水杯放遠一點吧!放在你不用伸長手就可以拿到,但正常打翻不會馬上灑在你電腦上就行。
  • 如果上面都不行,那不得已的辦法就是把水杯放在電腦的後面,這樣打翻打翻直接灑在鍵盤上的機率不高(有螢幕會擋著)。

如果你千百個不願意作這些預防的動作,那還是用桌上型電腦或是買防潑水的鍵盤吧!

最後提醒:請記得隨時備份,因為我看過太多寫論文時發生的慘案啊!

如果你想要看更多電腦進水急救的經驗,可去Mobile01看這篇:http://www.mobile01.com/topicdetail.php?f=159&t=235177&p=1

電腦進水急救法 Read More »

因素分析(Factor Analysis)

這裡要講的因素分析不是在ANOVA裡面看到的Factor Analysis of Variance,而是結構方程模式分析(Structural equation model,簡稱SEM)裡面的一環。因素分析裡面一定會有latent variable(隱性變量),又有人稱為factors(因素)。講半天還是不知道是什麼,對吧?有圖有真相:

1.png

圖中???的地方,就是你不知道的,也就是我們上面所說的latent…

因素分析(Factor Analysis) Read More »

Scroll to Top