2010年6月24日 星期四

Stata: 切割字串

今天拿到一個要分析的問卷,不看不知道,一看快昏倒,裡面有一題問卷的回答像下面一樣:

1.png

變數裡面全部是 string,這也就算了。一個 string 裡面包含了五個問題,每個問題有五個選項,這還讓不讓人活啊?這樣是沒辦法跑任何分析的,得先將五個問題分開,然後再將五個答案分別 code 成 1-5,這才有辦法作分析。

雖說有萬般的不幸,但這資料裡面有個好處:格式差不多。像下面一樣:

問題.= xxx; 問題. =ooo; 問題. =oxox;

也就是說,每個問題以「;」 作結尾,所以只要將這個變數依照 ; 的位置分割成五個部分,那接下來就容易了

這指令很簡單,就是 split。split 後面接的是這個變數,分號之後 p () 裡面的值是「規則」,也就是要找哪個字串來切割,依此例來說就是 ; 。分割完之後,我要 stata 幫我產生以 sch 為開頭的變數,所以附加了 gen 指令,所以整個指令如下圖:

split usesch, p(";") gen(sch)

成果如下:

2.png

接下來的動作就是用 recode 將 string 改成 1-5,然後用 destring 就行了。

小技巧,對處理複雜的資料很有幫助的。

2010年6月19日 星期六

美國留學生申請加拿大旅遊簽證懶人包

這幾年在美國,剛好有幾次申請加拿大簽證的經驗,所以作一個筆記,免得我這糊塗鬼下次申請時又忘了。

由於我自己是參加研討會,所以是辦旅遊簽證。用加拿大政府的專業術語來說,這叫 temporary resident visa,我作的 checklist 如下。

  • 申請表:Application form for a Temporary Resident Visa (IMM 5257 PILOT PROJECT)
  • 跟兵役有關資料:IMM 5257 Schedule 1
  • 有效護照
  • 美國 Visa
  • I-20 (如果是 F1 的話,記得 I-20 最後一頁要先拿 travel signature)
  • I-94 (出入境資料)
  • Money order $75 塊 (single entry):這要去銀行先購買的
  • 研討會邀請函
  • advisor letter (說會付你錢去開會,你會回來的)
  • department letter (說你的註冊狀況)
  • 成績單
  • 存款證明
  • 往返機票
  • 旅館 reservation

詳情請見這裡:http://www.canadainternational.gc.ca/los_angeles/imm/visa_temp.aspx?lang=eng#APPLICATION

申辦地點

申辦時間周一至周五 8:30 – 10:30,當天可以拿回護照。

2010年6月17日 星期四

Endnote X4 功能預覽

今天看到 EndNote 的網站公佈了 EndNote X4 的新增功能,真令人期待啊!感覺才用 EndNote X3 沒多久,新版就出了,有許多不錯的功能。

  • PDF 匯入:可以直接丟進 PDF 檔,EndNote 幫你找出這筆書目。這相當於: Zotero: 丟入PDF,自動擷取書目 ,可見 Zotero 確實給 EndNote 不少壓力。
  • 整個 PDF 資料夾匯入:就是上個功能的進階版,把整個資料夾丟入
  • 搜尋 PDF 內容:匯入的 PDF 檔也可以搜尋了。
  • APA 6th 完整支援
  • 文獻 edit 與 manage 界面整合
  • Hyperlinks between in-text citations and related references in the bibliography。在線上出版的時候,讀者可以點 citation,就跳到最後面的 reference,這真的是超方便的!
  • 加強 EndNote Web

簡介在這:http://www.endnote.com/enx4info.asp

影片在這:http://www.endnote.com/enx4wnvid/Whats_New-SD.asp

如果圖書館更新授權了,記得分享一下喔~~

2010年6月10日 星期四

Stata: 產生累積次數分配

網友問到:「哈囉,想請教版主有關STATA的問題,如果我想產生一個新變數,而這個變數為另一個變數的累積次數分配,應該怎麼寫此一指令呢?用ta X(變數) 可以得知變數分佈情況,後學所學的指令可能不足,故想請教版主是否知道? 謝謝」

首先,先使用一個資料庫:

sysuse auto, clear

tab 一下結果:

1.png

之後先產生次數分配:

bysort rep78: gen freq = _N

檢查一下結果:

list rep78 freq in 1/20

2.png

這還只是該值的頻率而已,還不是累積次數分配。如果要作累積次數分配,還得加工一下。

by rep78: gen cumfreq = _N if _n == 1
這一行是說,rep78 每一個值的第一筆資料,cumfreq 的值都設為 rep78那個值的次數。如果是該值的第二筆,那就會設成missing。結果如下圖。


3.png



接著下一步,就是把這些值加起來。

replace cumfreq = sum(cumfreq) if !mi(rep78)

最後檢查一下成果:


tabdisp rep78, cell(freq cumfreq)

list rep78 freq cumfreq in 1/20


4.png



大功告成!如果不要用 missing 的freq,記得要處理一下喔!



參考網頁:http://www.stata.com/support/faqs/data/tabdisp.html

2010年6月8日 星期二

中介變數(mediator)與調節變數(moderator)

如果你是作心理學的,分析裡用到 multiple regression,一定會想遇到中介變數 (mediator) 與調節變數 (moderator)。談到這些,就不由得談到 Baron and Kenny (1986) 這篇文章。這篇文章多有名?根據 google scholar 的計算,這篇文章已經被引用了 18901了!這篇文章主要談及中介變數 (mediator) 與調節變數 (moderator) 之間的差異,今天我就來試著解釋這兩個觀念。

中介變數 (mediator) 顧名思義,指的是 IV 對 DV 的影響,這個影響 (一部分) 是透過 mediator 的。換言之,mediator 可解釋一部分 IV 對 DV 的影響。這三個變數的關係如下圖所顯示。要測試是否有 mediation,必須用 multiple regression 或 path analysis。步驟如下:1) 先要有 IV –> DV 的關係 (還沒放 mediator進去),如果 IV 對 DV 沒影響,沒必要想中介變數的。2) IV 跟 mediator 之間要有顯著關係 (下圖 b的地方)。3) mediator 和 DV 之間有顯著關係 (下圖 c的地方)。4) 同時把 IV、DV 和 mediator 放進方程式中,三者的關係都要呈顯著。

寫成方程式的話,依次為:
1)  DV = b0 + a * DV
2)  Mediator = b1 + b * IV
3)  Mediator = b2 + c * IV
4)  DV = b3 + a * IV + c * IV

Mediator

幸運的話,你會發現:當只看 IV 和 DV 的關係時,這個 coefficient 比較大;當把 mediator放進來,IV 對 DV 的 coefficient 變小了 (但有可能還是顯著) 。這就說明了其中有 mediation。

調節變數 (moderator) : 調節變數也會影響 IV 和 DV 之間的關係。IV 和 DV 之間的關係會因為 moderator 的值而改變,有可能是 moderator 是 0 的時候,IV 跟 DV 的關係很強,但 moderator 是 1 的時候,IV 跟 DV 的關係就不顯著了。

moderator 

Moderator 可以是 qualitative 的 (如:性別、種族、階級),可以是 quantitative 的 (如:得到不同程度的獎勵),這 moderator 可能會影響到 iV 對 DV 影響的方向 (男生則有影響,女生則無影響) 或是強度 (對男生來說,IV 對 DV 的影響比對女生來說,IV 對 DV 的影響來得大)。如果熟悉 ANOVA 的話,moderator 就是裡面分析會看到的交互作用 (interaction)。用圖示的話,就像下圖一樣。在 regression 的方程式中,要將 IV、moderator 和 IV 與 moderator 的乘積 (對,就是兩個變數乘起來) 放進去。如果要測試有沒有 moderation ,只要看下圖 c 是否為顯著即可。a 或 b 可能為顯著或不顯著,這並不影響測試 moderation。另外,在 moderation 中,moderator 應該與 IV 或 DV 都沒有相關性

moderator2

另外一個 moderator 的特點是:moderator 與 IV 是在同一個層級的,也就是 moderator 其實也可以當作是一個 IV 來看待。

兩者比較一下中介變數看的是 IV 透過何種機制 (也就是 mediator) 影響到 iV;調節變數看的是將將 IV 分成幾個小組,各小組中 IV 對 DV 有不同的影響。

要選擇 mediation 或是 moderation 呢?Baron and Kenny (1986) 的文章提供了很實務的建議。如果 IV 與 DV 之間的關係很強,你可能想要用 mediation 解釋 IV 是如何影響 DV的;如果 IV 到 DV 之間的關係沒那麼強或是不一致,你可能會想要看 moderation,來看 IV 對 DV 的影響是不是受到其它變數的影響。

延伸閱讀
Baron, R. M., & Kenny, D. A. (1986). The moderator–mediator variable distinction in social psychological research: Conceptual, strategic, and statistical considerations. Journal of Personality and Social Psychology, 51(6), 1173-1182. doi: 10.1037/0022-3514.51.6.1173

2010年6月6日 星期日

Stata: 比對部分字串變數

在作問卷時,有時候問題是 short answer,放到資料庫的時候會用一個字串來表示。如果假設我有一個變數,裡面是問受試者以後想要從事什麼行業,那就會出現五花八門的答案。
1.png
這時候可以作的,就是利用虛擬變量。假設答案裡面不管任何地方,只要出現 lawyer 的,你的 dummy 值為1,沒出現的則為 0。作法很簡單,只有一行而已:
gen dummy = strmatch(lawyer, "*lawyer*")
strmatch 是字串比對的指令,括號中的第一個變數是我的變數名字,第二個變數是要比對的字。但因為我設的規定是:不管 lawyer 出現在變數任何地方都可以,所以在此字串前後都加上了 *。那因為這是字串,所以最外面要加上””。
2.png

2010年6月5日 星期六

如何分析前、後測: 殘餘改變分數 (Analysis of Pre-test Post-test: Residualized change score)

在很久很久以前我寫了一篇文章:如何分析前、後測: 進步分數(Analysis of Pre-test Post-test: Gain scores),利用進步分數 (gain scores,亦有人稱simple change model) 來作分析只是一種分析前、後測的方法而已。

另一種分析前、後測的方法則是 residualized change score (中文有人翻:殘餘改變分數),聽起來很 fancy 的名字,其實觀念很簡單,就是將 pre-test 的成績當作是共變數 (covariate) 放到你的方程式裡面。如果你本來是想作 ANOVA ,但想要用這種模式來作,那就會變成 ANCOVA (analysis of covariance),把pre-test 當作是共變數即可。如果原本是想作迴歸分析 (regression),那迴歸的公式會如下:

Post-test score = b0 + b1 * Pre-test score + b2 * 其它變量

那這兩種模式有什麼不一樣呢?有的,這兩種方式問的問題不一樣。

如果是 simple change model,那你問的問題是:不同的兩組人之間是否在某件事的經驗上有不同程度的改變。換言之,你想要測試:兩組人之間,平均經驗的改變是否存在差異

如果是 residualized change model,那你問的問題是:當控制了一開始的經驗之後,在第一組的人是否比第二組的人改變更多

當然,有時候也有一些現實考量。統計學家指出:如果是 observational study,應該不要用 ANCOVA 或 residualized change model,而是用 simple change model。因為一開始的起點可能因為其它沒觀測的變數 (unobserved variables) 而影響。

如果是隨機分組並在 intervention 前作了 pre-test,這時候用 residualized change score 比較合適。

這裡只是簡單地介紹一下,至於詳細的內容與其它分析方式,有不少專書都涉及這方面,請大家自行翻閱。如有不足或疏漏,還請大家幫忙補充。

延伸閱讀

Statistics: Gain scores vs. residualized gain scores http://wiki.math.yorku.ca/index.php/Statistics:_Gain_scores_vs._residualized_gain_scores

2010年6月3日 星期四

解讀 logistic regression

什麼是線性迴歸?(What is Multiple Linear Regression?) 談論過迴歸分析主要可用來作預測與作因果分析,那既然迴歸分析這麼好,為什麼還要談 logistic regression (中文有人翻:羅吉斯迴歸) 呢?

最主要的原因:在一般的迴歸分析中,dependent variable (DV) 是連續變項 (continuous variable);如果 DV 不是連續變項,而是二分變項 (dichotomous variable,如:男或女、存活或死亡、通過考試與否) 等情況,這時你就必須使用 logistic regression 了

當然,如果你堅持的話,你也可以跑 OLS regression,一樣會得到結果的。如果你得到的 coefficient 是 0.066 的話,解讀就是:當 IV 增加 1 的時候,DV 發生的機率增加 6.6% 。然而,這樣作是有缺點的,通常沒辦法準確地估算 IV 對 DV 的影響 (通常是低估)。

為了解決這個問題,統計學家用 odds ratio (勝算比) 於 logistic regression 之中。要說勝算比之前,要先了解什解什麼是勝算勝算指的是:一件事情發生的機率與一件事情沒發生機率的比值。以拋硬幣為例,拿到正面與拿到反面的機率都是 0.5,所以odds ratio 就是 0.5 / 0.5 = 1。如果一件事情的發生的機率是 0.1 ,那勝算是 0.1 / 0.9 = 1/9 。如果一件事情發生的機率是 0.9 ,那勝算是 0.9 / 0.1 = 9。所以勝算是介於 0 與無限大之間

odds ratio 則是兩件事情的 odds 作比較。舉個例子來說,如果高學歷的人寫部落格的勝算(odds) 是  2.33,低學歷的人寫部落格的勝算是 0.67,那與低學歷的人比起來,高學歷的人寫作部落格的勝算是他們的 3.48 倍 (2.33/0.67),所以勝算比 (odds ratio)就是3.48

那如何解讀 logistic regression 的結果呢?通常你會看到文章裡呈現兩種結果:一種如果沒特別指名的話,就叫 coefficient,它的 DV 是某件事的 log odds ratio ,是勝算比取了自然對數;一種是 odds ratio 。這兩種值是可以互相轉換的,如果你的 log odds ratio 得到的 coefficient 是 0.405,你可以計算 odds ratio ,在 stata 指令列輸入 dis exp(0.405),會得到1.500。所以在讀文章的時候一定要讀清楚作者呈現的是 log odds ratio 或是 odds ratio

結果怎麼解讀呢?可從 log odds ratio 開始,解讀是:當 IV 增加一單位,log odds  會增加 ##。其實這解讀與 OLS regression 的解讀是一樣。如果你看到的是 odds ratio,解讀是:當 IV 增加一單位,odds 會增加 (##-1)*100%。兩種解讀方式都套上剛剛的數字,那結果會是:

log odds ratio: 當 IV 增加 1,log odds ratio of 某件事會增加 0.405 (請原諒我的英式中文@@)。

odds ratio: 當 IV 增加1,odds of 某件事會增加 (1.5-1)*100% = 50%。所以如果本來是 2,增加 50%的話,會變成 2 * 50% + 2 = 3 。換句話說,你也可以直接解讀為:當 IV 增加1,odds 某件事 (或是某件事的勝算。注意:這裡是勝算,不是勝算比) 會變成原本的值乘以1.5

如果你的勝算比 odds ratio 的 coefficient 是 0.667,那應該怎麼解讀呢?當 IV 增加1,某件事的勝算變成原本的值 (or 勝算) 乘以0.667。所以原本的勝算比如果是 3 的話,當 IV 增加1時,某件事的勝算會變成 2。你也可以說:當 IV 增加 1 時,某件事的勝算會減少 (1-.667)* 100% =33%

延伸閱讀

Logistic Regression介紹---晨晰統計林星帆顧問整理 http://tw.myblog.yahoo.com/da_sanlin/article?mid=1013&sc=1
Understanding odds ratios in binary logistic regression http://www.ats.ucla.edu/stat/stata/library/odds_ratio_logistic.htm
Logistic Regression Analysis http://www.ats.ucla.edu/stat/stata/output/stata_logistic.htm