2021年4月20日,Stata 17如約而至。本次亮點更新共有29處。下面我們將分別介紹每一項更新。這些功能中的大多數將對各個學科的研究人員有很大幫助。
1. 表格
用戶一直希望我們提供更優異的表格功能?,F在您可以輕松地創建用于比較回歸結果或摘要統計信息的表格,可以創建自定義樣式并將其應用于所構建的任何表格,還可以將表格導出到MSWord,PDF,HTML,LaTeX,MS Excel或Markdown并且將它們放在報告中。同時table命令已經被修改。新的collect前綴從任意多個命令中收集任意多個結果,生成表,將它們導出為多種格式。您還可以使用新的Tables Builder來單擊并創建表格。
2. 貝葉斯計量經濟學
Stata可用于計量經濟學,并且可以用Stata進行貝葉斯統計?,F在,Stata 17還可以用來執行貝葉斯計量經濟學。想用概率陳述來回答經濟問題,例如,那些參加職業培訓計劃的人是否更有可能在未來五年內繼續受雇?想結合經濟過程的先驗知識嗎?Stata的新貝葉斯計量經濟學功能可以提供幫助。適合許多貝葉斯模型,例如橫截面模型、面板數據模型、多層模型和時間序列模型。使用貝葉斯因子比較模型,獲得預測結果。
在經濟計量模型中使用貝葉斯方法的一個優點是結合了實際中常用的模型參數的外部信息。這些信息可能來自歷史數據,也可能來自對經濟過程的自然了解。無論哪種方式,貝葉斯方法都可以使我們將外部信息與我們在當前數據中觀察到的信息結合起來,以形成對感興趣的經濟過程的更現實的看法。
Stata 17在貝葉斯計量經濟學領域提供了一些新功能:
?貝葉斯VAR模型
?貝葉斯IRF和FEVD分析
?貝葉斯動態預測
?貝葉斯縱向/面板數據模型
?貝葉斯線性和非線性DSGE模型
3. Stata運行更快
Stata重視數據準確性的同時也非常重視處理速度。兩者之間通常需要權衡取舍,但Stata努力為用戶提供兩全其美的選擇。在Stata 17中,我們更新了sort和collapse背后的算法,使這些命令運行更快。同時,對一些估計命令,如mixed,運行速度上也得到了改進,這些命令適合多級混合效應模型。
4. DID和DDD模型
新的估計命令didressage和xtdidressage用重復測量數據擬合差異中的差異(DID)和差異中的差異或三重差異(DDD)模型。didregress適用于重復橫截面數據,xtdidregress適用于縱向/面板數據。
利用重復測量數據,用DID和DDD模型估計平均治療(ATET)效果。治療效果可以是藥物治療對血壓的影響,也可以是培訓計劃對就業的影響。與現有的teffects命令提供的標準橫截面分析不同,在評估ATET時,是否對組和時間效應進行了分析控制,其中組可識別重復測量。附加群體效應及其與時間相互作用的DDD分析控制---您最多可以指定三個組變量或兩個組變量和一個時間變量。
5.區間刪失Cox模型
半參數Cox比例風險回歸模型通常用于分析未審查和右刪失事件時間數據。新的估計命令stintcox使Cox模型適用于區間刪失的事件時間數據。
區間刪失發生在對某個感興趣的事件(如癌癥復發)的時間沒有直接觀察到,但已知在某個區間內時。例如,定期檢查可以發現癌癥復發,但不能觀察到確切的復發時間。我們只知道在先前檢查和當前檢查之間的某個時間段復發了癌癥。忽略區間刪失可能導致不正確的(有偏見的)結果。
當基線風險函數完全不確定時,區間刪失事件時間數據的半參數估計具有挑戰性,因為沒有一個事件時間是精確觀測的。因此,這些數據的“半參數”建模通常采用樣條法或分段指數模型作為基線風險函數。直到最近的方法學進展(在stintcox命令中實現)才提供真正的區間刪失事件時間數據半參數建模。
6. 多元變量分析
您需要分析多個研究的結果。這些研究報告了多種效應大小,它們很可能在一項研究中相互關聯。單獨的meta分析(例如使用現有meta命令的meta分析)將忽略相關性?,F在可以使用新meta mvregression命令執行多元meta分析,這將解釋相關性。
7.貝葉斯VAR模型
Bayes前綴現在支持var命令來擬合貝葉斯向量自回歸(VAR)模型。
VAR模型研究多個時間序列之間的關系,包括結果變量的滯后作為模型預測因子。
已知這些模型具有許多參數:有K個果變量和p個滯后,至少就有p(K ^ 2 + \ nn1)個參數。模型參數的可靠估計非常具有挑戰性,尤其對于小數據集。
貝葉斯VAR模型通過結合模型參數的先驗信息來穩定參數估計,從而克服了這些挑戰。
8.貝葉斯多級模型:非線性、聯合、 SEM-like等
使用bayesmh命令新的隨機效果語法,擬合貝葉斯多層次模型的寬度。
您可以更容易地擬合單變量線性和非線性多層次模型?,F在您可以擬合多元線性和非線性多層次模型了!并考慮到增長的線性和非線性多級模型,聯合縱向和生存時間模型,SEM型模型等。
9.治療效果lasso評估
您可以使用teffects來估計治療效果。您也可以使用lasso來控制眾多協變量。(當我們提到“多”時,指的是成百上千甚至更多?。┈F在您可以使用telasso來估計治療效果并控制眾多協變量。
10.Galbraith圖
新命令meta-galbraithplot生成Galbraith圖用于meta分析。這些圖可用于評估研究的異質性和檢測潛在的異常值。當有許多研究時,它們也被用來替代森林圖,用于總結meta分析結果。
11.留一法元分析
您現在可以通過使用新的選項leaveoneout與meta summarize和meta forestplot來執行留一元的元分析。
省略元分析通過在每項分析中排除一項研究來進行多項元分析。研究產生夸大的效應量是很常見的,這可能會扭曲整體結果。省略的meta分析有助于調查每個研究對總體效應大小估計的影響,并確定有影響力的研究。參見[META] META summarize和[META] META forestplot。
12.貝葉斯縱向/面板數據模型
您可以通過使用xtreg來擬合隨機效應面板數據或縱向模型,使用xtlogit或xtprobit來擬合連續結果,使用xtlogit或xtprobit來擬合二進制結果,使用xtologit或xtoprobit來擬合順序結果等。在Stata17中,您可以通過簡單地在這些模型前面加上bayes來擬合這些模型的Bayesian版本。
13.面板數據多項式logit模型
Stata的新估計命令xtmlogit將面板數據多項式logit(MNL)模型與隨時間觀察到的分類結果相匹配。假設我們收集了幾個星期關于個人對餐館選擇的數據。餐廳選擇是沒有自然順序的分類結果,因此我們可以使用現有的mlogit命令(使用cluster-robust標準誤差)。xtmlogit直接對單個特征進行建模,因此可能產生更有效的結果。它可以很好地解釋可能與協變量相關的特征。
14.零膨脹的有序logit模型
新的估計命令ziologit擬合零膨脹的有序邏輯回歸模型。當數據在最低類別中表現出比標準有序邏輯模型預期的更高的觀測值時,使用該模型。我們將最低級別的觀察值稱為零,因為它們通常對應于沒有行為或特征。
零膨脹是通過假設零同時來自邏輯模型和有序邏輯模型來解釋的。每個模型都可以有不同的協變量,結果可以顯示為比值比而不是默認系數。
15.趨勢非參數檢驗
nptrend命令現在支持跨有序組的四個趨勢檢驗。您可以選擇Cochran-Armitage檢驗,Jonckheere-Terpstra檢驗,線性趨勢檢驗和Cuzick檢驗中進行選擇。前三個檢驗是新的,第四個檢驗由nptrend執行。
16.貝葉斯動態預測
動態預測是在擬合向量自回歸(VAR)模型等多變量時間序列模型后常用的預測工具。在擬合經典var模型后,使用fcast計算動態預測。在使用bayes:var擬合貝葉斯VAR模型之后,現在可以使用bayesfcast來計算貝葉斯動態預測。
貝葉斯動態預測產生預測值的整個樣本,而不是經典分析中的單個預測。該樣本可用于解答各種建模問題,例如,在估計預測不確定性時,模型在不作漸近正態假設的情況下預測未來觀測值的能力。這對于可能懷疑漸近正態性假設的小數據集特別有吸引力。
17.貝葉斯IRF和FEVD分析
脈沖響應函數(IRFs),動態乘數函數和預測誤差方差分解(FEVDs)通常用于描述多元時間序列模型(如VAR模型)的結果。VAR模型具有許多參數,可能難以一一解釋。IRFs和其他函數將多個參數的效果合并到一個摘要中(每個時間段)。例如,IRFs測量一個變量的沖擊(變化)對給定結果變量的影響。
貝葉斯IRFs(和其他函數)使用IRFs的“精確”后驗分布產生結果,這不依賴于漸近正態性的假設。它們還可以為小數據集提供更穩定的估計,因為它們包含了有關模型參數的先驗信息。
18. lasso懲罰選擇BIC
懲罰參數的選擇是lasso分析的基礎。使用小的懲罰函數可能會包含太多的變量。使用較大的懲罰函數可能會忽略潛在的重要變量。
Lasso估計已經提供了幾種懲罰選擇方法,包括交叉驗證、自適應和插件?,F在可以使用貝葉斯信息準則(BIC)通過指定選擇(BIC)選項來選擇lasso之后的懲罰參數進行預測,并選擇lasso進行推斷。此外,新的后估計命令bicplot在擬合lasso模型后,將BIC值繪制為懲罰參數的函數。這為最小化BIC函數的懲罰參數的值提供了方便的圖形展示。
19.集群數據lasso分析
現在,您可以在套索分析中考慮集群數據。忽略聚類可能會導致錯誤結果,因為同一聚類中的觀測值之間存在相關性。使用用于預測的lasso命令(如lasso和elasticnet),可以指定新cluster({\it clustvar})選項。使用用于推斷的lasso命令(如poregress),可以指定新的vce(cluster{\it clustvar})選項。
20.貝葉斯線性和非線性DSGE模型
現在,可以通過在dsge和dsgenl前面加上前綴bayes:來擬合貝葉斯線性和非線性動態隨機一般均衡(DSGE)模型。通過從30多種不同的先驗分布中進行選擇,結合有關模型參數范圍的信息。進行貝葉斯IRF分析,進行區間假設檢驗,使用Bayes因子比較模型等。
21. Do-file編輯器:導航控制,增強的書簽功能……
Stata 17中的Do-file Editor有以下改進:
1.書簽:現在與do-files一起保存。
2.新的導航控件:可以輕松瀏覽do文件。
3.語法高亮顯示支持Java和XML。
4.選中區域中引號,括號和方括號的自動補全。例如,選擇文本mymacro,然后輸入左引號`; Do文件編輯器將用單引號綁定文本選擇,將選擇更改為“mymacro”。
書簽:Do文件編輯器最需要的特性之一是能夠在Do文件中保存書簽。書簽用于標記感興趣的行,以便以后更容易地導航到它們。書簽在瀏覽長Do-files時特別有用。您可以將書簽添加到do文件中執行數據管理、顯示摘要統計和執行統計分析的部分。然后,您可以使用菜單,工具欄或新的導航控件在這些部分之間快速來回移動,而無需滾動幾行代碼來查找所需的部分。
導航控件:Stata 17通過新的導航控件使導航do-files更容易,該控件顯示書簽及其標簽的列表。從導航控件中選擇書簽會將Do文件編輯器移動到書簽所在的行。除了書簽之外,導航控件還將顯示do文件中的程序列表。從導航控件中選擇一個程序把Do文件編輯器移到程序的定義中??梢暂p松的將程序添加到導航控件中。Do文件編輯器將自動向導航控件添加程序定義。
22.日期和時間功能更新
Stata 17增加了新的便利功能,用于處理Stata和Mata中的日期和時間。新功能可以分為三類:
1.Datetime持續時間:Datetime durations:用于獲取持續時間的函數,例如ages。
2.相對日期:基于其他日期返回日期的函數,例如相對于給定日期的下一個生日。
3.Datetime組件:從Datetime值中提取不同組件的函數。
新函數以閏年、閏日和閏秒(如適用)為單位。閏秒是一秒調整,偶爾應用于協調通用時間(UTC)。
23.Intel Math Kernel Library (MKL)
Stata 17引入了在兼容硬件(所有基于Intel和AMD的64位計算機)使用Intel Math Kernel Library(MKL),并提供了深度優化的LAPACK例程。
LAPACK代表線性代數包,是一套免費提供的例程,用于求解聯立方程組、特征值問題和奇異值問題等。Mata運算符和函數(例如qrd()、lud()、和cholesky())在可能的情況下利用LAPACK進行許多數值操作。
由英特爾MKL支持的LAPACK提供了最新的LAPACK例程,這些例程針對現代Intel和現代AMD處理器使用的64位Intel x86-64指令集進行了優化。使用MKL的Mata函數和操作符在性能方面有很大的優勢。
最重要的是,您無需采取任何措施即可充分利用速度提升的優勢。使用這些Mata函數和運算符以及Mata函數和運算符本身的Stata命令將在兼容硬件上自動使用“英特爾MKL”。
24. 運用于Apple Silicon
Stata 17 for Mac是一個通用的應用程序,它將在帶有Apple Silicon和Intel處理器的Mac上運行。帶有Apple Silicon的Mac包括新的MacBook Air, MacBook Pro和Mac mini,它們都帶有M1處理器。M1芯片有更高的性能和更高的能效。
盡管M1 Macs被認為是入門級的,但我們發現,M1 Macs本機運行Stata的性能比Intel Macs高出30–35%。它們的性能甚至遠遠超過價格超過兩倍的Intel Mac!對于那些堅持在他們的Apple Silicon Mac電腦上只使用Apple-Silicon原生軟件的用戶來說,從安裝程序到應用程序本身,Stata 17的任何部分都不需要用到Rosetta 2。
Stata的功能與在M1 Mac或Intel Mac上本地運行Stata的方式相同,M1 Mac不需要特殊許可證。在未來的幾年里,我們將繼續支持并發布針對帶有英特爾處理器的Mac的新版本Stata。
25. JDBC
將Stata與數據庫連接變得更加容易。Stata 17添加了對JDBC(Java數據庫連接)的支持。JDBC是在程序和數據庫之間交換數據的跨平臺標準。
新的jdbc命令支持jdbc標準,用于與具有矩形數據的關系數據庫或非關系數據庫管理系統交換數據。您可以從一些最流行的數據庫供應商(如Oracle、MySQL、Amazon Redshift、Snowflake、Microsoft SQL Server等)導入數據。jdbc的優點在于它是一個跨平臺的解決方案,因此我們的jdbc設置對Windows、Mac和Unix系統的工作方式是相同的。
如果您的數據庫供應商提供了一個JDBC驅動程序,那么您可以下載并安裝該驅動程序,然后通過JDBC在數據庫上讀取、寫入和執行SQL。您可以將整個數據庫表加載到Stata中,也可以使用SQL SELECT將表中的特定列加載到Stata中。您還可以將所有變量插入數據庫表中,或僅插入數據集的子集。
26.集成Java
在Stata 17中,您現在可以直接在Stata中嵌入和執行Java代碼。您可以在以前版本的Stata中創建和使用Java插件,但這需要您編譯代碼并將其捆綁到Jar文件中。在do文件中執行Java,您可以自由地執行直接綁定到Stata代碼的Java代碼。您可以在do文件或ado文件中編寫Java代碼,甚至可以從Stata中交互式地調用Java(如JShell)。
Java的優勢之一在于它與Java虛擬機一起打包的大量APIs。還有許多有用的第三方庫可用。根據需要,您甚至可以編寫并行代碼以利用多核運算。
您編寫的Java代碼是動態編譯的,不需要使用外部編譯器。此外,還包括Stata函數接口(SFI)Java包,提供Stata和Java之間的雙向連接。SFI包中有訪問Stata當前數據集、幀、宏、標量、矩陣、值標簽、特征、全局Mata矩陣、日期和時間值等的類。
Stata將Java開發工具包(JDK)與其安裝捆綁在一起,因此不涉及其他設置。
27. 集成H2O
在Stata 17中,我們一直在嘗試連接H2O,這是一個可擴展的分布式開源機器學習和預測分析平臺。您可以在https://docs.h2o.ai/上了解有關H2O的更多信息。
通過集成H2O,您可以在Stata上啟動、連接和查詢H2O集群。此外,我們提供了一套命令來操作集群上的數據(H2O幀)。例如,可以通過導入數據文件或加載Stata的當前數據集來創建新的H2O幀。您還可以從Stata中拆分、合并和查詢H2O幀。
雖然這對我們來說還處于實驗階段,但我們希望讓我們的用戶可以試用。另一方面,因為這是一個實驗狀態,語法和功能可能會發生變化。當使用Stata命令提供對H2O給定功能的訪問時,請記住這是H2O功能。雖然您可以通過Stata命令訪問它,但它所能做的高于H2O并且在Stata之外。
28. PyStata
Stata 17引入了一個我們稱之為PyStata的概念。PyStata是一個包含Stata和Python交互的所有方式的術語。
stata16的特點是能夠從Stata調用Python代碼。Stata17通過允許您通過一個新的
pystata Python包從一個獨立的Python環境調用Stata,大大擴展了這一功能。
您可以在基于IPython內核的環境中方便地訪問Stata和Mata(例如,Jupyter Notebook和控制臺以及Jupyter Lab和控制臺);在支持IPython內核的其他環境中(例如Spyder IDE和PyCharm IDE);或者從命令行訪問Python時(例如,Windows命令提示符、macOS終端、Unix終端和Python的IDLE)。
29.帶Stata的Jupyter Notebook
Jupyter Notebook是一個功能強大且易于使用的web應用程序,它允許您將可執行代碼、可視化效果、數學方程和公式、敘述性文本和其他富媒體組合在一個文檔(“筆記本”)中,用于交互式計算和開發。它被研究者和科學家廣泛地用來分享他們的想法和成果,以促進合作和創新。
在stata17中,作為PyStat的一部分,可以使用IPython(交互式Python)內核從Jupyter筆記本調用Stata和Mata。這意味著您可以在一個環境中結合Python和Stata的功能,使您的工作易于復制并與其他人共享。
從Jupyter Notebook調用Stata是由新的pystata Python包驅動的。
以上是Stata 17 29處更新的內容,對于更詳細的功能介紹,還請移步科學軟件網查看。
北京天演融智軟件有限公司(科學軟件網)是Stata軟件在中國的授權經銷商,為中國的用戶提供優質的軟件銷售和培訓服務。
北京天演融智軟件有限公司(科學軟件網)
北京/廣州/成都
電話:400 810 4001/ 18510103847