介紹一款Stata的潛在替代工具:Gretl

2021-02-21 阿爾山下

知乎上有人問我如何看待Gretl,天了嚕我居然沒聽過這個東西!趕快去下載了一個試用一下壓壓驚。下面試用報告呈上。先說結論吧,Gretl這個東西還是很不錯的,特別是GMM、MLE等功能印象深刻。如果你的工作需要一些計量上的編程,比Stata的稍微複雜,但是又沒有那麼複雜,還是強烈建議關注一下的,非常容易上手。比如最經典的CCAPM的GMM估計,14行程序就搞定了,

我在ubuntu上試了一下,可以直接apt-get install gretl安裝,略驚訝,要知道julia 都沒這個待遇。上手試了一下,very impressive。

我們先來看一下這個軟體的介紹:

Features

Easy intuitive interface (now in French, Italian, Spanish, Polish, German, Basque, Catalan, Galician, Portuguese, Russian, Turkish, Czech, Traditional Chinese, Albanian, Bulgarian, Greek, Japanese and Romanian as well as English)

A wide variety of estimators: least squares, maximum likelihood, GMM; single-equation and system methods

Time series methods: ARIMA, a wide variety of univariate GARCH-type models, VARs and VECMs (including structural VARs), unit-root and cointegration tests, Kalman filter, etc.

Limited dependent variables: logit, probit, tobit, sample selection, interval regression, models for count and duration data, etc.

Panel-data estimators, including instrumental variables, probit and GMM-based dynamic panel models

Output models as LaTeX files, in tabular or equation format

Integrated powerful scripting language (known as hansl), with a wide range of programming tools and matrix operations

GUI controller for fine-tuning Gnuplot graphs

An expanding range of contributed function packages, written in hansl

Facilities for easy exchange of data and results with GNU R, GNU Octave, Python, Ox and Stata

幾個亮點:

有圖形界面

在時間序列數據、橫截面數據以及面板數據上,似乎沒有短板

可以生成latex文件

可以畫圖

可以讀取stata、spss、Eviews、SAS等多種軟體的數據

開源

迫不及待的我馬上去下載了,並且試用了一下,簡單的說,很有潛力,但是問題不小。

首先我們來看一下圖形界面。這玩意長這樣:
可以說,是非常……醜的!

當然,要看跟誰比,跟stata這種商業軟體自然不能比,但是在GNU軟體裡面,有圖形界面就已經非常感謝這些無私的奉獻者了!

大體掃一下菜單欄,跟stata差不多,也是畫圖、統計量什麼的,看了一下,似乎功能還可以。

我們用例子來看看這傢伙的功能吧。軟體自動帶了一些數據集,比如Greene的數據集,還是挺厚道的。打開來看到的第一個就是研究動態面板的經典Arellano and Bond (1991)的數據集,就用這個試一下吧。

圖形截面跟Stata差不多,非常容易理解。點Ok,畢竟是用C寫出來的,沒眨眼就出結果了:
恩恩,看起來不錯的嗎!速度快,報告的統計量也比較全面,比如Sargan test, test for AR...都報告了。

那麼生成的latex怎麼樣呢?我又隨手做了一個工具變量回歸,生成latex,生產pdf,結果這貨做出來的是這樣:
奧。。我本來以為是跟outreg2報告出來的東西一樣呢,結果是這熊樣,還是得自己手動整理。。不過有就很不錯了。

另外,弱工具的檢驗,其實是有報告critical value的,但是不知道為什麼,latex沒導出來:

那麼數據方面呢?我隨手導入了一個stata數據,導入的過程中提示要不要聲明數據為時間序列數據或者面板數據,選擇是,面板數據,gretl自動識別除了id 和time變量,還挺方便的。而且stata的標籤也順帶導入了,對中文支持完全沒有問題:
另外,gretl裡面應該是沒有字符型數據的,所有的字符型數據自動轉化成1 2 3 4...這樣。另外,數據瀏覽器有點卡頓,雖然數據量不大。

那麼畫圖怎麼樣呢?我們來試一下:

略醜,弄弄的理工科風格,不過也難怪,GNUPlot畫出來的。其實在菜單操作中,我並沒有看到對畫圖太多的控制選項,所以畫圖功能實際上是比較弱的。

那麼編程能力怎麼樣呢?看到了上面有GMM,我現學現賣,寫了各GMM估計Box-Cox模型的簡單程序。這個程序比較變態在於,當其中的lambda=0/1的時候,numerical上的計算比較坑爹,我來看看這傢伙的表現。

程序還是很簡單的,如下:

# create an empty data setnulldata 1000# fix a random seedset seed 19880505#generate a gamma random variableseries x = randgen(G, 1,1)series x2=x^2#true parametersscalar lambda=0.5scalar beta=1scalar gamma=1#generate u and yseries u=randgen(N,0,0.7)series y = (lambda*(gamma+x*beta+u))^(1/(1-lambda))#series y=1+x*beta+u#create the weight matrix as the identity matrixmatrix W = I(3)#declare the series to be used in the orthogonality conditionsseries e = 0#initial guessscalar l=0.3scalar b=0.5scalar g=0smpl y>0 --restrictgmm    series e=(y^(1-l)/l)-x*b-g    #series e=y-x*b-l*x2-g    orthog e; const    orthog e; x    orthog e; x2    weights W    params l b gend gmm --iterate

我先做了個蛋疼的GMM估計線性模型,當然完全沒有問題。然後換成Box-Cox模型,就出問題了。比如當我把初始點設置的比較靠近真值,l=0.6, b=0.8, g=0.8,那麼可以得到正確結果:
值得注意的有這麼幾點:

即便iterate算GMM,樣本量加到10000,點下滑鼠不到一秒鐘還是給出了結果,速度看來非常不錯。

自動給出了standard error,而我並沒有給出GMM目標函數的一階條件,非常方便。

從報告的結果上來看,猜測應該是使用了數值微分的BFGS算法,standard error肯定也是數值微分計算出來的。

當然,故事還沒有講完。如果我按照上面程序給出的初始值計算的話,得到的結果是。。。沒有結果,不收斂。如果把iterate去掉,直接的到了如下結果:
成功的陷入了Box-Cox變換的陷阱。

當然,以上的GMM估計Box-Cox回歸本來結果就很差,怪不得gretl。不過這裡還是提了個醒,global minimum的問題還是很嚴峻的。

gretl的手冊上提供了一個asset pricing的GMM實例,短短幾行程序,真的還是非常方便的。

另外就是報錯了。其實gretl程序的報錯還是很不錯的,只是中間程序寫的不好碰到了幾次閃退的情況,軟體的穩定性還有待加強。

既然是開源的,那麼最好的學習辦法當然是把源碼下載下來好好研究一下。這個任務就比較重了,不過從源碼的configure文件來看,線性代數方面是依賴於LAPACK的,而沒有找到關於最優化方面的包,猜測難道是手寫最優化?

我為什麼關心呢?因為我已經心動了,打算在自己能力範圍內,儘量為開源社區做點貢獻,特別是我們自己工作的研究領域和計量方法。

總結一下吧。

優點:

容易上手,有圖形界面,跟stata一樣容易入門。

有比較優美的語法,在語法上個人認為完爆stata。

速度很快。

開源。甚至可以考慮在大體看懂了源碼之後,寫Python/Julia/R/C的項目直接調用gretl的程序,省下了很多煩惱。

對截面、時序、面板數據的全方位支持,在這三方面的模型基本上已經能夠滿足日常需求。

缺點:

在界面美觀、圖的美觀程度方面需要繼續努力。

數據管理方面不如SAS、Stata。

導出的結果比較難看。

似乎沒有成熟的包管理器。比如Stata有ssc install,而至少現在gretl上沒發現,擴展性略差。

還不是很穩定。

個人感覺,如果能夠發展的好,解決上面的一些缺點,有朝一日替代Stata也不是沒有可能。

最後,僅僅是一問,有沒有志同道合的朋友,懂C又懂計量的,業餘時間可以一起為這個軟體貢獻點自己的力量。

相關焦點

  • 一文收藏stata14&15小抄:常用命令匯總
    command 本節主要對stata一些基礎命令例如導入導出和描述性分析以及創建新變量進行學習。圖1.9  創建新變量 命令gene2   stata數據轉換 Data Transformation本節主要對stata
  • 自學Stata的四個靠譜網站
    靠譜網站1:Stata公司官網網址:https://www.stata.com/這個網站有4種資源值得關注:users guide電子書、新版本功能介紹頁、Stata Journal電子雜誌以及users guide電子書可以免費下載,內容主要包括Stata basics、Elements of Stata以及Advice三部分:圖1-1:Stata15版本的users guide,一張第71頁的截圖而每次推出新版本時,Stata公司會在官網推出新功能介紹頁,詳細介紹新版本的新增功能及其命令示例
  • NBA與Stata
    是啊,這個賽季,詹姆斯來到了洛杉磯,帶領一眾年輕人沒能進入季後賽;「聖保羅」籤了4000萬的大合同,但是歲月拿走了他穩定的中投,也拿走了他的爆發力;這個賽季,「韋大爺」也光榮退役,獻給了這個賽場最後一舞; 「神龜」的殭屍跳投似乎也不再那麼精準;這個賽季,老馬刺也進行了大換血,失去了帕克、鐵林、還有卡哇伊……這一切,似乎都意味著我們這一代人心中的NBA,即將迎來大結局。
  • Stata語言中的常用函數及其用法解釋, 在附上42篇Stata相關學習資料
    高級計量經濟學及Stata應用"和"Stata十八講"配套數據,13.數據管理的Stata程序功夫秘籍,14.非線性面板模型中內生性解決方案以及Stata命令,15.把動態面板命令講清楚了,對Stata的ado詳盡解,16.半參數估計思想和Stata操作示例,17.Stata最有用的points都在這裡,無可替代的材料,18.PSM傾向匹配Stata操作詳細步驟和代碼,乾貨十足,19.隨機前沿分析和包絡數據分析
  • 乾貨貼 | STATA與面板回歸模型(一)
    和spss、eviews等可視化軟體相比,stata用起來要方便的多,敲代碼的快樂,真的是體驗後才能知曉!以下是本人在本科畢業論文中使用的代碼,都是從各網站搜索而來,如有不當之處,歡迎留言指正!設定面板:xtset symbol year生成平方項:gen x2=x^2生成滯後項:gen lag_x= L.x生成差分項:gen D_x=D.x(一階差分)gen D2_x=D2
  • Stata:機器學習分類器大全
    , CV) ,是利用 Stata 處理分類問題有力工具。理論介紹機器學習分類算法眾多,由於篇幅有限,現結合 c_ml_stata 命令中提供的部分分類算法進行簡要的理論介紹,以便對機器學習分類問題、算法及後續命令使用有更清楚的認識。熟悉這些算法的讀者可以快速跳過。
  • Stata 16 正式發布:新增16+項主要功能特徵詳細介紹
    1Importing of SAS and SPSS dataset從SAS與SPSS中導入數據從各個軟體之間相互可以導入數據,互相兼容已經成為計量經濟學軟體的一個趨勢,小編發現spss24.0版本已經可以實現從spss中導入stata以及sas格式的數據,並且從spss中導入stata格式的數據,各方面的數據結構類型都還可以
  • 原創·一流書單:最全的中外文stata學習資源(I)
    stata 繪圖 , 《A Visual Guide to Stata Graphics, Third Edition》,非常細緻地介紹了各種圖形的繪製方法。該書也是中文漢密爾頓版《應用stata做統計分析》一書所推薦的。stata數據處理,《Data Analysis Using Stata, Third Edition》,對於數據處理介紹的非常好。stata 編程,《An Introduction to Stata Programming, Second Edition》,對於編程以及數據分析介紹的非常好。
  • 大數據的分析軟體工具有哪些?都有什麼用?
    導讀 數據有各種各樣的分析軟體工具,本文要跟大家介紹的是在一些領域被高頻率使用,且不可缺少的大數據分析利器
  • Stata:內生性與工具變量一文讀懂(附完整do文檔)
    解決內生性問題的常見方法,主要包括工具變量( instrumental variable,簡稱IV) 、固定效應模型( fixed effects model,簡稱FE) 、傾向值匹配( propensity score matching,簡稱PSM) 、實驗以及準實驗( experimentsand quasi-experiments) 等等。本文主要介紹工具變量法。
  • 人生苦短,我學stata
    Stata 把 EViews, SPSS 的傻瓜式菜單和 SAS 的命令、編程完美結合起來,所以它一推出就受到了初學者和高級用戶的普遍歡迎。Stata 不僅在統計方面功能齊全,其在計量分析領域更是有著深刻影響,以至於有人一言以蔽之:「 關於學習 Stata 的意義,大家只需知道:目前,Stata 是計量經濟學,特別是微觀計量經濟學的主流軟體。」
  • Stata函數之字符串函數(一)
    今天我們介紹Stata中字符串函數(string functions)的知識。在處理數據的過程中,好處理的數據(不論是整數還是浮點數)通常都好處理,你可以很方便的對其加減乘除、統計、應用計量模型等;但不好處理的數據通常讓人抓狂。字符串就屬於不好處理的數據。事實上,我們遇到的大多數原始數據(raw data)都是字符串形式的。
  • 有了這套Stata學習資料大禮包,讓你三天搞定一篇論文
    今天小喵要給大家鄭重地向小夥伴介紹一款小喵要做的就是免費向大家提供這款軟體的學習資料大禮包讓大家從無到有熟練掌握這款功能強大的軟體!資源部分目錄展示1.零基礎stata軟體學習2.常見問題的說明3.知識點概要4.STATA簡介5.安裝stata151並升級中文版6.安裝stata151並升級中文版7.STATA統計分析熱身案例(Windows)8.STATA統計分析熱身案例(macOS)9.STATA中的三種重要文件10.STATA的幫助文檔系統11.STATA的內置數據集
  • stata——胡言亂語
    摘要:用stata寫論文卡了怎麼辦,關注王三歲,也沒啥子用。(略)關鍵詞:畢業生;實證研究;stata報錯;連接超時一、背景研究當代大學生在畢業前會經歷,寫論文、修改、修改、修改、再修改、定稿、答辯、修改、修改、再修改這一過程。
  • 【重發】面板門檻模型-stata命令xthreg介紹
    一、命令介紹目前面板門限回歸有兩個命令。一個是xtptm(stata 12.0),一個是xthreg(stata 14.0),這兩個程序都是南開大學經濟學院王群勇老師開發的,其中xthreg使用高版本進行編譯,無法在低版本的環境下運行(即低於13.0就無法執行)。
  • 【Mac】Stata_v15.1 軟體安裝教程
    名稱]:Stata_v15.1[大小]:209 MB   [語言]:中文/英文/多語言[安裝環境]:Mac OS10.10或更高版本[測試系統版本]:MacOS 10.14.6[下載連結]:pan.baidu.com/s/1X6iMHUBuxrRi4qpRbf1IFg[提取碼]:3ad0stata
  • Stata15.0中文版正式發布!又要騙我去學習了
    來源:stata官網,https://www.stata.com/new-in-stata/chinese-interface
  • 13種GitHub的頂級替代工具
    朋友,您是否正在尋找可靠且功能強大的GitHub替代方案?本文將向您詳細介紹13種GitHub的頂級替代工具,以幫助您更好地決定:是要切換到另一個git平臺,還是堅定地繼續使用GitHub。BitBucketBitBucket是由Atlassian帶來的另一款出色的git客戶端,也是GitHub的一種替代方案。許多大型企業選用BitBucket的原因是:它能夠與其他Atlassian的工具(如Jira、Confluence和HipChat)集成在一起,進而讓大型團隊能夠輕鬆地管理他們的項目。
  • Stata作圖
    默認時,stata將數據確定為連續型,如果我們需要stata做離散直方圖的話,加上選項discrete.histogram educ,discrete (選項用英文逗號隔開)還可以給直方圖加上密度圖像。.histogram educ,normal (這個選項就可以做正態分布密度圖像)
  • 60款流行網絡工具的開源替代選擇
    開源網絡工具能派得上用處。無論你是在管理大型企業數據中心中成千上萬的系統,還是僅僅把你家裡的幾臺電腦連接起來,開源網絡工具都能幫助你搭建和維護一個低成本的網絡。本文整理出了讓這項任務變得更容易一點的60款開源網絡工具。