2009年4月14日星期二

Stata教學文章索引


為了方便找Stata的指令、教學與說明,所以把曾寫過的文章列出來。稍後會把文章的連結放在網頁上方的選單。以後寫文章,也會將索引一併更新。

觀念和資源 (4)
用哪種統計軟體好?SAS, SPSS, or Stata?
Stata書籍介紹
Stata書籍特價中
Stata 線上教學錄影檔(英文)

 
基本設定 (2)

Stata: 設定記憶體大小
Stata: 如何解決c(showbaselevels) undefined 錯誤

轉檔匯入 (2)
Excel轉Stata
Stata: 讀取SPSS檔案格式
 
變數操作/資料處理 (16)
Stata: 產生虛擬變量(Create dummy variables)
Stata: 產生虛擬變量(Create dummy variables)進階篇
Stata: 加總同性質的資料(Aggregate similar Observations)
Stata: 加總同性質的資料(Aggregate similar Observations) ~2
Stata: 處理Missing Value
Stata: 處理Missing Value之二
Stata: 快速檢視 missing data
Stata: 比對部分字串變數
Stata: 產生累積次數分配
Stata: 切割字串
Stata: 字串變成小寫
Stata: 顯示完整變數值,而非使用科學記號
Stata: 時間變數處理
Stata: 產生分組序號
Stata: 計算分組個數
Stata: 如何計算不重複值的筆數


分析 (9)
Stata: 敘述統計(descriptive statistics)
Stata: 敘述統計(descriptive statistics)之二
Stata: Oneway ANOVA
Stata: regression的interaction
Stata: Nonparametric alternatives to conventional t tests
Stata: 如何作層次迴歸分析(hierarchical regression)?
Stata: 圖解 xtreg 結果
Stata: robust 有兩種
Stata: 探索性因素分析 (一)
Stata: 計算Kuder-Richardson (庫李信度)


輸出 (8)
Stata: 輸出Descriptive Statistics表格
Stata: 輸出correlation的表格
Stata: 輸出regression table到Word或Excel table到word和excel
Stata: 分組輸出regression table
Stata: 輸出Logistic Regression到Word和Excel
Stata: 輸出frequency表格
Stata: 更改 esttab 的顯著水準
Stata: 如何輸出robust standard error



繪圖 (3)
Stata 畫圖的資源
Stata: 如何分組畫regression line
Stata: 如何畫growth trajectories

 
研究 (2)
Stata: (Kuso) 性伴侶人數研究
Stata: (Kuso) 性伴侶人數研究 結果篇



總計:46篇
Related Stories Widget by LinkWithin

73 意見:

谷達 提到...

你好:
請問一下Stata中在匯入panel data的時候除了一般正常匯入的動作之外,還需要輸入什麼指令嗎??

苦情研究生 提到...

是有資料匯不進去/不知道該怎麼匯,還是匯進去之後,不知道該如何分析?

如果是後者,可參考這裡:http://dss.princeton.edu/online_help/analysis/panel.htm

前者的話,要看到資料長什麼樣子才知道該怎麼回答

米奇 提到...

您好,

最近在跑一個時間序列的資料,指導老師要我看一下是否有一階自我相關問題autocorrelation(AR1)的問題
我follow stata的指令
設tsset code(代碼) year(年度)
接著跑迴歸.
再輸入dwstat 結果dwstat跑不出來
出現了"sample may not include multiple panels"
因為我觀察的公司很多 樣本年度都很完整

於是我進一步去跑 cochrane-Orcutt.
結果他出現這樣的字眼
Number of gaps in sample: 547 (gap count includes panel changes)
(note: computations for rho restarted at each gap)
option rho not allowed
~有跑出表來 也有dw值

請問一下這是正常的嗎???

後來我留一家公司做為測試.結果就沒這樣的問題..

所以想請教您的是
1.stata跑時間序列資料時,是不是不能太多樣本公司
2.如果要跑很多樣本公司 那麼該怎麼處理

><"不好意思.由於在趕一篇要投稿的論文
若您能回應.實為榮幸..謝謝

Chin-Hsi Lin 提到...

你的data是panel data還是只是time series data?在tsset之前有沒有先sort?

米奇 提到...

謝謝您的回覆^^

嗯 我的是panel data 在tsset前有先排序
我的資料是類似下方表格
code year
1101 1998
1101 1999
1101 2000
1101 2001
1204 1998
1204 1999
1204 2000
1204 2001

我進行了tsset code year
出現了這樣的字眼
panel variable: code (strongly balanced)
time variable: year, 1998 to 2007
delta: 1 unit
於是..去跑迴歸之後
再打dwstat 就跑不出來

我就試著忽略它,去跑cochrane-Orcutt.
結果就出現那樣的字眼了..


不知是否我設定有問題還是><"
謝謝您的回覆

感恩

crl227 提到...

您好
請問有使用過Vuong test嗎? 如何從軟體中進行操作呢?
謝謝你^^

Chin-Hsi Lin 提到...

Hi 米奇,

tsset看起來沒問題,有問題的可能是你跑regression的方式。你是用ts或xt開頭的指令來跑的嗎?書上是這麼寫的,所以我也只知道這樣了...

另外,tsfill指令據說是fill in gaps in time variable,不知道有沒有相關?

Chin-Hsi Lin 提到...

Hi crl227,

請參考這裡:http://www.ats.ucla.edu/stat/stata/dae/zip.htm

我只懂這些也只能幫到這樣了~

米奇 提到...

呵.謝謝你耶

我是為了測試是否有一限自我相關性的問題
我是利用Prais y x1,corc的指令去跑的

至於Xtreg我試過了.但這個指令好像不是用來跑排除一階自我相關問題後的方式><"
另一個.我會試試看.

謝謝你的回覆.加油^^

若有問題的話.我在請教一下

謝謝

Chin-Hsi Lin 提到...

Hi 米奇,

你試過corrgram嗎?畫個圖出來會不會比較清楚?另外,wntestq搞不好也有點關係。

加油~~

米奇 提到...

hi 我還在努力中..哈感謝你喔

對了.另外請教一下二階段估計的stata指令

= =這又是另一篇了..

Chin-Hsi Lin 提到...

你問的是heckman嗎?指令就是heckman,相信你應該已經找到答案了。

lsw862 提到...

您好 我想請問要怎麼將panel形式的樣本按照公司隨機分成兩個群組 謝謝您的回答 麻煩了

Chin-Hsi Lin 提到...

請參考這篇:http://www.stata.com/support/faqs/stat/sampling.html

detnow 提到...

您好:
 
  我想請問一下,我論文資料是panel data的,我在EViews 用Hausman 測過要用Fixed ,測試過white test 要用white t調整。
 
  然後,我現在要用STATA測Vuong 想請問是不是STATA不能用panel data測Vuong? 我上網蒐尋過,他寫STATA出現的指令表示只能用在reg而不適用於xtreg 囧
  
  可是又有人說:用"對價的reg轉換xtreg再測Vuong"?
我跟STATA實在不太熟。所以想請教一下

  謝謝您!!

Chin-Hsi Lin 提到...

問題真難啊~

我記得我上HLM的課,沒學到怎麼比較model之間的difference @@ 我好像也不記得我翻書的時候看到,我會再查一查。

我猜人大那篇帖子的意思是:用reg加上cluster這個option來取代你的xtreg,得出結果對後再測vuong。

Fanny 提到...

您好,我想請問一下使用stata來作tobit regression的問題,如果我的應變數是ln(1-x),但是我只要對x作設限制的話,那這樣要怎麼下指令呢?因為單獨在tobit迴歸式後面加入ll(0)好像是對整個ln(1-x)去作,但我卻只要對x作,請問一下,這樣該怎麼作好呢?謝謝您

Chin-Hsi Lin 提到...

用if command來作不行嗎?

icejoseph 提到...

您好,我想請問一下使用stata來作lag的資料,但是我要將每間公司的第一期拿掉,請問我用這個tsset year code 後,跑出
panel variable: year (unbalanced)
time variable: code, 1333 to 9951, but with gaps
delta: 1 unit

然後謝lag的代碼gen Lag_rev = L.rev
撋全部變成(5033 missing values generated)

請問我哪裡搞錯了?

Chin-Hsi Lin 提到...

看起來是你本來就有這些missing values吧?你gen之後,看看sum,observation number是不是一樣。

george 提到...

請問您,如果我要跑stepwise regression,可以和bysort一起使用嗎?

摘星 提到...

你好:
我有一個問題,想請教你
請您幫幫忙!!告訴我該怎麼做
我的資料型態是
A公司 20 1 71
A公司 12 0 69
A公司 25 1 75
B公司 20 0 56
B公司 11 1 45

但是我最後是 只需要彙整成
(筆)
A公司 57 2 215 3
B公司 31 1 101 2

但是我每個公司 可能有 2筆3筆4筆5筆都不一定
請問stata我應該怎麼處理比較好呢??
我苦惱了很久~~煩請你可以告訴我嗎?
謝謝~謝謝
或是我電話向您請教也可以
謝謝
我的信箱
95353503@nccu.edu.tw
謝謝喔

Chin-Hsi Lin 提到...

@摘星:

見這篇:http://newgenerationresearcher.blogspot.com/2009/04/stata-aggregate-similar-observations.html。

摘星 提到...

您好
謝謝!我看懂了
但是 他出現r(109)
是代表我資料型態有錯嗎 ?

謝謝

摘星 提到...

哇 !
我似乎是做出來了~~~~~
我好感動喔!!!!
真的!!我非常謝謝你
謝謝!!謝謝
你真的很好

婷婷 提到...

您好,冒昧一問:請問HLM是否可以分析panel data呢?因工具書皆以單一時點的橫斷面資料,因此有此疑惑,謝謝。

Chin-Hsi Lin 提到...

可以,像latent growth model就可以用HLM來分析。例子請參考:http://www.ats.ucla.edu/stat/MPlus/output/lgcm1.htm

ka178555 提到...

請問我要做事件研究法~我的資料形態大致上是如此~
公司名稱 決議日期
1103 嘉泥 2005/7/19

我需要從另一份資料~找出2005/7月~還有前三個月~及後十二個月的資料~老師說~請我用stata做~設定完就會自己跑了~~有數百間公司及資料~還要我跑月完再加跑日~請問~我到底要從何做起~~我沒用過stata~可以麻煩教教我要看哪個說明嗎?

ming 提到...

您好,可否請教您一個問題:

在設定STAT的記憶體大小時(set mem)
桌機上限只能設到942m,
但是在筆電可以設定到1000m以上,
筆電和桌機的記憶體大小皆相同,

想請問要怎樣才能讓桌機的STATA提高設定記憶體的大小呢?
因為資料大小每筆約1G...要開啟資料都會出現記憶體不足的警告訊息>"<

再麻煩您解惑~感謝!!

Chin-Hsi Lin 提到...

因為你筆電的記憶體是與顯示卡的記憶體共同的,所以才會比較少。

建議你在桌機打開,執行compress指令,另存成新檔,然後轉移到筆電上使用看看,是否大小縮小了一些。

再不然花錢買記憶體也不會太貴,不然你可能到時候執行運算時可能也會遇到問題。

ka178555 提到...

請問是否能幫跑數據~我的email~ka178555@hotmail.com
可以詳談嗎?

Chin-Hsi Lin 提到...

Hi ka18555,

我不懂什麼是事件研究法,不過你的問題主要是處理時間函數,可以參考stata的在線說明:http://www.stata.com/help.cgi?date+functions。

我自己已分身乏術,沒辦法幫你跑,抱歉!

阿子 提到...

您好:
請問stata有沒有尋找結構性變動點的指令阿??
還是只能分別用chow test作檢定??

Gracchus 提到...

您好,

不好意思打擾您了,
想請問您: 日內時間序列資料(有分,時,秒)如何用stata畫出呢?
我只能在不讀取時間的限制下畫出資料, 一旦X軸對應了有分/時/秒時間, 就不能讀取= =
請您救命阿~~~ 可憐研究生留

Chin-Hsi Lin 提到...

你的時間是什麼格式的?可不可以再具體說一點,我才能具體在我的電腦實驗一下

Gracchus 提到...

大大好!!

我的時間格式是這樣:
"Date","Time","Open","High","Low","Close","Up","Down"
05/01/2001,2320,1.0224,1.0224,1.0222,1.0222,0,0
05/01/2001,2325,1.0222,1.0222,1.0222,1.0222,0,0
05/01/2001,2350,1.0224,1.0224,1.0224,1.0224,0,0
05/01/2001,2355,1.0224,1.0224,1.0224,1.0224,0,0
05/02/2001,0005,1.0221,1.0221,1.0220,1.0220,0,0
05/02/2001,0020,1.0222,1.0222,1.0218,1.0218,0,0
05/02/2001,0025,1.0220,1.0220,1.0220,1.0220,0,0
05/02/2001,0030,1.0222,1.0222,1.0222,1.0222,0,0
05/02/2001,0040,1.0226,1.0227,1.0226,1.0227,0,0
05/02/2001,0045,1.0231,1.0232,1.0231,1.0232,0,0
05/02/2001,0050,1.0231,1.0231,1.0231,1.0231,0,0
05/02/2001,0055,1.0237,1.0238,1.0237,1.0238,0,0
05/02/2001,0100,1.0239,1.0240,1.0238,1.0240,0,0
05/02/2001,0105,1.0241,1.0241,1.0236,1.0236,0,0
05/02/2001,0110,1.0236,1.0240,1.0236,1.0240,0,0
05/02/2001,0115,1.0239,1.0240,1.0239,1.0240,0,0
05/02/2001,0130,1.0240,1.0240,1.0239,1.0239,0,0
05/02/2001,0135,1.0237,1.0237,1.0236,1.0236,0,0

amy 提到...

你好,請問在stata的順序邏輯迴歸分析中,該如何跑出wald 以及-2 Log Likelihood,spss就有這選項,那stata該如何跑出呢?謝謝你~

Chin-Hsi Lin 提到...

@amy,

跑ologit的時候,會給你LR chi2。如果你要作post estimation,跑完之後用test command就行了。詳情可參考 help ologit_postestimation

Chin-Hsi Lin 提到...

@Gracchus,

可以再多說說你想要畫什麼樣的圖嗎?x軸是時間,y軸是open這個值嗎?你現在畫圖的語法是什麼呢?

s 提到...

你好~
我想請問一下使用stata來作tobit regression的問題,如果我的自變數作設限制的話,那這樣要怎麼下指令呢?或是可以直接拉選單就可以解決呢?
謝謝您

Chin-Hsi Lin 提到...

@s,

要對自變數作限制的話,下if 指令不就好了嗎?你的問題是什麼呢?

顗瑄 提到...
作者已經移除這則留言。
顗瑄 提到...

您好 我想請問一下....

我的樣本資料裡面,每一家公司/每一年都要計算出一個R。
不知道STATA是否有指令可以幫助我?

如下表:為原始資料
PRC BPS CPS EPS
1 XXX YYY ZZZ III

我希望根據迴歸式跑完以後變成,如下表:
PRC BPS CPS EPS BPS_P(X=BPS P=Y) BPS_CPS_P
1 XXX YYY ZZZ III UUU PPP


不知道有沒有統計高手可以回答我的問題!!

Chin-Hsi Lin 提到...

@顗瑄,

對不起,你說的很清楚,我看的很模糊啊!一家公司/每一年都要計算出一個 R,你的 R 指的是什麼呢?

另外,我看不太懂你怎麼從第一個表變到第二個表的。

顗瑄 提到...

您好,我的R是指R2的部分... 我資料總共有五萬多筆須要跑出五萬多筆的迴歸,我想要問在STATA裡面,要怎麼跑會比較快?
R2輸出的方式,有辦法能夠像EXCEL那樣...一個個排下來嗎?

Chin-Hsi Lin 提到...

@顗瑄,

你的五萬多筆迴歸是怎麼跑的呢?如果可以在每筆後面用est store 模組名,應該可以一次輸出的,就跟輸出其它regression結果一樣

小嫩 提到...

您好, 不好意思~我有兩個問題想請教@@

1.原本設定迴歸結果輸出成表格時,想讓表格中的數值變為統計量,而括號內的數值變為P值,有沒有辦法呢?@@ 因為找了很久還是沒有頭緒(很喜歡Stata的感覺所以不想用其他的軟體...)

2.如果panel data的迴歸式為 log Q = log ( 1 + B X1 )
B為估計係數, 語法不知道應該怎麼下手...:(

以上問題是研究了一段時間後, 還是無解
還煩請您提示 @@
謝謝你>"<

提到...

你好~
我想請問如何用stata將變異數均質化後 建立迴歸模型
我利用whitetst指令作檢定後 結果是變異數不齊一
但參考資料寫說可利用whitetst,fitted
我輸入程式碼後 卻出現error option is not allowed
請問還有什麼指令可以利用呢?
謝謝~

Chin-Hsi Lin 提到...

@曾,

請問你完整指令是什麼?

提到...

我的指令是reg car(依變數) fa imp imfa inta
whitetst,fitted
但會出現error
如果只打reg car(依變數) fa imp imfa inta
whitetst
就會跑出檢定的結果
但我想要的是均質化後fit的model

Chin-Hsi Lin 提到...

我試了沒問題啊!你要不要先試試作者的資料庫與指令:

. use http://fmwww.bc.edu/ec-p/data/wooldridge/HPRICE1
. reg lprice llotsize lsqrft bdrms
. whitetst
. whitetst, fitted

晴天 提到...

請問研究生
台灣真的很少人會用STATA, 感謝您提供這個寶貴的平台。我目前用STATA進行多層級分析, 但不會計算ICC(intraclass coefficient), 請問可否利用fixed modle算出的Standard error(當作between varriance),再以random model計算出之standard error當作within variance進而計算出ICC嗎?

Chin-Hsi Lin 提到...

看看這篇:http://newgenerationresearcher.blogspot.com/2010/01/stata-xtreg.html

PJLee 提到...

您好,
我想請問如何用stata 畫出mean, standard error的曲線圖(不需要bar, 只要有代表mean點的曲線變化圖, 同時加上standard error bar即可, 雖然基本可是在網路上搜尋一直找不到畫法)?

資料目前假設是類似病患服藥後隨時間(1~5個月)血壓(bp)變化型態如下 :
id bp_1m bp_2m bp_3m bp_4m bp_5m
1 160 150 145 142 143
2 170 140 142 130 129
3 165 161 160 162 155
4 180 140 150 120 110
5 170 135 140 138 135

想知道如何畫出這樣的圖((y軸是所有病患在該時間點的血壓bp:mean+ standard error bar,x軸是時間)? 還是我應該把資料型態變成,id time bp(一個病人有多筆對應不同時間血壓資料)?

如果因為每個病患追蹤時間不一, 希望圖形x軸標示時間點的下方相對應位置同時列出該時間點的病人數又該如何表示呢?

小烏龜 提到...

你好~~我想請問一下,你知道關於fixed effect,stata要怎麼跑嗎???謝謝你

Chin-Hsi Lin 提到...

@小烏龜,

試試areg。

王雅琪Amanda 提到...

請問我要如何用指令將下表
id level
1 A
1 A
1 B
2 A
2 B
3 B


轉換成
id level #ofA #ofB
1 A 2 1
1 A 2 1
1 B 2 1
2 A 1 1
2 B 1 1
3 B 0 1

簡單來說

就是我要計算id=1、2、3的資料中有幾個A跟B(新增變數)

但我真的已經想到快沒有辦法了

希望來找您幫我

請問有沒有好的方法可以解決呢

王雅琪Amanda 提到...

對不起 上述我問的那篇 表格都會跑掉
>< 但希望您能給予我一些建議喔

拜託拜託
我想好久了
指令也都換過很多了
但都想不到有甚麼方法

Chin-Hsi Lin 提到...

egen acount = group(level)
bys id: egen acount2 = count(acount) if acount==1
bys id: replace acount2 = acount2[_n-1] if acount2==.
replace acount2=0 if acount2==.


bys id: egen bcount2 = count(acount) if acount==2
gsort +id -level
by id: replace bcount2 = bcount2[_n-1] if bcount2==.
replace bcount2=0 if bcount2==.

基本上就是這樣子了。不行的話就微調一下,應該可以的。
這或許不是最快的辦法,但至少是我目前想到的辦法。

王雅琪Amanda 提到...

不好意思 那我在請問一下喔

因為你的方法真的是OK的耶

但是我發現他會呈現出這樣的結果

id level #ofA #ofB
1 A 1 0
1 A 2 0
1 B 2 1
2 A 1 0
2 B 1 1
3 B 0 1

也就是只有第三筆id 才能呈現出確實的資料
所以想請問您 該如何讓id=1的那三組 都呈現
#ofA=2
#OFB=1呢??

真的非常謝謝你
你真的幫了我超大超大的忙

Chin-Hsi Lin 提到...

見新文:http://newgenerationresearcher.blogspot.com/2012/04/stata_26.html

tr 提到...

最近都在跑panel data的xtreg fe與re統計結果
但經常出現一個很困擾的問題
當我執行完est store fixed後,要繼續測定re
STATA就會出現no room的指令要求我設定memory

可是不管我設定10m 100m 1000m 或 10000m
都會出現no; data in memory would be lost
上網查過,把檔案clear之後,設定memory就不會了
但我clear後,還是no; data in memory would be lost
重新匯入資料再做一次xtreg,依然卡在re的檢測

除非我不把控制變數納入分析,就可以繼續跑
但老師說這樣就不準確了,叫我自己再試試clear重新匯入

奇怪的是,除了內容數據不同外,資料筆數都差不多
其他的model都可以很成功的跑完,唯獨這類model出現問題
讓我不知道到底發生什麼問題

請求專家幫助>"< 感謝

《疑似貼了好幾次,但每次重整之後都沒看到自己的留言,所以如果重覆留言請見諒》

Chin-Hsi Lin 提到...

你set memory是用perm選項嗎?你打query memory試試,看看你設定的是否存起來了。

不過為什麼要跑fe,又要跑re呢?

tr 提到...

我只是單純在上面key上set memory 100m 而已
perm 是...是什麼?

這次設定依然是一個反抗的結果
query memory後,看到的記憶體大小是1M 讓我心碎
但仍然無法set
呃呃呃

因為要做hausman檢定,所以先把fixed結果store之後
再做re,就可以一次test兩者結果
實際執行的原因我也不是很清楚,是看老師示範抄下來的

Unknown 提到...
作者已經移除這則留言。
Chin-Hsi Lin 提到...

@tr,

把資料全clear,之後打set memory, perm
這樣你的記憶體設定就會存起來了。
之後再試著跑你的xtreg,應該就可以了

tr 提到...

雖然不清楚是怎麼成功的
鍵入set memory, perm的時候
它出現',' found where number expected
一看到紅字就讓我有點擔心

但再度鍵入set memory時,發現可以設定記憶體了!
終於成功跑出我想要的完整結果
感謝你!

Chin-Hsi Lin 提到...

@tr,

喔,應該是set memory 100m, perm 才對,中間要放記憶體大小。你可以試你的需要再修改修改。

PS 提到...

妳好
我想請問怎麼檢驗模型有無內生性問題?
是用Hausman嗎?如何下指令呢?
跑出結果後如何判定有無內生性問題?
謝謝

王皓偉 提到...

可以請問一下,如何用STATA計算,人名產業出現的次數呢?
例如我想要計算 1這個人在A產業以外其他產業出現的次數
改怎麼用STATA寫出指令呢?
產業 人名
A 1
A 2
B 1
B 3
C 1
C 4
C 5
D 6
D 1
E 1

佳泓 提到...

Interesting. But R is much more common and easy-customized than Stata.

CHUN I 提到...

company Year Month Day ROA
hncbbank 2006 6 30 0.26
fubonbank 2006 6 30 0.04
cathaybank 2006 6 30 0.19
cdibank 2006 6 30 3.82
esunbank 2006 6 30 -0.15
yuantabank 2006 6 30 -0.25
megabank 2006 6 30 0.53
taishinbank 2006 6 30 0.28
skbank 2006 6 30 -0.67
sinopacbank 2006 6 30 0.34
chinatrustbank 2006 6 30 -0.21
firstbank 2006 6 30 0.26
jihsunbank 2006 6 30 -4.34
bot 2006 6 30 0.19
tcb 2006 6 30 0.19
這是我EXECL的資料位置 ROA是Y 如果我要得是PANEL DATA
EXECL的排序要如何排 再轉成DTA呢?X和Y有一定排列嗎?

Nina 提到...

你好我是STATA新手,想请问怎么样可以显示每家公司的R2?STATA有具体的指令吗?

張貼留言