May 2012

利用Dropbox同步檔案

我最近寫的東西,都比較偏向作研究會用到的知識與軟體,一般性的軟體我已經較少介紹,因為我覺得大家可以在其它地方得到相關知識。然而,我發現很多研究生/老師,並沒有閱讀科技部落格的習慣,有很多好用的工具都不知道,或是知道這些工具,但是不知道如何使用在與研究的相關事情上,讓自己的生活便利一點。
而好用的免費軟體中,Dropbox是我目前所離不開的之一。
dropbox
註冊網址http://db.tt/MXmCxzqy

Stata: 時間變數處理

其實不管是資料庫或是統計資料,只要碰到時間變數,就要小心處理,免得因為coding錯誤造成資料不正確或格式不一致。

產生時間變數

在轉換成時間變數之前,變數通常是用兩種方式儲存的:一種是字串,一種是數字。字串就如同是:1 Jan 1960,變數就如同是:17869這樣的數字。這兩種格式都可以轉換成時間變數。

字串

如果是像1 Jan 1960 的string variable,你要轉換的方式是:

gen 新變數 = date(舊變數, "DMY”)

完成之後,你會發現新的變數的值是數字,像是0, 1046這樣的值。這是因為這個值是與1 Jan 1960 相比較所得的值,正值代表在這個時間之後幾天,負值代表在這個時間之前幾天。這種格式在許多資料庫都很普遍,毋需驚訝,只要再一步驟轉換即可。

數字

如果你的日期是與1 Jan 1960 所比較的值,只需要再一步,就可以轉換成可讀的格式了。轉換的語法如下:

簡單版:

format 新變數 %d

複雜版:

format %tdnn/dd/CCYY 新變數 <br />

至於要選哪一種,就看你看哪一種順眼了。

日期比較

一旦轉換到日期格式,就可以進行比較了。如果你要看兩個日期之間差幾天,就只要把兩個日期相減就行了。

日期加減

日期加減也是一樣,直接在原本的日期加減天數,這還是日期格式。

日期與特定日期加減

如果你想要你的日期與特定的日期加減,如1 Jan 2000,那這稍稍麻煩一點。

gen 新變數 = (mdy(1,1,2000) - 舊變數)

上面的語法就可以得知你的舊變數與1 Jan 2000相差幾天。如果你的舊變數是生日,你可以除以365.25來得知在當天幾歲。

參考資源

Using dates in Stata http://www.ats.ucla.edu/stat/stata/modules/dates.htm

什麼是存活分析? (What is survival analysis?) 之二

接下來的問題是:有了這些資料,該怎麼分析呢?

你可能會想兩種方式:1) multiple regression; 2) logistic regression

Multiple regression

如果考慮用multiple regression,那最大的問題就是right censored,這些人婚姻狀況仍在持續進行中,是因為不繼續搜集資料了,才無法追蹤他們的婚姻狀況。對於這些人,你應該怎麼處理?不論是直接刪除這些資料,或是將這些人的值設為全體的平均值,都不是合理的處理方式。

另外,如果一個人有多段婚姻,multiple regression也不能正確估算每個人的背景對婚姻的影響。

Logistic regression

如果考慮用logistic regression,那所看的問題就不是長度,而是婚姻是否持續。但這樣作並沒有考慮到時間的長度,只能考慮如下的問題:黑人的離婚率是否比白人高?但就算不分析,你也可以想到:離婚率與婚姻長度可能有關係。如果你只看離婚率,而不看婚姻長度,對於「黑人的婚姻是否比白人婚姻持續更久」這樣的問題,估算就會有誤。

所以看到這裡,大概就知道存活分析(survival analysis)的使用時機。使用時機是:你多次觀察受試者,觀察受試者是否在某一個狀態 (比如:婚姻持續中或離婚;生存或死亡;通過英文檢定考試或未通過)。所以你的dependent variable,可以說是時間的長度,也可以說是狀態是否改變。

存活分析就是讓你更準確估計:某些因素(如:種族、社經地位)是否影響到某一狀態 (婚姻的長度) 的長度與發生機率。注意:你的資料必須是一個人觀察了多次,才適合使用這種方法。…

什麼是存活分析? (What is survival analysis?) 之一

每學一個統計方法,你都要先問自己:我為什麼要學新的方法?這方法能解決什麼樣的問題?要什麼時候用這個方法?透過這樣的學習,你才會知道什麼時候該用什麼方法。

所以先來情境假想:

一對夫妻,平均結婚多久?

這問題你可以從問卷來看:透過問卷詢問:你結婚多久了?

然而,這樣作的問題非常明顯:你詢問的時候,一對夫妻可能剛結婚,一對夫妻可能結婚了40年,但仍在婚姻狀態。你問到的「結婚多久」,不能完全反應他們結婚的長度。另外,如果有人有多次婚姻,你如何估算呢?

那多次作問卷有助於解決這個問題嗎?當然有,問題是:作了多次問卷,該怎麼分析呢?

你可能會得到下面的結果:第一個人結婚15年,第二個人有兩段婚姻,第一段有6年,第二段有13年。第三個人結了15年,諸如此類的。

survivial analysis

你會遇到幾種情形:

1) 結婚的期間完全在觀察範圍之內 (也就是在觀察期時開始與結束),這種資料稱作no censoring。

2) 你在開始搜集資料前,他們以前結婚了。這種資料叫作 left censoring。

3) 還有一種情形,像上圖第10個人的第二段,在結束搜集資料前,他的婚姻仍持續著,尚未結束。這種情況叫right censoring。

你可能會想:那到底什麼叫作censoring?你可以把它想成是代表missing data,no censoring就代表沒有missing data,left censoring就代表沒有左側資料,right censoring就代表沒有右側資料。

相關閱讀

存活分析(Survival analysis)介紹-Ⅰ~晨晰統計林星帆顧問整理:http://tw.myblog.yahoo.com/da_sanlin/article?mid=1748

Stata: 設定記憶體大小

設定Stata的記憶體是適合Stata11以前的版本。Sata 12已經可以自動設定記憶體大小了。

在Stata裡,有時候沒有設定足夠的大小,就會出現莫明其妙的錯誤,有時候告訴你是memory問題,有時候告訴你是no room。

反正,遇到奇怪的問題時,特別是單獨跑一個code可以,但很多個models跑起來就存不起來的問題,通常是記憶體大小不夠。

要設定記憶體,要先把資料清掉。

clear <br />set memory 100m, perm

perm 這個option是將這個記憶體設定選項永久存起來,只要設定一次就可以了。

建議一開始用Stata,就設定足夠的記憶體,免得以後出問題的時候,找半天找不到。…

Scroll to Top
Verified by MonsterInsights