配色: 字号:
stata数据管理
2018-04-02 | 阅:  转:  |  分享 
  
////数据管理从这里开始///调整变量格式:?formatx1%10.3f?//将x1的列宽固定为10,小数点后取三位?form
atx1%10.3g?//将x1的列宽固定为10,有效数字取三位?formatx1%10.3e?//将x1的列宽固定为
10,采用科学计数法?formatx1%10.3fc?//将x1的列宽固定为10,小数点后取三位,加入千分位分隔符?form
atx1%10.3gc?//将x1的列宽固定为10,有效数字取三位,加入千分位分隔符?formatx1%-10.3gc?
//将x1的列宽固定为10,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐对样本进行随机筛选:?sample50?
//在观测案例中随机选取50%的样本,其余删除?sample50,count?//在观测案例中随机选取50个样本,其余删除
查看与编辑数据:?browsex1x2ifx3>3//按所列变量与条件打开数据查看器?editx1x2ifx3
>3//按所列变量与条件打开数据编辑器简单统计量的计------------------------------------
----------------------?ameansx//计算变量x的算术平均值、几何平均值和简单调和平均值,均显示样本
量和置信区间?meanvar1[pweight=var2]//求取分组数据的平均值和标准误,var1为各组的赋值,var
2为每组的频数?summarizeyx1x2,detail//可以获得各个变量的百分比数、最大最小值、样本量、平均数、标准
差、方差、峰度、偏度summarizevar1[aweight=var2],detail//求取分组数据的统计量,va
r1为各组的赋值,var2为每组的频数tabstatX1,stats(meannqmaxminsdvarcv//
计算变量X1的算术平均值、样本量、四分位线、最大最小值、标准差、方差和变异系数概率分布的计算:?贝努利概率分布测试:?we
busequick?bitestquick==0.3,detail//假设每次得到成功案例‘1’的概率等于0.3,计算在变量
quick所显示的二项分布情况下,各种累计概率和单个概率是多少?bitesti10,3,0.5,detail//计算当每次成功
的概率为0.5时,十次抽样中抽到三次成功案例的概率:低于或高于三次成功的累计概率和恰好三次成功概率泊松分布概率:?displa
ypoisson(7,6)//计算均值为7,成功案例小于等于6个的泊松概率?displaypoissonp(7,6)//计
算均值为7,成功案例恰好等于6个的泊松概率?displaypoissontail(7,6)//计算均值为7,成功案例大于等于6
个的泊松概率超几何分布概率:?displayhypergeometricp(10,3,4,2)//计算在样本总量为10,成
功案例为3的样本总体中,不重置地抽取4个样本,其中恰好有2个为成功案例的概率?displayhypergeometric(10,
3,4,2)//计算在样本总量为10,成功案例为3的样本总体中,不重置地抽取4个样本,其中有小于或等于2个为成功案例的概率检
验极端值的步骤--------------------------------常见命令:tabulate、stem、codeb
ook、summarize、list、histogram、graphbox、graghmatrix第一步,用codeboo
k、summarize、histogram、graphboxs、graphmatrix、stem看检验数据的总体情况:?cod
ebookyx1x2?summarizeyx1x2,detail?histogramx1,norm//正态直方图?
graphboxx1//箱图graphmatrixyx1x2,half//画出各个变量的两两x-y图?stemx
1//做x1的茎叶图??第二部,用tabulate、list细致寻找极端值?tabulatecodeifx1==极端值
//作出x1等于极端值时code的频数分布表,code表示地区、年份等序列变量,这样便可找出那些地区的数值出现了错误?list
codeifx1==极端值//直接列出x1等于极端值时code的值,当x1的错误过多时,不建议使用该命令listin-2
0/l//l表示lastone,-20表示倒数第20个样本,该命令列出了从倒数第20个到倒数第一个样本的各变量值第三部,用
replace命令替换极端值?replacex1=?ifx1==极端值??keepify<1000?dropify>
1000//去除极端值?数据排序-----------------------------------sortx//对数
据排序gsort+x//对数据按x进行升序排列?gsort-x?//对数据按x进行降序排列?gsort-x,gener
ate(id)mfirst//对数据按x进行降序排列,缺失值排最前,生成反映位次的变量id?orderyx3x1x2
//将变量按照y、x3、x1、x2的顺序排列生成新变量----------------------------------?g
enlogx1=log(x1)//得出x1的对数?genx1=exp(logx1)//将logx1反对数化?genr61
_100=1ifrank>=61&rank<=100//若rank在61与100之间,则新变量r61_100的取值为1,其他
为缺失值?replacer61_100ifr61_100!=1//“!=”表示不等于,若r61_100取值不为1,则将r6
1_100替换为0,就是将上式中的缺失值替换为0genabs(x)//取x的绝对值genceil(x)//取大于或等于x的
最小整数?gentrunc(x)//取x的整数部分?genround(x)//对x进行四舍五入?genround(x,y
)//以y为单位,对x进行四舍五入gensqrt(x)//取x的平方根?genmod(x,y)//取x/y的余数?gen
reldif(x,y)//取x与y的相对差异,即|x-y|/(|y|+1)?genlogit(x)//取ln[x/(1-x
)]genx=autocode(x,n,xmin,xmax)//将x的值域,即xmax-xmin,分为等距的n份?genx=
cond(x1>x2,x1,x2)//若x1>x2成立,则取x1,若x1>x2不成立,则取x2?sortx?gengx=gr
oup(n)//将经过排序的变量x分为尽量等规模的n个组?egenzx1=std(x1)//得出x1的标准值,就是用(x1-
avgx1)/sdx1?egenzx1=std(x1),m(0)s(1)//得出x1的标准分,标准分的平均值为0,标准差为1
egensdx1=sd(x1)//得出x1的标准差egenmeanx1=mean(x1)//得出x1的平均值?egenm
axx1=max(x1)//最大值?egenminx1=min(x1)//最小值?egenmedx1=med(x1)//
中数egenmodex1=mode(x1)//众数egentotalx1=total(x1)//得出x1的总数?egen
rowsd=sd(x1x2x3)//得出x1、x2和x3联合的标准差?egenrowmean=mean(x1x2x3)
//得出x1、x2和x3联合的平均值?egenrowmax=max(x1x2x3)//联合最大值?egenrowmin
=min(x1x2x3)//联合最小值egenrowmed=med(x1x2x3)//联合中数?egenrowmo
de=mode(x1x2x3)//联合众数?egenrowtotal=total(x1x2x3)//联合总数?ege
nxrank=rank(x)//在不改变变量x各个值排序的情况下,获得反映x值大小排序的xrank数据计算器display
命令---------------------------?displayx[12]//显示x的第十二个观察值display
chi2(n,x)//自由度为n的累计卡方分布?displaychi2tail(n,x)//自由度为n的反向累计卡方分布,c
hi2tail(n,x)=1-chi2(n,x)?displayinvchi2(n,p)//卡方分布的逆运算,若chi2(n,
x)=p,那么invchi2(n,p)=x?displayinvchi2tail(n,p)//chi2tail的逆运算?dis
playF(n1,n2,f)//分子、分母自由度分别为n1和n2的累计F分布?displayFtail(n1,n2,f)/
/分子、分母自由度分别为n1和n2的反向累计F分布?displayinvF(n1,n2,P)//F分布的逆运算,若F(n1,n
2,f)=p,那么invF(n1,n2,p)=fdisplayinvFtail(n1,n2,p)//Ftail的逆运算disp
laytden(n,t)//自由度为n的t分布displayttail(n,t)//自由度为n的反向累计t分布?displ
ayinvttail(n,p)//ttail的逆运算给数据库和变量做标记-------------------------
----?labeldata"~~~"//对现用的数据库做标记,"~~~"就是标记,可自行填写?labelvariable
x"~~~"//对变量x做标记?labelvaluesxlabel1//赋予变量x一组标签:label1?label
definelabel11"a1"2"a2"//定义标签的具体内容:当x=1时,标记为a1,当x=2时,标记为a2
频数表-----------------------------------?tabulatex1,sort?tab1x1-
x7,sort//做x1到x7的频数表,并按照频数以降序显示行?tablec1,c(nx1meanx1sdx1)//
在分类变量c1的不同水平上列出x1的样本量和平均值二维交互表------------------------------?we
buseautotablerep78foreign,c(nmpgmeanmpgsdmpgmedianmpg)
centerrowcol?//rep78,foreign均为分类变量,rep78为行变量,foreign为列变量,cent
er表示结果显示在单元格中间,row表示计算行变量整体的统计量,col表示计算列变量整体的统计量?tabulatex1x2,a
ll?//做x1和x2的二维交互表,要求显示独立性检验chi2、似然比卡方独立性检验lrchi2、对定序变量适用的等级相关系数g
amma和taub、以及对名义变量适用的V?tabulatex1x2,columnchi2//做x1和x2的二维交互表,要
求显示列百分比和行变量和列变量的独立性检验——零假设为变量之间独立无统计关系?tab2x1-x7,allnofreq//对x
1到x7这七个变量两两地做二维交互表,不显示频数:nofreq三维交互表---------------------------
-------------?byx3,sort:tabulatex1x2,nofreqcolchi2//同时进行x3的
每一个取值内的x1和x2的二维交互表,不显示频数、显示列百分比和独立性检验四维交互表---------------------
--------------------?tablex1x2x3,c(ferqmeanx1meanx2meanx
3)by(x4)?tabstatX1X2,by(X3)stats(meannqmaxminsdvarcv)
col(stats)?tabstatX1X2,by(X3)stats(meanrangeqsdvarcvp5p
95median),[aw=X4]//以X4为权重求X1、X2的均值,标准差、方差等ttestX1=1?countifX
1==0?countifX1>=0?genX2=1ifX1>=0?corrx1x2x3//做x1、x2、x3的相
关系数表?swilkx1x2x3//用Shapiro-WilkWtest对x1、x2、x3进行正太性分析?sktest
x1x2x3//对x1、x2、x3进行正太性分析,可以求出峰度和偏度?ttestx1=x2//对x1、x2的均值是否相
等进行T检验?ttestx1,by(x2)unequal//按x2的分组方式对x1进行T检验,假设方差不齐性?sdtest
x1=x2//方差齐性检验sdtestx1,by(x2)//按x2的分组方式对x1进行方差齐性检验聚类分析-------
----------------------------------------?clusterkmeansyx1x2x
3,k(3)//依据y、x1、x2、x3,将样本分为n类,聚类的核为随机选取?clusterkmeansyx1x2x
3,k(3)measure(L1)start(everykth)//"start"用于确定聚类的核,"everykth"表
示将通过构造三组样本获得聚类核:构造方法为将样本id为1、1+3、1+3×2、1+3×3……分为一组、将样本id为2、2+3、2
+3×2、2+3×3……分为第二组,以此类推,将这三组的均值作为聚类的核;"measure"用于计算相似性和相异性的方法,"L1
"表示采用欧式距离的绝对值,也直接可采用欧式距离(L2)和欧式距离的平方(L2squared)。PS:这个方法所得的结果与SPS
S所得结果相同。sortc1c2//对c1和c2两个分类变量排序byc1c2:regyx1x2x3//在c1、
c2的各个水平上分别进行回归?bysortc1c2:regyx1x2x3ifc3=1//逗号前面相当于将上面两步
骤合一,既排序又回归,逗号后面的“ifc3=1”表示只有在c3=1的情况下才进行回归?stepwise,pr(.2):reg
yx1x2x3//使用Backwardselection,去除P值大于0.2时变量stepwise,pe(.2):
regyx1x2x3//使用forwardselection,去除P值小于0.2时变量?stepwise,pr(.2
)pe(.01):regyx1x2x3//使用backward-stepwiseselection,取P值在0.01
和0.2之间的变量stepwise,pe(.2)forward:regyx1x2x3//使用forward-ste
pwiseselectionregyx1x2x3?predictYhat,xb?predictu,resid?pre
dictustd,stdr//获得残差的标准误?predictstd,stdp//获得y估计值的标准误?predicts
tdf,stdf//获得y预测值的标准误?predicte,e(1,12)//获得y在1到12之间的估计值?predict
p,pr(1,12)//获得y在1到12之间的概率?predictrstu,rstudent//获得student的t值?p
redictlerg,leverage//获得杠杆值predictckd,cooksd//获得cooksdmvregY1
Y2……:X1X2X3……//多元回归?mvregy1y2y3:x1x3x3//多元回归分析,y1y2
y3为因变量,x1x3x3为自变量test[y1]//测试对y1的回归系数联合为0?test[y1]:x1x2//
测试对y1的回归中x1、x2的系数为0?testx1x2x3//测试在所有的回归中,x1、x2、x3的系数均为0?test
[y1=y2]//对y1的回归和对y2的回归系数相等test[y1=y2]:x1x2x3,mtest//对y1和y
2的回归中,分别测试x1、x2、x3的系数是否相等,若没有mtest这个命令,则测试他们的联和统计??test[y1=y2=y3
]//三个回归的系数是否相等,可加mtest以分别测试?test[y1=y2=y3]:x1x2//测试三个回归中的x1、
x2是否相等,可加mtestest命令的用法--------------------?储存回归结果:?regyx1x
2x3//不限于reg,也可储存ivreg、mvreg、reg3?eststoreA?重现回归结果:?estrepl
ayA?对回归结果进行进一步分析:画图--------------------------------茎叶图:?stem
x1,line(2)//做x1的茎叶图,每一个十分位的树茎都被拆分成两段来显示,前半段为0~4,后半段为5~9?stemx1
,width(2)//做x1的茎叶图,每一个十分位的树茎都被拆分成五段来显示,每个小树茎的组距为2stemx1,round(1
00)//将x1除以100后再做x1的茎叶图直方图:?histogrammpg,discretefrequencynor
malxlabel(1(1)5)//discrete表示变量不连续,frequency表示显示频数,normal加入正太分布曲
线,xlabel设定x轴,1和5为极端值,(1)为单位?histogramprice,fractionnorm//frac
tion表示y轴显示小数,除了frequency和fraction这两个选择之外,该命令可替换为“percent”百分比,和“de
nsity”密度;未加上discrete就表示将price当作连续变量来绘图)?histogramprice,percent
by(foreign)//按照变量“foreign”的分类,将不同类样本的“price”绘制出来,两个图分左右排布?histog
rammpg,discreteby(foreign,col(1))//按照变量“foreign”的分类,将不同类样本的“
mpg”绘制出来,两个图分上下排布?histogrammpg,discretepercentby(foreign,tot
al)norm//按照变量“foreign”的分类,将不同类样本的“mpg”绘制出来,同时绘出样本整体的“总”直方图二变量图:
?graphtwowaylfitpriceweight||scatterpriceweight//作出price
和weight的回归线图——“lfit”,然后与price和weight的散点图相叠加?twowayscatterprice
weight,mlabel(make)?//做price和weight的散点图,并在每个点上标注“make”,即厂商的取值?tw
owayscatterpriceweight||lfitpriceweight,by(foreign)//按照变量
foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈左右分布?twowayscatt
erpriceweight||lfitpriceweight,by(foreign,col(1))//按照变量for
eign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈上下分布twowayscatterp
riceweight[fweight=displacement],msymbol(oh)//画出price和weight的
散点图,“msybol(oh)”表示每个点均为中空的圆圈,[fweight=displacement]表示每个点的大小与disp
lacement的取值大小成比例?twowayconnectedy1time,yaxis(1)||y2time,yax
is(2)//画出y1和y2这两个变量的时间点线图,并将它们叠加在一个图中,左边“yaxis(1)”为y1的度量,右边“yaxi
s(2)”为y2的)?twowayliney1time,yaxis(1)||y2time,yaxis(2)//与上图
基本相同,就是没有点,只显示曲线graphtwowayscattervar1var4||scattervar2va
r4||scattervar3var4//做三个点图的叠加?graphtwowaylinevar1var4||
linevar2var4||linevar3var4//做三个线图的叠加?graphtwowayconnect
edvar1var4||connectedvar2var4||connectedvar3var4//叠加三个点线相连图?graphmatrixabcy//画出一个散点图矩阵,显示各变量之间所有可能的两两相互散点图graphmatrixabcd,half//生成散点图矩阵,只显示下半部分的三角形区域?graphmatrixpricempgweightlength,halfby(foreign,totalcol(1))//根据foreign变量的不同类型绘制price等四个变量的散点图矩阵,要求绘出总图,并上下排列?graphboxy,over(x)yline(.22)//对应x的每一个取值构建y的箱型图,并在y轴的0.22处划一条水平线?graphbar(mean)y,over(x)//对应x的每一个取值,显示y的平均数的条形图。括号中的“mean”也可换成median、sum、sd、p25、p75等?graphbara1a2,over(b)stack//对应在b的每一个取值,显示a1和a2的条形图,a1和a2是叠放成一根条形柱。若不写入“stack”,则a1和a2显示为两个并排的条形柱?graphdot(median)y,over(x)//画点图,沿着水平刻度,在x的每一个取值水平所对应的y的中位数上打点?qnormx//画出一幅分位-正态标绘图?rcharta1a2a2//画出质量控制R图,显示a1到a3的取值范围
献花(0)
+1
(本文系大宝宝熊一...首藏)