如何利用統(tǒng)計(jì)軟件Stata進(jìn)行回歸分析
原創(chuàng)【51CTO.com原創(chuàng)稿件】數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)在如今的社會(huì)早已成為經(jīng)典的流行技術(shù)。采用相關(guān)技術(shù)的企業(yè)不在少數(shù),并且為社會(huì)產(chǎn)生了極大的效益。流行的數(shù)據(jù)挖掘軟件非常多,比如 Scikit-Learn、Pandas、R、Spark MLLib 等等,極大的方便了廣大從業(yè)者的日常開發(fā)和數(shù)據(jù)分析工作。
在開源軟件流行的今天,傳統(tǒng)付費(fèi)軟件經(jīng)常被人們忽視,然而 Matlab、Mathematica、Maple 和 Stata 等數(shù)學(xué)和計(jì)算機(jī)軟件給人們提供了非常大的便利,并且有許多開源軟件不具備的功能,直至今日,仍然在各行各業(yè)中發(fā)揮著不可替代的作用。
Stata 作為一款有著30多年歷史的優(yōu)秀統(tǒng)計(jì)學(xué)習(xí)軟件,為統(tǒng)計(jì)學(xué)習(xí)提供了強(qiáng)大的解決方案,目前版本已經(jīng)更新到了 16.0。本文將帶領(lǐng)讀者一窺 Stata 的風(fēng)采,介紹如何利用 Stata 進(jìn)行回歸分析。
首先下載 UCLA 大學(xué)的學(xué)校測評數(shù)據(jù)集合:
- use https://stats.idre.ucla.edu/stat/stata/webbooks/reg/elemapi
- mkdir c:regstata
- cd c:regstata
- save elemapi
- use elemapi
得到數(shù)據(jù)集合之后, 如果需要進(jìn)行回歸分析,只需要簡單的執(zhí)行一下命令即可:
- regress api00 acs_k3 meals full
- Source | SS df MS Number of obs = 313
- -------------+---------------------------------- F(3, 309) = 213.41
- Model | 2634884.26 3 878294.754 Prob > F = 0.0000
- Residual | 1271713.21 309 4115.57673 R-squared = 0.6745
- -------------+---------------------------------- Adj R-squared = 0.6713
- Total | 3906597.47 312 12521.1457 Root MSE = 64.153
- ------------------------------------------------------------------------------
- api00 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
- -------------+----------------------------------------------------------------
- acs_k3 | -2.681508 1.393991 -1.92 0.055 -5.424424 .0614074
- meals | -3.702419 .1540256 -24.04 0.000 -4.005491 -3.399348
- full | .1086104 .090719 1.20 0.232 -.0698947 .2871154
- _cons | 906.7392 28.26505 32.08 0.000 851.1228 962.3555
- ------------------------------------------------------------------------------
如果需要預(yù)測新的變量, 只需要執(zhí)行以下命令:
- predict fv
如果需要顯示模型的殘差, 則執(zhí)行以下命令:
- predict fv, residual
Stata 除了提供基本的回歸分析的功能,最引人入勝之處在于其提供了獨(dú)一無二的最優(yōu)化參數(shù)選擇功能. 我們知道在計(jì)算 Lasso Regression 或者 Ridge Regression 的時(shí)候, 最優(yōu)化函數(shù)中有懲罰項(xiàng)。而懲罰項(xiàng)前面的系數(shù)如何選擇是個(gè)困擾了數(shù)學(xué)界幾十年,直到幾年前才得到解決的難題。Stata 在這方面提供了兩種算法,一種是 Plug-in Method, 而另一種是 Cross-Validation Method。
當(dāng)采用 plug-in method 進(jìn)行 Lasso Regression 的時(shí)候,只需要調(diào)用:
- lasso linear api00 acs_k3 meals full, selection(plugin)
返回結(jié)果中可以看到參數(shù)值和殘差。
- --------------------------------------------------------------------------
- | No. of
- | nonzero In-sample
- ID | Description lambda coef. R-squared BIC
- ---------+----------------------------------------------------------------
- * 1 | selected lambda .1715319 1 0.6610 3513.359
- --------------------------------------------------------------------------
當(dāng)采用 cross-validation method 進(jìn)行 Lasso Regression 的時(shí)候,只需要調(diào)用:
- lasso linear api00 acs_k3 meals full, selection(cv)
返回的結(jié)果中有如下一張表:
- --------------------------------------------------------------------------
- | No. of Out-of- CV mean
- | nonzero sample prediction
- ID | Description lambda coef. R-squared error
- ---------+----------------------------------------------------------------
- 1 | first lambda 91.43285 0 0.0017 12460.5
- 37 | lambda before 3.210383 3 0.6667 4159.559
- * 38 | selected lambda 2.925181 3 0.6667 4159.504
- 39 | lambda after 2.665316 3 0.6666 4160.824
- 43 | last lambda 1.837099 3 0.6657 4172.744
- --------------------------------------------------------------------------
可以看到, Lasso Regression + Plug-in Method , Lasso Regression + Cross-validation Method 和傳統(tǒng)的 OLS 的結(jié)果有所不同。由于 Stata 提供的上述參數(shù)選擇方法是最近幾年的最新研究成果,因此在免費(fèi)的開源軟件比如 R 和 Scikit-Learn 中都還沒有得到應(yīng)用, 這也是 Stata 的難能可貴之處。
Stata 提供了方便的編程接口,用于支持常見的各種數(shù)據(jù)分析和數(shù)據(jù)挖掘功能。另外,它也提供了用戶圖形界面, 用戶可以很方便的通過點(diǎn)擊按鈕和選擇下拉框等方式進(jìn)行非常方便的各種操作。Stata 作為經(jīng)濟(jì)學(xué)領(lǐng)域的經(jīng)典軟件,也應(yīng)該得到包括互聯(lián)網(wǎng)企業(yè)在內(nèi)的 IT 公司的關(guān)注。
作者介紹
汪昊,技術(shù)總監(jiān)/架構(gòu)師,美國猶他大學(xué)本科/碩士,對外經(jīng)貿(mào)大學(xué)在職MBA。曾在百度,新浪,網(wǎng)易,豆瓣等公司有多年的研發(fā)和技術(shù)管理經(jīng)驗(yàn),擅長機(jī)器學(xué)習(xí),大數(shù)據(jù),推薦系統(tǒng),社交網(wǎng)絡(luò)分析等技術(shù)。在 TVCG 和 ASONAM 等國際會(huì)議和期刊發(fā)表論文 11 篇。國際學(xué)術(shù)會(huì)議 IEEE SMI 2008 和 ICBDT 2020 最佳論文獎(jiǎng)。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】