第二章 Stata的函数和变量
§2.1 Stata的函数
Stata具有丰富的函数功能。它不仅提供了一般计算机语言和统计软件包所具有的数学函数和字符串函数,而且还提供了很多有用的统计函数、特殊函数,以及许多独具特的系统变量。借助于这些函数和系统变量,用户可以得心应手地使用Stata,充分发挥自己的聪明才智,提高工作效率。
为讲述方便,先引入指令display。display使我们的计算机行使简单的计算功能,例如,要计算 3+22:
.dislplay 3+2^2
7
结果是7。
有了这个命令后,下面的讲述和练习就容易了。
一、 数学函数
1.abs(x) /*绝对值函数
3.log(x) /*自然对数
4.log10(x) /*常用对数
5.sqrt(x) /*平方根函数
6.sin(x) /*正弦函数
8.atan(x) /*反正切函数
9.lngamma(x) /*整数x的Γ函数之对数ln[(x-1)!]
二、 统计函数
2.invnorm(p) /*正态分布的分位数
3.Binomial(n,k,p) /*二项分布函数,表示n次试验中成功次数≥k的概率,p为成功概率
4.invbinomial(n,k,p) /*二项分布的逆函数,p示n次试验中成功次数≥k的概率,本函数给出
的是每次成功的概率。
当p<0.5时,概率p满足Pr(x≥k)=p
当p>0.5时,概率p满足Pr(x≥k)=1-p
5.tprob(df,t) /*自由度为df的t分布双侧累积概率Pr(|t|>t)
6.invt(df,P) /*自由度为df的t分位数:invt(df,1-tprob(df,t))=t
7.fprob(df1,df2,f) /*自由度为df1,df2的F分布的上侧累积概率
8.invfprob(df1,df2,p) /*F分布的分位数。
如果fprob(df1,df2,F)=p,则invfprob(df1,df2,p)=F
9.chiprob(df,x) /*自由度为df的χ2分布的上侧累积概率
字符串长度统计10.nchi(df,L,x) /*非中心χ2分布的上侧概率。1<=df<=200,0<=L<=1000
11.invnchi(df,L,p) /*非中心χ2分布的分位数。
如果nchi(df,L,x)=p,则invnchi(df,L,p)=x
12.gammap(a,x) /*不完全gamma函数P(a,x)
13.invgammap(a,p) /*不完全gamma函数P(a,x)的逆函数:
如果gammap(a,x)=p,则invgammap(df,p)=x
14.ibeta(a,b,x) /*不完全beta函数I_x(a,b)
15.uniform( ) /*产生(0,1)内的均匀分布的伪随机机数。每次使用时最好用命令
“set seed“设置随机数种子,以打乱伪随机数的固有顺序。
16.invnorm(uniform( )) /*产生均数为0, 标准差为1的标准正态分布随机数。
17.µ+σ×invnorm(uniform()) /*产生均数为µ, 标准差为σ的正态分布随机数。
三、 字符串函数
以下用s表示一个字符串, n表示一个数值。
1.length(s) /*长度函数,计算s的长度, 如,disp length("ab")的结果是2
2.substr(s,n1,n2) /*子串函数,获得从s的n1个字符开始的n2个字符组成的字符串,
如,disp substr("abcdef",2,3)的结果是"bcd"
3.string(n) /*将数值n转换成字符串函数,如,disp string(41)+"f"的结果是
"41f"
6.2
5.upper(s) /*转换成大写字母函数,如,disp upper("this")的结果是
"THIS"
6.lower(s) /*转换成小写字母函数,如disp lower("THIS")的结果是"this"
7.index(s1,s2) /*子串位置函数,计算s2在s1中第一次出现的起始位置, 如果s2不
在s1中, 则结果为0。如,disp index("this","is")的结果是3,
而index("this","it")的结果是0
9.ltrim(s) /*去除字符串前面的空格
四、 特殊函数
1. 符号函数sign(x) x>0时取1, x<0时取-1, x=0时取0。
2. 取整函数int(x) 去掉x的小数部分, 得到整数。int(x+0.5)是对x四舍五入取整,int(x+sign(x)/2)产生与x最近的一个整数。
3. 求和函数sum(x) 很常用,获得包括当前记录及以前的所有记录的x的和。缺失值(missing value)当0处理。
4. 最大值函数max(x1,x2,...,Xn) 忽略缺失值。
5. 最小值函数min(x1,x2,...,Xn) 忽略缺失值。
6. 分组函数group(x) 将数据分成大小近似相等的x个子样本, 分别给予组编号 1, 2,..., x。
7. 浮点转换函数float(x) 将x转换成浮点表示法。Stata是用浮点形式存储数据的, 因此, 在将变量与具体数值进行比较时,最好先将具体数值转换成浮点形式。例如, 当x为1.1时, 表达式x==1.1的结果可能不真, 因为表达式左边的x是浮点形式, 右边的1.1是双精度形式, 二者相差0.00000002384, 而改写为x==float(1.1)后, 结果就正确了。当某个数值没有有限的二进制表达时, 常常会出现这种情况。
8. 条件函数cond(x,a,b) x可以是一个条件, x非0(条件成立)时取a, x为0(条件不成立)时取b。
9. 归组函数recode(x,x1,x2,...,x n) 其结果可表达如下:
x1如果x<=x1
x2如果x1<x<=x2
x3如果x2<x<=x3
recode(x,x1,x2,…,x n) = ……
x n-1如果x n-2<x<=x n-1
x n如果x>x n-1
缺失值如果x为缺失值。
10.自动归组函数autocode(x,ng,xmin,xmax) 自动将区间(xmin,xmax)分成ng个等长的小
区间,其结果是包含x值那个小区间的上界值。其作用与归组函数相同。
§2.2 Stata的格式文件、变量和系统变量
一、 文件名和文件类型
Stata的格式文件命名规则与Dos中文件的命名规则相同,文件名以字母开头,不超过8个字符,不能用标点符号,及Dos中的通配符。Stata共有六种格式文件,其默认的后缀(文件扩展名)见表2.1。
表2.1 Stata的文件类型
文件扩展名文件特性
dct ASCⅡ数据字典文件
raw ASCⅡ数据文件
do 命令文件
dta Stata数据文件
log Stata结果文件
gph Stata图形文件
xp Stata的xp数据文件
二、 变量名和变量类型
与文件名一样,Stata的变量名可以是英文字母(A-Z和a-z),数字(0-9),下划线( _ ),可
区分的有效长度<=8。Stata中英文字母的大小写是有区别的。此外,以下是Stata的关键字或系统变量,不得用作用户变量名:
_all _n _N _skip _b _coef _c ons _pi _pred _rc _weight double
float long int in if using with
Stata的用户变量有数值变量和字符串变量两种。字符串长度可以多达254,但只有前面80个才有效。
三、 系统变量
1._coef[变量名]或_b[变量名]系统函数拟合方差分析、回归分析、Cox、logit或probit等模型后,利用系统函数可得到指定变量在当前拟合模型中的系数。在方差分析后,中括号[ ]内的变量可以是某种处理的某一水平。例如,_coef[drug[2]]表示药物的第二水平的系数,coef[drug[2]*disease[1]]表示药物的第二水平与第一种疾病的交互作用项的系数;在多类结果的logistic回归后,中括号[ ]内的变量可以是变量在某一类中的回归系数(见第十五章)。
2._cons 常数函数直接使用时总是1,而_b[_cons]]的结果是当前拟合模型的常数项。
3._N 数据库中观察值的总个数。
4._n 当前观察值的位置。
5._pi 圆周率π的数值。
6._rc 最近一次capture命令返回代码的数值
四、 结果变量
除此以外,Stata还提供了一个独具特的结果变量_result(#),该变量实际上是一个系统变量,但由于其特殊性和重要性,专门把它列为一节讲述。
第一章已讲到,Stata有许多其它软件所没有的优点,其中一个优点是它的显示结果非常简明、清晰,并将用户可能用于构造新变量的分析结果存于系统变量_result(#)下,这就为用户编制批处理命令文件进行连续分析处理数据创造了条件。
_result(#)括号内的#可以是一个具体数值,也可以是一个算术表达式,变化范围根据使用时的环境而变化,如在回归分析之后,n可以是1,2,3,4或5,每一个数值对应一个统计指标,详见表格2.2。
表2.2 _result(n)的使用环境及相应的统计指标
1.观察值个数 4. 第一和第二个变量的相关性或协方差
2. 5. 1或第二个变量的方差
3.1或第一个变量的方差
count
1.计数结果
inspect
1.观察值个数 5.为负整数的观察值个数
2.为负数的观察值个数 6. 为正整数的观察值个数
3.变量个数7.唯一数值或缺失值的个数
4.为正数的观察值个数8.不能辨别是数值还是缺失值的个数
表2.2(续) _result(n)的使用环境及相应的统计指标
1.观察值个数 4.观察值的最大个数
2.变量个数 5.变量的最大个数
3.当前宽度 6.最大宽度
cox,logit,or probite
1.观察值个数 3.模型的自由度
2.似然对数 4.χ2值
anova,regress,or stepwise
1.观察值个数 6.F统计量
2.模型的平方和7.R2
3.模型的自由度8.调整R2
4.残差平方和9.误差均方根
5.残差的自由度,
Factor
1.观察值个数7.第1个特征根
2.保留因素的个数8.第2个特征根
3.相对于无因子时的χ2检验…
4.相对于无因子时的χ2检验的自由度…
5.相对于更多因子时的χ2检验 19.第13个特征根
6.相对于更多因子时的χ2检验的自由度
Oneway
1.观察值个数 5.组内自由度
2.组间平方和 6.F统计量
3.组间自由度7.Bartlettχ2检验
4.组内平方和8.Bartlettχ2检验的自由度Summarize
1.观察值个数9.第25百分位点(选detail时才有效)2.权重之和10.第50百分位点(选detail时才有效)3.均值11.第75百分位点(选detail时才有效)4.方差12.第90百分位点(选detail时才有效)5.最小值13.第95百分位点(选detail时才有效)6.最大值14.偏度系数(选detail时才有效)
7.第5百分位点(选detail时才有效)15.峰度系数(选detail时才有效)
8.第10百分位点(选detail时才有效),
Tabulate
1.观察值个数8.Fisher确切概率
2.行数9.Cramer V 统计量
3.列数10.gamma 统计量
4.Pearsonχ2检验11.gamma 统计量的ASSE
5.Pearsonχ2检验的显著性12.tau-b 统计量
6.l.r. χ2检验13.tau-b 统计量的ASSE
7.l.r. χ2检验的显著性,
Test
2.模型的平方和 5.残差的自由度
3.模型的自由度 6.F统计量
4.残差平方和(只在anova后才有效),
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论