Stata

You might also like

Download as xlsx, pdf, or txt
Download as xlsx, pdf, or txt
You are on page 1of 18

指令

describe

describe, short
count
count if

isid

unique

codebook

summ

histogram

graph box

violin box

set scheme scheme-name


sactter varlists

help twoway

ci means

proportion

pwcorr

graph matrix
log file

log close

do file
pwd
cd

one-sample t test

two-sample t test

paired t test
Chi-squared test

Fisher's exact test

Risk ratio

list

Odds ratio
One-way ANOVA

Simple linear regression

Multiple linear regression


Logistic regression

Generalized linear model


Kaplan-Meier

Log-Rank Test

Cox

Generalized estimating Equation


ologit

mlogit
释义
describe [varlist]
[]means the varlist isn't necessary
显示整体大数据
number of rows(observations)
和if语句组合使用
isid varlist
check if an varible uniquely identifies the data
unique varlists
ssc install unique
eg:unique mpg price
codebook [varlist][if][in 观测范围][,options]
in:第几到第几观测值,eg:10; 10/30; 10/l; f/10
option:可以自定义的选项(all; header; notes; mv;tabluate; problems; detail; conpact; dots)
overview of variable type, stats, number of missing/unique values
summ [varlist][if][in 观测范围][weight][,options]
直方图
hist varname [if][in][weight][,[continuous_opts | discrete_opts]option]
varame: 变量
den: 密度 frac: 百分数 fre: 频数 percent: 百分比
hist price, freq bin(5): 5个直方
hist price, freq bin(5) normal: 5个直方+1条拟合曲线
hist price, by(foreign): 根据foreign分类制作多类别直方图
箱线图
graph box yvars [if][in][weight][,options] 竖箱线图
graph box yvars [if][in][weight][,options] 横箱线图
graph box y1 y2, over(cat_var):
y1 y2必须是numeric 作为y轴; cat_var必须是numeric或string作为x轴
graph box price:对price做箱线图
graph box price, over(foreign):根据foreign分类并对price做箱线图
小提琴图
vioplot varname[, option]
设置主题样式
set scheme s1mono, perm永久设置s1mono主题
散点图
[twoway] scatter varlists [if][in][weight][,options]
twoway scatter y x
twoways scatter y1 y2 y3 … x
twoways scatter weight length price
twoway scatter mpg weight, msymbol()mcolor()msize()
msymbol:改变形状,help symbolstyle
mcolor: 改变颜色,help colorstyle
msize: 改变大小,help markersizestyle
twoway scatter mpg weight, by(foreign): 对foreign分类并制作mpg(y轴)和weight(x轴)散点图
twoway (scatter mpg weight if foreign==0)(scatter mpg weight if foreign==1), legend(label(1"Domestic")label(2"Foreign"))
legend代表创造tag,把第一个scatter语句设置为Domestic,第二个则为Foreign

twoway plot varnames [if][in][, twoway_options]


plot:选择图像种类,plot可改为scatter,line,connected,area,bar,lowess,spike等
varnames: 一个或多个y变量,最后一个则是x变量
twoway_options: 可定义图像的“美观”部分,如轴范围,标题,注释,标签等
连续变量均属的置信区间
ci mean [varlist][if][in][weight][, options]
cii mean #obs#mean#sd[, level(#)]
ci mean mpg price, level(95): 设置95%执行区间
cii mean 166 19509 4379, level(95): 输入观测数、均值、标准差,95%置信区间

分类变量的置信区间
ci prop [varlist][if][in][weight][, prop_options options]
ci prop只可用于二分类变量
prop可用于多分类变量
prop [varlist][if][in][weight][, options]
prop foreign rep78, miss对缺失值也纳入观察

查看相关变量的相关性
pwcorr [varlist][if][in][weight][, pwcorr_options]
pwcorr price headroom mpg displacement, sig
sig: 查看p值
star(0.05): 对p值小于0.05标*

矩阵图
graph matrix varlist[if][in][weight][, options]
graph matrix price headroom mpg displacement, half
将所有显示在结果窗口内容保存在一个文件中
log using filename [, append replace [text|smcl] name(logname)]
filename: 文件名
append: 如果文件存在,附加在文件上
replace: 如果文件存在,替换该文件
log using aab, append
log using aab, replace
如文件存在,未指定replace或append,会报错
text和smcl位保存文件格式选择,建议用scml
log using abb, name(log_for_ab1): abb给ab1用
log using tsx, name(log_for_ab2): tsx给ab2用
关闭log file
log close: 未起名的log file关闭
log close logname: 起名的log file关闭
log close_all: 关闭全部log file

查看路径
更改路径
单样本t检验
statistics-->Summaries, tables and test-->Classical tests of hypotheses-->t test
ttest varname == # [if] [in][, level(#)]
ttest varname [if] [in], by(groupvar) [level(#)]
ttest price == 6000: 对价格=6000进行t检验,是否应该接受

独立样本t检验
ttest price, by(foreign)
t>=1-置信区间,接受H0(否命题)
t<1-置信区间,接受H1(真命题)
双变量t检验
ttest varname1 == varname2 [if] [in], unpaired [level(#)]
ttest mpg1==mpg2, unpaired

配对样本t检验
ttest varname1 == varname2 [if] [in], [level(#)]
ttest mpg1==mpg2
卡方检验
statistics-->Frequency tables-->twoway tables with measures of association
tab var1 var2, chi2
tab var1 var2, cchi2 chi2: 每个单元格对卡方检验的贡献
tab var1 var2, chi2 expected:
tabulate race married, chi2: race和married进行卡方检验
tabulate race married, chi2 expected: race和married进行卡方检验,查看各自期望频数
P<1-置信区间, 显著相关
P≥1-置信区间, 不显著相关
总例数≥40,所有期望频数≥5,看卡方检验结果
总例数≥40,出现1个期望频数[1,5),卡方检验需连续性校正,以continuity correction结果为准
总例数≥40,至少2个期望频数[1,5),看Fisher exact test
总例数<40或出现期望频数<1,看Fisher exact test
stata无需连续性校正

精确检验
通常理论频数小于5时,可以增加样本量、删除理论频数太少的行或列、或合并行或列
tab var1 var2, exact
tabulate race married, exact

相对危险度RR, 暴露累积发病率/对照组累积发病率(偏医学)
statistics-->Epidemiology and related-->tables for epidemiogists-->Cohort study risk-ratio etc.
cs var_case var_exposed [if] [in] [weight][, cs_options]
cs casr exp [fweight = pop]: case作为行,exp作为列,pop作为权数,计算RR
RR值都<1,则处于置信区间内
csi #1 #2 # #4 [, csi_opeions]
Risk ratio为0.51,表示降低49%风险
显示数据结构
比值比OR, 病例组中暴露人数与非暴露人数的比值/对照组中暴露人数与非暴露人数的比值(偏医学)
OR>1,表示该因素为危险因素
statistics-->Epidemiology and related-->tables for epidemiogists-->Case-control odds ratio
cc var_case var_exposed [if] [in] [weight][, cc_options]
cc case exposed [fweight = pop]: case作为行,exp作为列,pop作为权数,计算OR
cci #1 #2 #3 #4 [, cci_opeions]
单因素方差分析
假设1:y变量为连续变量
假设2:有一个包含2个及以上分类、且组别间相互独立的x变量
假设3:每组间和组内观测值相互独立
假设4:每组内没明显异常值
假设5:每组内y变量符合正态分布
假设6:进行方差齐性检验,观察每组的方差是否相等
graph box: 检验是否有异常值
sktest varname: 检验是否符合正态分布,p值≥1-置信区间,是符合
swilk varname: 检验是否符合正态分布,p值≥1-置信区间,是符合
sfrancia varname: 检验是否符合正态分布,p值≥1-置信区间,是符合
oneway systolic drug: systolic作为应变量,drug作为自变量,进行方差分析
简单线性回归
oneway systolic drug, bonferroni: systolic作为应变量,drug作为自变量,进行方差分析,显示两两比较
假设1:y是连续变量
假设2:x可定义为连续变量
假设3:y和x存在线性关系
假设4:具有相互独立观测值
假设5:不存在显著的outlier
假设6:等方差性
假设7:resdiual近似正态分布
scatter图: 用于检验是否存在线性关系
graph box: 检验是否有异常值
rvfplot: 检验等方差性
hist box: 检验残差是否近似正态分布
regress mpg weight: mpg作为y变量,weight作为x变量,进行回归
predict cancha, resdiual: 源数据新设cancha列
数据表显示中的Coef下面对应的数字为横向对应x变量的系数,_cons右侧数字为残差
多元线性回归
regress y x1 x2 ... xn
regress pice weight length: mpg作为y变量,weight和length作为x变量,进行回归
各个x变量的系数指控制其他x变量后,该x变量和y变量的线性关系
Dummy varible: 哑变量,当x变量为多分类变量,仅用一个回归系数来解释多分类变量之间的变化关系,显得不理想
regress price weight length mpg i.rep78: rep78作为分类变量进行回归
通常多分类变量会用第n种情况和默认第一种情况(不显示)做对比解释,即第二种情况和第一种情况相比后的线性关
gen weight_center = weight -3019.459: 创建weight_center,且数值为weight-3019.459
二分类Logistic回归(偏医学)
ln[P(Y=1)/P(Y=0)]=β0+β1*x1+β2*x2+...+βn*xn
通常当发生率>15%,logistic regression得出的OR值会overestimate实际RR值
条件1:y是二分类变量
条件2:y发生率<15%
假设1:因变量是二分类变量
假设2:至少1个自变量,可以是连续也可以是分类变量
假设3:每条观测间互相独立
假设4:最小样本量要求是自变量数的15倍
假设5:连续自变量与因变量的logit转换值之间存在线性关系
假设6:自变量之间无多重共线性
假设7:没有明显outlier
logistic y x1 x2 ... xn
logistic low age i.smoke
显示栏中odd ratio下数字即横向对应varname的系数,_cons右侧数字为残差

广义线性模型
linear regression: family(gaussoan)link(identity)
logistic regression: family(binomial)link(logit)
possion regression: family(possion)link(log)
log-binomial regression: family(binomial)link(log)
f(y)=β0+β1*x1+β2*x2+...+βn*xn,转化后的y和x呈线性关系
Family: y如何分布
Link: y如何转化才能和x呈线性关系
线性回归:Family为Gaussian,Link为identity
二分类Logistic回归:Family为binomial,Link为logit
泊松回归:Family为poisson,Link为log
Log-Binomial回归:Family为binomial,Link为log
线性回归:glm y x1 x2...xn, family(gaussoan)link(identity)
二分类回归:glm y x1 x2...xn, family(binomial)link(logit)
glm y x1 x2...xn, family(binomial)link(logit) eform: 转化为OR值
Log-binomial回归:glm y x1 x2...xn, family(binomial)link(log)
如果遇到fail to converge,使用family(possion)link(log) robust替代相关语句,显示栏中的IRR可认为是RR
非参数Kaplan-Meier曲线
描述一个组内个体生存时间(偏医学)
精确记录并利用每个个体发生终点事件的具体时间,在任何一个终点事件发生的时间点计算出一个新的、基于之前所
的Cumulative survival
stset: 必须输入的指令,之后才可用st指令
stset timevar, failure(failure[==numlist])
timevar: 随访时间变量
failvar: 终点时间变量
numlist: 终点时间变量中,那些值代表终点事件
eg: stset studytime, failure([died==1])
stum: 生存数据再观测
stdescribe: 生存数据再观测
sts list: 生存数据再观测
sts graph [if] [in][,by(var)][, options]: K-M曲线绘制
sts graph, by(drug)

比较两个货多个组的生存时间(偏医学)
检验组间差别
sts test varname
sts test drug
P值<1-置信区间,说明显著差异

研究生存时间和变量直接关系(偏医学)
stcox var1 var2 ... [if] [in] [, option]
显示栏中的Haz.ratio下方系数代表A终点事件发生概率是B的终点事件发生概率多少
proportional-hazards assumption: PH假定,必须紧跟Cox回归之后
estat phtest
P值<1-置信区间,拒绝H0
P值≥1-置信区间,接受H0
stphplot by(var1)adjust(var2 var3...)
图像显示近似平行,则认为H0有效;通常实务中不相交即可

广义估计方程
xtset studyid timevar
studyid: unique ID for each participant
timevar: 时间序列
xtset id year
xtgee y x1 x2 x3...xn [if] [in] [weight], family(family)link(link)corr(correlation structure) robust
correlation structure: ex\ind\uns\fix\ar #\sta #\non #
corr(ind) robust: 用该语句用于指令中,是万能公式
有序多分类变量logistic回归
ORj=Pr(cat>j)/Pr(cat≤j)
将y变量的n个分类分成n-1个二分类logistic回归
Proportional odds假定:
假定1:多个二元logistic回归中,除了β0以外的系数相等
ologit y x1 x2 x3... [if] [in] [weight][, options]
ologit rep77 foreign
数学结果:(Foreign=1)/(foreign=0)=e^(Coef下的数字)
进口车和国产车之比在更高车辆维修状况等级的odds是在更低维修状况等级的e^(Coef下的数字)倍
ologit rep77 foreign, or
进口车和国产车之比在更高车辆维修状况等级的odds是在更低维修状况等级的(odds ratio下的数字)倍

无序多酚类logistic回归:把结局变量的某个分类作为reference,然后比较结局变量其他分类相对于reference的相对风险
RRj=Pr(cat=j)/Pr(reference cat)
log(RRj)=β0j+β1j*x1+...+βpj*xp
ssc install glogit2: 安装指令包
满足Proportional odds假定: gologit2 y x1 x2…, pl or
不满足Proportional odds假定: gologit2 y x1 x2…, npl or
检验是否满足Proptional odds假定: Likelihood-ratio: lrtest
gologit2 rep77 foreign, pl or
est store A (结果存储到A)
golgit2 rep77 freign, npl or
est store B (结果存储到B)
lrtest A
无序多分类logistic回归
mlogit y x1 x2 ... , rrr baseoutcome(j)
mlogit rep77 foreign, rrr baseoutcome(1)
stata绿色文字不允许
// 跟在cpmmand之后的注释
/// 代表换行
/*两个星号之间加多行注释*/
* 星号开头代表这一行都是注释
use "child.dta", clear
import delimited "child.csv",clear
import delimited "child.csv",varnames(1), clear
import delimited "child.csv",varnames(1) case(upper), clear
import delimited "child.xls",clear
import delimited "child.xls",firstrow, clear
import delimited "child.xls",firstrow sheet("sheet1"), clear
import delimited "child.xls",firstrow case(upper), clear
destring CHILD_SEX = "." if CHILD_SEX == "M"
destring CHILD_SEX, replace
destring CHILD_SEX, generate(CHILD_SEX_2)
label var CHIL_SEX "xxxxx"
lbael define sex_label 1" 男孩" 2 "女孩"
label values CHILD_SEX SEX_label
label var CHILD_SEX
label values CHILD_SEX
rename baby_weight baby_weight_kg
gen weight_weight_g = baby_weight_kg * 1000
gen mon_education_low_right1 = 1 if mon_education <=3
replace mom_education_low_right1 = 0 if mon_education >3 & !Missing(mon_education)
sort child+dob_year
gsort +child+dob_year
gsort -child+dob_year
ds
browse
order child_dob_year, afer (child_pidx)
order child_dob_year, before (child_pidx)
merge 1:m chuld_pidx using "anthro.dta"
merge 1:1 varlist using filename [, options]
merge m:1 varlist using filename [, options]
merge 1:m varlist using filename [, options]
merge m:m varlist using filename [, options]
reshape wide stub, i(i) j(j)
by child_pidx: egen max_visit=max(visit)
导入dta文件
导入csv文件
导入csv文件,第一行必须是变量
导入csv文件,第一行必须是变量,且大写
导入excel文件
导入excel文件,第一行必须是变量
导入excel文件的sheet1,第一行必须是变量
导入excel文件,第一行必须是变量,且大写
把.变成M
把数值变量替换
生成一个新的变量CHILD_SEX_2
添加标签xxxxx
1为男孩 2为女孩
合并前两步
去除变量表情
去除数值标签
生成baby_weight_kg
生成变量

升序排列
升序排列
降序排列
查看数据集
浏览
将child_dob_year,放到child_pidx右侧
将child_dob_year,放到child_pidx左侧
合并归纳

长数据集变成宽数据集
生成统计了max_visit

You might also like