官术网_书友最值得收藏!

Stata統計分析從入門到精通

1.3 Stata 16.0命令的語法格式

下載資源:\video\第1章\…

下載資源:\sample\第1章\數據1

Stata命令的語法格式為:

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [using filename] [,options]

其中[ ]表示可以省略或者根據需要使用的選項。可以看出,只有command是必不可少的,對于其他各個組成部分,用戶可以根據自身研究需要合理選用。

注意

Stata的命令是區分字母大小寫的,大小寫不能混用,否則就會提示錯誤。

1.3.1 command(命令名稱)

command為命令中的命令名稱,示例如下:

use "C:\Users\Administrator\Desktop\數據1.dta",clear

本命令的含義是打開桌面上的“數據1.dta”數據文件,后面的clear表示先清除內存中已有的數據集。

regress Y1 X1 X2 X3 X4 X5 X6 X7

本命令的含義是以Y1作為因變量,以X1-X7作為自變量,進行普通的最小二乘回歸分析。

reg Y1 X1 X2 X3 X4 X5 X6 X7

本命令的含義同樣為以Y1作為因變量,以X1-X7作為自變量,進行普通的最小二乘回歸分析,只是將regress簡寫為reg,運行出同樣的結果。

r Y1 X1 X2 X3 X4 X5 X6 X7

如果我們把regress簡寫為“r”,則系統將提示錯誤“command r is unrecognized”。

注意

在很多情況下,我們可以使用命令的簡寫形式,比如前面示例的regress可以簡寫為reg,但是不可以簡寫為“r”。究竟能夠簡寫到什么程度呢?一種方法是靠大家在實踐中進行摸索,不斷找出可以簡化的極限;另一種簡便的方法是可以看相關命令在Stata中幫助系統中的介紹。比如我們在命令窗口中輸入help encode(該命令的含義是基于字符串變量varname創建一個名為newvar的新變量),那么將會出現encode varname [if] [in],generate(newvar) [label(name)noextend],命令中的下劃線就表示命令可以省略到什么程度,上面的顯示說明encode命令可以簡寫為en,又比如我們在命令窗口中輸入help decode(該命令的含義是基于“編碼的”數值變量varname以及它的值標簽創建一個名為newvar的字符串變量),那么將會出現decode varname [if][in],generate(newvar) [maxlength(#)],說明decode命令可以簡寫為dec。

1.3.2 varlist(變量名稱)

varlist為Stata命令中的變量名稱,可以設置一個或者多個變量,多個變量之間需要用空格隔開,否則Stata是無法識別的。

注意

變量名稱可以由字母、數字、下畫線組合而構成,但不能以數字開頭,也不能以單獨的數字組合來命名,且長度不能超過32位。在調用已有的變量時,用戶在輸入時可以簡化,比如前面的命令:

reg Y1 X1 X2 X3 X4 X5 X6 X7

我們可以寫成:

reg Y1 X1-X7

即使用“-”代表兩個變量間的所有變量,結果是一樣的,如圖1.25所示。

圖1.25 reg Y1 X1-X7命令的執行結果

此外,我們還可以使用“?”代表單個字符,使用“*”代表任意字符。

將前述命令改寫為regress Y1 X?或regress Y1 X*,結果如圖1.26所示。

圖1.26 regress Y1 X?或regress Y1 X*命令的執行結果

需要注意的是,上述簡便操作只針對數據文件中原本已有的變量,對于新生成的變量來說,變量的名稱不能進行簡化。

1.3.3 by varlist(按變量分類)

by varlist是按變量值進行分類操作的命令,表示針對變量分類的子集分別執行相應的命令。

提示

比如我們接上例,在命令窗口中輸入summarize Y1(該命令的含義是輸出Y1變量的樣本個數、均值、標準差、最小值、最大值等描述性統計量),那么將會出現如圖1.27所示結果。

圖1.27 summarize Y1命令的執行結果

然后我們在命令窗口中輸入sort xingbie(該命令的含義是按照xingbie變量對樣本觀測值進行排序),再輸入by xingbie:summarize Y1(該命令的含義是按照性別分類分別輸出Y1變量的樣本個數、均值、標準差、最小值、最大值等描述性統計量),執行結果如圖1.28所示。

圖1.28 按性別分類的執行結果

注意

by varlist 命令在執行時要求內存中的數據按照by后面的變量進行排序,否則就會提示錯誤“not sorted”,所以本例中需要先輸入“sort xingbie”命令,而后才能執行“by xingbie:summarize Y1”命令。

1.3.4 =exp(賦值)

=exp用來統一改變原有變量的值或生成新的變量替換原來的變量,主要包括generate和replace兩個命令。其中generate命令是利用現有變量生成一個新的變量,并保留原來的變量不變;而replace命令則是利用現有變量生成一個新的變量來替換原來的變量。

提示

接上一節的例子,在命令窗口中輸入generate LY1=ln(Y1)(該命令的含義是在不改變原有變量Y1的前提下生成新的變量LY1),再輸入list Y1 LY1 X6 in 1/5(該命令的含義是列出前5個樣本觀測值Y1、LY1、X6的值),結果如圖1.29所示。

圖1.29 前5個樣本觀測值Y1、LY1、X6的值

如果在命令窗口中輸入replace X6=ln(X6)(本命令的含義是針對X6變量取對數值,新的X6變量是取對數值之后的值,原有的X6變量不再保留),再輸入list X6 in 1/5(該命令的含義是列出前5個樣本觀測值X6的值),結果如圖1.30所示。

圖1.30 前5個樣本觀測值X6的值

可以發現X6值已經變成取對數值之后的值,不再是前面“list Y1 LY1 X6 in 1/5”命令的執行結果中的X6值。

1.3.5 if exp(條件表達式)

條件表達式的作用在于對樣本集進行篩選,只對符合相關條件的樣本子集執行相應的操作。

提示

接續前一節的例子,在命令窗口中輸入reg Y1 X1 X2 X3 X4 X5 X6 X7 if xingbie==1(本命令的含義是對xingbie變量值取1的樣本觀測值,以Y1作為因變量,以X1-X7作為自變量,進行普通的最小二乘回歸分析),結果如圖1.31所示。

圖1.31 最小二乘回歸分析結果

1.3.6 in range(范圍篩選)

in range同樣用于對樣本集進行篩選,與條件表達式的區別在于不依賴變量是否符合某一條件,而是直接使用范圍內的樣本觀測值,對篩序出的樣本執行相應的操作,一般使用“in”,比如我們在前面介紹時使用的“list X6 in 1/5”,其含義為使用第1~5個樣本觀測值。

提示

in # 第#個樣本觀測值 in 5(第5個樣本觀測值)

in #/# 從第#個樣本觀測值到第#個樣本觀測值 in 2/5(第2~5個樣本觀測值)

in f/# 從第1個樣本觀測值到第#個樣本觀測值 in f/5(第1~5個樣本觀測值)

in #/l 從第#個樣本觀測值到最后一個樣本觀測值 in 5/l(第5至最后一個樣本觀測值)

1.3.7 weight(加權)

weight的作用在于對樣本觀測值進行加權,通常用于加權最小二乘回歸分析。

1.3.8 options(其他可選項)

options可以在很多命令中使用,但是不同命令的可選項差異比較大。

提示

接續前面的例子,在命令窗口中輸入summarize Y1,detail(該命令的含義是輸出Y1變量的常見描述性統計量,比不加“,detail”時顯示的內容更多),結果如圖1.32所示。

圖1.32 summarize Y1,detail命令的執行結果

可以發現該命令的輸出結果比“summarize Y1”命令的輸出結果有更多的描述性統計量。

主站蜘蛛池模板: 凯里市| 东安县| 德清县| 武定县| 嘉黎县| 花垣县| 漠河县| 陕西省| 屏南县| 丰原市| 赤壁市| 佳木斯市| 龙岩市| 文山县| 北安市| 宜昌市| 邵东县| 浙江省| 玛曲县| 金坛市| 黄冈市| 吴川市| 陆良县| 沙坪坝区| 洮南市| 黄石市| 都匀市| 买车| 赣州市| 哈尔滨市| 安庆市| 万安县| 洪湖市| 仁化县| 宜春市| 鄂托克旗| 铁岭市| 门头沟区| 岳阳市| 兴城市| 华阴市|