stata语言
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STATA COMMAND
――根据劳伦斯·汉密尔顿《应用STATA做统计分析》前六章总结
第一章:Stata软件与Stata的资源
第二章:数据管理
第三章:制图
第四章:概要统计及交互表
第五章:方差分析和其他比较方法
第六章:线性回归分析
第一章stata软件与stata的资源
【命令范式】
use () 使用文件
log using () 打开一个用于输出日志的“log”文件
summarize()显示变量的概要统计指示的计算结果
describe() 数据简要描述
help帮助
第二章数据管理
【命令范式】
append using olddata 读取数据集olddata.dta,然后将其所有观测值加到当前内存中
save newdata,replace将这一合并数据存为新文件
browse打开表格化的数据浏览器来查看数据
browse boats men if year>1980
compress自动将所有变量转换为最有效率的存储类型
save filename,replace 将其永久化
drawnorm z1 z2 ,n(500) 创建人工数据集,包含从独立的标准正态分布中抽取的500个观测案例和2个随机变量z1,z2
dropmiss 自动删除内存数据中任何在每个观测案例上包含缺失值的变量
dropmiss,obs 将从内存中删除在每个变量上包含缺失值的任何观测案例
edit 打开表格化数据编辑器
encode price ,gen(numvar) 基于字符型(非数量型)变量price,新建一个有标签的数量型变量,名为numvar
edit z1 z2 打开数据编辑器时,只显示z1,z2两个变量,且按该顺序
format price %8.2f为数值型变量price建立一种固定化(f)的显示格式,8列宽,小数点后显示两位数
genarate newvar=(x+y)/100建立新变量
infile x y z using data.raw 读入一个名为data.raw的ASCII,其中包括3个变量x,y,z
list x y z in 5/10按当前顺序列举第5-10的观测案例
merge id using olddata 读入以前所存的数据集olddata.dta,并将其中的观测与内存中的具有同样id的观测案例加以匹配
mvdecode var3-var10,mv(97=.\98=.a\99=.b)针对变量var3-var10,将数值为97,98,99的重新编码为缺失值
replace oldvar=10*oldvar 将oldvar的原值扩大100倍后再取值
sample 10将观测案例只随机选取10%样本留下
sample 10,count随机留取10个随机样本
save newfile 存为新数据文件newfile.dta
save newfile,replace存为新数据文件并覆盖原文件
save,replace直接覆盖原文件
set memory 2g,permanently 为stata数据分配2g内存
sort x 将数据从小到大处理,缺失值被作为最大的数处理
tabulate x if y >90 只对y>90的观测案例输出x的频数表
use oldfile,clear不保存当前数据,直接打开其他数据
rename var2 pop 将var2重命名为pop
label variable pop "population"为变量pop建立相应标签
correlate x y z 为x,y,z进行简单相关性处理
order x y z 对变量进行排序
list in 1/10 列出第1至第10条观测案例-4表示倒数第4个字母l表示最后一个观测值
例:summarize if place!="Canada"
list if var1>a | (var2<b & var3<=c)
list var1<. 排除缺失值
符号“==”、“!=”用于字符型数值
missing(var1,var2)==0代表非缺失值
drop var1 放弃变量var1
drop in 6 放弃第6个观测值
drop in 10/13 放弃10至13四个观测值
keep price 仅保留变量price
例:drop if place =="Canada" | pop<100
replace age =2008-born if age >=. | age<=2008-born
tab var1 为变量var1列表
nolabel 可作后缀,要求不含取值标签
【使用函数】
abs(x) 绝对值
acos(x) 反余弦函数
exp(x) 指数函数
ln(x) 自然对数
log2(x) 以2为底的对数
round(x) 四舍五入
round(x,y) 按y的单位对x四舍五入
sign(x) 符号函数:当x<0时为-1,当x=0时为0,当x>0时为+1
sqrt(x) 平方根函数
sum(x) 返回x的移动合计,将缺失值作为0对待
help density function 概率函数清单及定义、参数等细节。
help string functions 查看字符串变量的完整清单
display 执行计算并输出结果(display 2+9)
egen表示是对generate命令的扩展
egen var1=std(x)建立新变量var1是为x的标准差
egen var2=rowmean(x,y,z,w)建立新变量var2是为x,y,z,w四个变量上的忽略任何缺失值的行平均值
egen var3=rowtotal(x,y,z)建立新变量var3是为x,y,z四个变量合计,并将缺失值视为零egen var4=rank(x) 建立新变量var4,保持着与x取值相一致的排序。
即为x进行了排序,最大值为1
encode var1,gen(var2) 根据字符型变量var1创建数值型变量var2
decode var1,gen(var2)根据数值型变量var1创建字符型变量var2
数值型变量在执行带有“nolabel”的命令时,会被当作数值0,1或1,2,3.……处理。
为了将字符型转换成相对应的数字,可以使用real函数:generate var1=real(var2),var2属于数值型变量
tabulate 制表
tabulate type, generate(type) 为type自动创建了虚拟变量
list type type1-type3可查看
generate caseID=_n创建新变量,使其值等于前面已经排序过的每一条观测案例的序号display var[6]显示变量var的第六条观测案例
generate difprice=price-price[_n-1]定义新变量,使其等于自前一天来的价格变化
如何导入其他程序的数据:使用专门的软件,Stat/Transfer
xpose,clear varname对原数据进行转置,varname可在转置后的数据中创建一个附加的变量,用以包含作为字符串的原始变量名
Stata接受四种加权类型:
aweight分析权数,用在加权最小二乘回归以及类似的估计程序中
fweight 频数权数,用以对重复观测案例计数,频数权数必须是整数
iweight重要性权数,但是“重要性”由用户自己界定
pweight 概率或抽样权数,与一个观测案例根据抽样策略被选中的概率的倒数成比例
set more off要求持续翻屏直到结束
第三章制图
【命令范式】:
histogram y, frequency 画出变量y的直方图,频数显示在纵轴上
histogram y, start(0) width(10) norm fraction x轴以0处为起点,画出变量y的直方图,条宽度为10。
根据样本平均数和标准差添加正态曲线,并在纵轴上显示出小数形式的数据频率。
histogram y, by(x,total) percent 在一幅图中,对x每个取值画出y的各个直方图,同时画出样本总体的总直方图。
graph twoway scatter y x 显示y对x的基本双变量散点图
graph twoway lfit y x || scatter y x 通过叠并两两幅twoway 图形将y对x的线性回归加以图形化:即回归线图和y对x的菜点图
graph twoway scatter y x, xlabel(0(10)100) ylabel(-3(1)6, horizontal)建构y对x的散点图,并在x轴的0,1,2,…,100处添加标签,在y轴的-3,-2,…,6处添加标签,标签为水平放置而不是默认的垂直放置。
graph twoway scatter y x, mlabel(country) 构建y对x的散点图,并且数据点标注变量country 的相应取值。
graph twoway scatter y x1,by(x2)在一幅图中,对x2的每一取值画出y对x1的散点图graph twoway scatter y x1 [fweight = population], msymbol(oh) 画出y对x1的散点图。
标记符号为中空的圆圈,其大小与频数权数变量population成比例
graph twoway connected y time y对time的基本时间标绘图。
显示的数据点由线段连接起来。
要想显示线段而不出现数据点标志(marker),就用line来代替connected。
graph twoway line y1 y2 time 画出具有相同量度的两个y变量对名为time的x变量的时间标绘图。
graph twoway line y1 time, yaxis(1) || line y2 time, yaxis(2) 画出具有不同量度的两个变量的时间曲线,并将它们叠并在同一曲线标绘图内。
yaxis(1) 指定左边的y轴按y1设置量度,而yaxis(2)指定右边的y轴按y2设置量度
graph matrix x1 x2 x3 x4 y 建构一个散点图矩阵,显示列出变量之间所有可能的散点图对。
graph box y1 y2 y3 构建y1,y2,y3的箱线图
graph box y, over (x) yline(23) 对x的每一取值建构y的箱线图,并在y=23处画一条水平线graph pie a b c画一个饼图,其中的每块表明了变量a,b,c的相对量。
这些变量必须具有相同的单位。
graph bar (sum) a b c 以条形图中并排的条显示变量a,b,c各自的合计。
要想得到平均数而不是合计,则使用graph bar (mean) a b c
graph bar (mean) a, over(x) 画出在变量x每一取值处变量a的平均数的条形图
graph bar (asis) a b c, over(x) stack 画出变量a,b,c的条形图,图中变量a,b,c的值在变量x 的每一取值处层叠起来。
graph dot (median) y,over(x)画一个点图,沿着水平刻度在x的每一取值水平所对应的y的中位数处打点。
qnorm y 画出一幅分位-正态标绘图(正态概率图),显示y的分位数与对应的正态分布的分位数。
rchart x1 x2 x3 x4, connect(1) 建构一幅质量控制的R图,图中画出了变量x1…x4的取值范围。
【直方图】:
histogram college, frequency title(“figure1”) xlabel(12(2)18) ylabel(0(2)12) ytick(1(2)14) start(12) width(2) addlabel norm gap(15) bin(#) by(region, total)
注释:xlabel/ylabel 表示x、y轴上标注的数值
ytick 表示y轴的标注的点
start 表示起始值
width 表示条宽
gap 条间隙
addlabels 要求标注直方条的高度
norm 基于样本平均数和标准差,在直方图上添加一条正态曲线。
bin(#) 设定所要画的直方条的条数
discrete 设定离散数据,要求x的每个取值对应着一个直方条
percent 在纵轴上显示百分比
kdensity 在直方图上添加内核密度的估计值。
by(region, total ) 可以得到分别对应region每个取值的直方图。
【散点图】:
graph twoway scatter y x 画出y-纵轴,x-横轴的散点图
graph twoway scatter waste metro if region==1 [fweight=population], msymbol(oh) mcolor(purlple) mlabel(state) ylabel(,format(%3.0f))
fweight 表示为population添加权重,通过点的大小表现出来
msymbol 表示点的形状
mcolor 表示点的颜色
mlabel 表示为散点添加标签
ylabel 参看前文。
msymbol, ylabel 等作后缀时顺序可以打乱,不影响输出结果
help symbolstyle 可查看散点类型
help colorstyle 可查看颜色类型
graph matrix x1 x2 x3 x4, half msymbol(oh) 简洁展示各变量的交互关系,使分析人员可审视数据中可能存在的非线性或线性关系。
half 指定图中只包含矩阵的下三角部分,因上三角与其对称,为多余可不显示。
建议将因变量列在最后。
【曲线标绘图】:
graph twoway line x1 x2 x3, connect(line line) clpattern(solid dash) angle(horizontal) legend(label(1”var1”) label(2 “var2”) position(2) ring(0) rows(2)) ytitle(“”)
connect 指定连线的方式(直线,先水平后垂直,先垂直后水平等)
(none, direct, stairstep, stepstair )
clpattern 线条式样(直线、虚线等)
solid 实线
dash 虚线
dot 点线
dash-dot 点划线
shortdash 短划线
shortdash-dot 短划点线
longdash 长划线
longdash-dot 长划点线
formula (-.或-..)
legend 表示图例选项。
后面分解为:
label(1”var1”) 为第一个提到的变量x1添加标签var1
position2 将图例放在2点钟位置
ring(0) 将图例放置在图中空白处
rows(2) 将图例排成两行
ytitle(“”) 要求图中y轴不设标签
graph twoway connected x1 x2 连线标绘图,相比于上式可显示散点。
【饼图】:
graph pie w x y z
graph pie x1 x2 x3 x4, pie(3,explode) pie(4,color(gs13)) plabel(3,percent, gap(20)) legend(position(11) rows(4) ring(0)) angle0(0)
pie(3,explode) 要求第三个变量从饼中突出以示强调
plabel(3,percent,gap(20)) 要求在距中心20个相对半径单位的位置处为第三个变量扇区添加一个百分比标签
legend选项要求将一个四行的方框作为图例放置在图中11点钟的空白处
angle0(0) 设定饼中第一个扇区的角度。
这里是0度(水平方向)
条形图:
graph bar (mean) y, over(x) 显示y对x在不同类别上的平均数的直方条
graph bar (sum) y, over(x) 显示y对x在不同类别上的合计的水平方条
条形图可以显示以下诸多统计量:
mean, sum, median(中位数), p1, sd, 等,详细可键入help collapse
blabel(bar) 要求标注直方条的高度
bar(1,bcolor(gs10)) 要求设定第一个直方条的填充颜色,这里是中度浅灰色
graph bar(median) x1 x2, over(region) blabel(bar,size(medium)) bar(1,bcolor(gs10)) bar(2, bcolor(gs7))
size(medium)要求直方条标签为中等字号,其他还有tiny, medsamall, medlarge, large等完整清单详见help textsizestyle
graph hbar (mean) x, over(y1) over(y2) yline(17) ytitle(“var”)
hbar 表示水平条形图
两个over控制了分组的顺序,即先对y1分组,再在y1基础上对y2分组,yline(17)以一条垂直线来标示总平均值
graph bar(sum) y1 y2 y3, over(x) stack 由变量y1,y2,y3叠加的对x的直方图
graph bar(sum) x1 x2 x3 , over(x4,relabel(1 “a” 2”b” 3”c”))
legend(rows(3) order(3 2 1) position(11) ring(0) label(1 “var1”) label(2”var2”) label(3 “var3”)) stack ytitle(y’) ylabel() ytick()
【点图】:
graph dot (median) x y z w
graph dot (mean) y1 y2, over(region, sort(x2)) marker(1, msymbol(Th)) marker(2, msymbol(O))
graph twoway lfitci x1 x2 || scatter x1 x2 画出x1对x2的散点图及线性回归图(包括0.95置信区间),两图叠并。
第四章概要统计及交互表
【命令范式】
summarize y1 y2 y3 对所列变量计算简单的概要统计量
summarize y1 y2 y3, detail 获取详细的描述性统计,包括百分位数,中位数,平均数,标准差,方差,偏度,峰度等。
summarize y1 if x1>3 & x2<.
summarize y1 [fweight=w], detail 利用w作为加权变量进行频数加权,计算y1详细的概要统计量
tabstat y1, stats(mean, sd, skewness, kurtosis) by(x1) 按变量x1的每个类别,分别计算变量y1的具体指定的概要统计量
tabulate x1, sort miss 显示x1所有值的频数分,包括缺失值。
按顺序从大到小对行(变量值)进行排序。
tab1 x1 x2 x3 x4 对所列变量分别创建频数分布表
tabulate x1 x2 显示一个两变量交互表,其中x1为行变量,x2为列变量
tab2 x1 x2 x3 x4 创建所列变量的所有可能的二维交互表
tabulate x1, summ(y) 创建一个二维表,显示x1每个类别中变量y的均值、标准差及频数tabulate x1 x3, sum(y) means 创建一个二维表,显示x1,x2每一种组合下y的均值
by x3, sort: tabulate x1 x2, exact创建一个三维交互表,在x3的每个取值下创建x1(行)和x2(列)的分表,并为每个分表计算费舍精确检验,命令by x3, sort为x3排序
table x1 x2, contents(mean y1 median y2) 创建x1(行),x2(列)的二维交互表,单元格包含y1的平均数和y2的中位数
svy: tab y, percent ci 使用调查加权的数据,获得变量y的一维百分比表以及95%的置信区间。
ci计算置信区间,默认为95%。
后可添加level(a)设定置信区间a%
与ci相关的一个命令是cii,它可以直接根据概要统计量,来计算正态分布、二项分布或泊松分布的置信区间。
它并不需要原始数据。
svy: tab y x, column percent使用调查加权的数据,获得一个行变量y对列变量x的二维交互表,并对其狡辩性进行调整的卡方检验。
单元格中给出了加权的列百分比。
【探测性数据分析】:
stem x1, lines(*) 对变量x1的所有观测值进行茎叶图处理lines限定了茎叶表达形式:首位数相同的开头共*行
lv x2 字符数值表利用序次统计量来分解一个分布。
【正态性检验和数据转换】:
sktest x1正态性检验(偏度与峰度)
ladder x1 这个命令把幂阶梯和sktest的正态性检验结合在一起。
它对阶梯上的每一种幂进行尝试并报告其结果是否显著地非正态。
gladder x1该命令将每一种转换的直方图与正态曲线加以比较
qladder x1 四分位阶梯命令
(可键入help ladder查看详细)
【频数表和二维交互表】:
tabulate有许多对创建二维表非常有用的选项,包括:
cell 显示每个单元格的总百分比
chi2对行变量和列变量独立的假设进行皮尔逊卡方检验
column显示每个单元格的列百分比
exact 独立性假设的费舍精确检验
expected 显示独立性假定下二维表每个单元格内的期望频数
generate(new)创造一组名为new1, new2 等的虚拟变量来代表被列表变量的取值
lrchi2 对独立性假设的似然比卡方检验。
如果表格包含任何的空单元格,就得不到结果missing 把缺失值也作为表的一行或一列
nofreq不显示单元格频数
nolabel 显示数值而不是添加了标签的数值变量的取值标签
row显示每个单元格的行百分比
tabi 偶尔我们可能需要在没有获得原始数据的情况下对已发表的表格重新进行分析,专门的命令tabi(直接制表)可以完成这项工作
【多表和多维交互表】:
tab1 x1 x2 x3 x4 对所列变量分别创建频数分布表
tab2 x1 x2 x3 x4 创建所列变量的所有可能的二维交互表
by x1, sort: tabulate x2 x3, nofreq col chi2 三维列联表,并对x1每一取值水平内x2,x3的独立性进行卡方检验
by x1 x2, sort: tabulate x3 x4, column chi2四维交互表
table x1, contents(freq)创建x1的简单的频数分布表
table x1 x2, contents(freq) by(x3)创建一个二维频数表或交互表,并通过x3分组
table 的contents()选项设定表格单元格要包含什么统计量
contents(freq)频数
contents(mean x1) x1的平均数
contents(count x1) x1的非缺失值观测案例的计数
contents(p1 x1) x1的第1百分位数
【平均数、中位数以及其他概要统计量的列表】:
tabulate 能够很容易地创建分类变量每一类别的平均数和标准差的列表。
比如,如果要列出x1每一类别内x2的平均值,键入:tabulate x1, sum(x2)
创建一个平均值的二维表:tabulate x1 x2, sum(x3) means
table不能进行统计检验,但它能很好地创建多达七维的包含平均数、标准差、总和等统计量的表格。
table x1, contents(mean x2)x1的一维表格,含有x1每一类别下x2的平均值
table x1 x2, contents(mean x3 median x3)
summarize, tabulate, table以及其他相关命令都可以和标示重复观测数目的频数权数frequency weight 一起使用。
tabulate x1 x2 [fweight=count] (,column nof)
(课本p131)
第五章方差分析和其他比较方法
【命令范式】
anova y x1 x2 执行双因素方差分析,检验y平均数在x1 x2两个分类变量的所有类别之间的差别
anova y x1 x2 x1*x2 执行三因素因子方差分析,包括两个分类变量的主效应以及x1与x2之间的交互效应
anova y x1 x2 x3 x4, continuous(x3 x4) regress执行四个自变量的协方差分析,其中前两个自变量是分类变量(即0-1变量,作虚拟变量处理),后两个自变量是测量型变量(连续型变量)。
结果以回归表形式输出而不是默认的方差分析表。
kwallis y, by(x)执行kruskal-wallis 方法来检验y是否在x的k个类别上有同样的秩分布oneway y x 执行单因素方差分析,检验在x不同类别上y的平均数是否存在差异。
也可以用anova y x 来完成同样的分析,但输出的表格不同
oneway y x , tabulate scheffe执行单因素方差分析,输出中包括样本平均数表和scheffe多重比较检验的结果
serrbar ymean se x , scale(2)根据平均数的数据构建一个标准误条形图。
scale(2)要求条形从每个平均数开始扩展至±2倍标准误(默认设置为±1)
ttest y=5 执行单样本t检验,虚无假设为y的总体平均数等于5
ttest y1=y2 执行单样本t检验,虚无假设为y1和y2的总体平均数相等。
ttest y, by(x) unequal执行两样本t检验,虚无假设为:对x的两类来说,y的总体平均数都相等。
unequal 表示异方差,如果没有这项,则默认假设同方差。
单样本t检验主要有两种应用:
μ。
1.检验一个样本平均数y是否显著进不同于某一假设值
2.检验基于同一组观察案例测量所得的两个变量y1和y2的平均数是否显著地不同。
μ单样本t检验
ttest x =
μ中位数检验
signtest x=
ttest x1, by(x2) 根据x2分组对x1进行t检验
方差分析(ANOVA)提供比t检验更一般的方法来检验平均数之间的差异。
最简单的例子是单因素(oneway)方差分析,批准检验y的平均数是否在x的多个类别上都相等。
命令的一般形式为:oneway measurement(测量型变量名) categorical(分类变量名)
例:oneway drink belong, tabulate 后面的tabulate除了得到方差分析表外,还得到一个平均数和标准差的表。
anova drink year 双因素因子方差分析
predict drinkmean 预测平均值
label variable drinkmean “something”添加标签
predict SEdrink, stdp 计算预测平均数的标准误
serrbar 创建误差条形图
第六章线性回归分析
【命令范式】
regress y x 执行y对单个变量x的常规最小二乘法回归
regress y x if x1==3 & x2>50 & x2<. 执行回归,只针对符合后面限制条件的数据子集predict yhat创建一个新变量yhat,令其等于最近回归得到的预测值
predict e, resid 创建一个新变量e,并令其等于最近回归所得到的残差
graph twoway lfit y x || scatter y x画出y对x的散点图,并加入简单回归线
graph twoway mspline yhat x || scatter y x 在y对x的散点图上加画简单回归线,并用修匀的立方样条曲线将回归预测值(yhat)连接起来
rvfplot[, yline(0)]自动采用最近的回归分析结果画出残差对拟合值(即预测值)的标绘图graph twoway scatter e yhat, yline(0) 用变量e和yhat画出残差对预测值的标绘图
regress y x1 x2 x3执行y对三个预测变量的多元回归
regress y x1 x2 x3, vce(robust) 计算标准误的稳健估计值
regress y x1 x2 x3, beta执行多元回归,并且将标准化回归系数包含在输出表中。
标准化回归系数是我们在一个所有变量都被转化为标准分(平均数为0,标准差为1)后的回归中所看到的系数。
correlate x1 x2 x3 y显示皮尔逊相关矩阵,使用的数据公包括那些在所有指定变量均无缺失值的观测案例。
如果加上covariance选项,将输出方差协方差矩阵而不是相关矩阵pwcorr x1 x2 x3 y, sig star(0.05) 显示皮尔逊相关矩阵,采用配对删除的方法去掉缺失值,并显示对每个相关系数的虚无假设H0:ρ=0进行t检验得到的概率。
0.95统计显著用单星“*”表示。
graph matrix x1 x2 x3 y, half画散点图矩阵
test x1 x2 执行F检验,虚无假设为:在最近的回归模型中,x1和x2的系数都等于零
xi: regress y x1 x2 i.catvar*x2
stepwise, pr(.05): regress y x1 x2 x3执行反向剔除的逐步回归,直到所有保留的预测变量都在0.05水平上显著。
regress y x1 x2 x3 [aweight=w] 执行y对x1, x2, x3 的加权最小二乘回归。
变量w代表分析性权数。
SS 平方和
df 各自自由度
MS=SS/df 为各自的均方根
例:regress x1 x2, level(99)
regress y x, nocons 无常数项回归
regress y c x , hascons 自变量包括用户自己提供的常数“c”
regress y x
predict e, resid 预测残差
label variable e “residual”
generate yhat0=_b[_cons]+_b[percent] _b[varname]表示自变量的回归系数
_b[_cons]表示常数项的系数,通常就是截距generate e0=y-yhat0 创建新变量e0
predict new表示y的预测值
predict new, rstandard标准化残差
predict new, stdp 预测的y平均数的标准误
predict new, stdf 单个y预测值的标准误
predict new, stdr 残差的标准误
【回归的基本图形】:
graph twoway lfit x1 x2 线性拟合一条简单的回归线
graph twoway lfit x1 x2 || scatter x1 x2 || ,ytitle(“”) legend(off)
graph twoway lfitci y x, stdp 画出简单回归线及置信区间(0.95)(条件平均数)
【相关】
correlate命令会得到变量之间的皮尔逊积距相关。
pwcorr(成对相关)在correlate 的基础上,同时提供t检验概率来检验每一项相关等于零的虚无假设
多重比较谬误:通过sidak方法调整显著性水平
pwcorr x1 x2 x3, sidak sig star(.05)
correlate w x y z covariance产生一个协方差矩阵而不是相关矩阵
correlate, _coef 在回归分析后使用该命令将显示估计系数之间的相关矩阵,这有时可用于诊断多元共线性
correlate, _coef covariance该命令可以显示估计系数的方差协方差矩阵,推导标准误
keep if !missing(x1, x2, x3)去除变量x1,x2,x3中含缺失值的观测案例
drop if missing(x1, x2, x3)==1 同上,去除含缺失值的观测案例
【regress 假设检验】:
1.整体F检验
2.单个t检验(双侧)
前缀quietly 重复多元回归,仅显示简单输出结果
test x1 x2 x3 整体F检验(可能复制出单个系数检验)
test x1=a
test x1=x2即检验假设x1-x2=0
test x1=(x2+x3)/10
【虚拟变量】:
tabulate region, gen(reg) 为region(共n项)创建虚拟变量,生成变量reg1,..regn。
ttest x1, by(reg2)检验虚拟变量之间的差异
另一替代性命令areg不需要首先创建虚拟变量,但它能吸收一个k个类别变量的效应,并得出整体F值。
只是不提供单个虚拟变量的系数估计值
label define reg2 0 “other regions” 1 “northeast”
label values reg2 reg2 添加虚拟变量的标签
graph twoway lfit x1 x2 || scatter x1 x2 || , by(reg2, legend(off) note(“”)) ytitle(“”)
xi命令:命令xi(即扩展交互)简化了把多个分类变量扩展为成套的虚拟变量和交互变量,并把它们用作回归或者其他模型的预测变量这一工作。
例如:xi, prefix(ind) i.year 把三个新的虚拟变量命名为indyear_2, indyear_3, indyear_4
xi i.year则新的虚拟变量被命名为_Iyear_2等
drop _I* 采用通配符*来删除所有名字以_I开头的的变量
xi在创建虚拟变量时默认地省略分类变量的最小值,但这是可以加以控制的。
键入命令:char _dta[omit] prevalent将导致此后的xi命令自动省略最普遍的类别。
如要恢复默认:char _dta[omit]
char year[omit] 3将省略year3这一类,要恢复默认,输入:char year[omit]
xi还可以创建涉及两个分类变量的交互项,或者是涉及一个分类变量和一个测量型变量的交互项:xi i.x1*i.x2 (如果是虚拟变量前面要加i.,否则不用)
xi的真正方便之处在于它在回归或其他模型拟合命令中自动创建虚拟变量和交互项的能力。
例如,如果x2是虚拟变量:
xi: regress y x1 i.x2 则自动为x2创建虚拟变量
xi: regress y x1 i.x2*x3
【逐步回归】:
stepwise, pr(0.05): regress y x2 x3 x4 x5 从前往后逐步剔除p值高于0.05的变量stepwise, pr(0.05) lockterm1: regress y x1 x2 x3 x4 x5 锁定变量x1,使不被排除stepwise, pe(0.05): regress y x1 x2 x3 (x4 x5 x6)将括号内变量作整体处理,要么一起纳入要么一起排除。
pe( )表示正向纳入
stepwise, pr(0.05) hier: regress y x1 x2 x3 (x4 x5 x6) x7 设定各变量按序排列,首先考虑移除最后一项x7,如果没有移除,则停止下来。
如果剔除了x7,则再考虑倒数第二项
【多项式回归】:
一种简单非线性回归,通常能够成功拟合U形或倒U形曲线。
它同时纳入一个独立的变量以及它的平方项(必要时还可以包括更高次项)作为预测变量。
generate x1=x^2
regress y x x1
predict yhat2
graph twoway mspline yhat2 x, bands(50) ||scatter y x || , legend(off) ytitle(“”) 拟合曲线graph twoway mspline:拟合50个交叉中位数的立方样条曲线,简单画出平滑曲线
命令graph twoway qfit 可以拟合一个二次(二阶多项式)回归模型,qfitci还会画出置信区间带。