第五章 statar软件教程-描述性统计分析
- 格式:ppt
- 大小:523.00 KB
- 文档页数:17
Stata—描述性统计1.资料的基本信息①summarizesummarize:汇总所有变量的名称,个案数⽬,均值,标准差等,缩写为sumformat age %6.2f:指定age变量的统计量输出时的保留2位⼩数sum age, format:结合上个命令,对年龄变量进⾏描述的汇总保留2位⼩数sum age,detail:汇总更加详细的信息②codebookcodebook没有sum详细codebook:汇总所有变量codebook var:汇总var变量③inspectinspect age:可以画出简单的直⽅图2.基本信息的统计①tabulate和table命令tabulate places:对places变量进⾏列表统计,此命令可缩写为tabtable places:只有频数统计,不可缩写为tabtab places price:统计不同地⽅的价格的列表tab places price:统计不同places的price的列表②tabstat命令tabstat price places:显⽰2个变量的平均值tabstat price places, stats(mean med min max):显⽰2个变量的平均值,中位数等统计量tabstat price places, stat(mean med min max p25) col(s) format(%6.2f):均值等统计量在表格的⾏中,并且将结果⼩数点保持在2位。
此命令也可以写为tabstat price places, s(mean med min max) c(s) f(%6.2f)。
tabstat price places, s(mean med min max) c(s) f(%6.2f) by (gender):根据性别分类来陈述上述的统计量。
③结果呈现(1)将Stata中的结果选中,右击⿏标选择Copy table,直接贴⼊Excel或者Word。
stata描述性统计分析报告describedescribe命令可以描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storagetype),标签(label)等。
list[varlist][if exp][in range]summarize[varlist][weight][if exp][in range][,detail]summarize可以提供varlist指定变量(可以不止一个)的如下统计量:Percentiles(分位数),四大最大的数和四个最小的数,Variance(方差),Std.Dev.(标准差),Skewness(偏度),Kurtosis(斜度)tabstattabstat varlist[weight][if exp][in range][,stats(statname[...])]tabstat提供[,stats(statname[...])]指定的统计量,可供选择的有mean(均值),count(非缺失观测值个数),sum(总和),max(最大值),min(最小值),range(最大值-最小值),sd (标准差),var(方差),cv(变易系数=标准差/均值),skewness(偏度),kurtosis(斜度),median(中位数),p1(1%分位数,类似地有p5, p10,p25,p50,p75,p95,p99),iqr(interquantile range=p75–p25)。
比如,想知道变量pop在整个样本的均值和方差,可以使用如下命令:tabstat pop,stats(mean var)anova命令anova y x1 x2anova做方差分析(analysis of variance),研究y的平均值在分类变量x1和x2不同取值之间的差异。
signrank命令signrank y1=y2signrank做Wilcoxon秩检验。
stata:使⽤汇总命令的描述性统计使⽤汇总命令的描述性统计这是⼀个使⽤summaryrize命令获取描述性统计信息的⽰例。
在第⼀个⽰例中,我们获得了名为female的0/1(虚拟)变量的描述性统计信息。
如果学⽣是⼥性,则此变量编码为1,否则编码为0。
在第⼆个例⼦中,我们得到⼀个名为write的连续变量的描述性统计,这是学⽣在写作测试中得到的分数。
我们使⽤详细信息选项来获取其他信息,包括百分位数,偏度和峰度。
您不必对所有连续变量使⽤detail选项。
use https:///stat/stata/notes/hsb2(highschool and beyond (200 cases))summarize femaleVariable | Obs Mean Std. Dev. Min Max-------------+--------------------------------------------------------female | 200 .545 .4992205 0 1Variable – 此列展⽰所描述的变量。
可以在 summarize 命令之后列出多个变量; 这样做时,将在输出的各⾏上看到每个变量。
Obs – 该列告诉您对该变量有效(即没有缺失)的观察值(或案例)的数量。
如果数据集中有200个观察值,但是变量female缺少10个值,那么这⼀列中的数字将是190。
Mean – 这是变量的平均值。
在这个样例中,我们的变量female的范围从0到1(最⼩值和最⼤值),因此均值实际上是编码为1的观测值的⽐例。
Std. Dev. – 这是变量的标准偏差。
这⾥给出了关于变量分布的扩展的信息。
summarize write, detailwriting score-------------------------------------------------------------Percentiles Smallest1% 31 315% 35.5 3110% 39 31 Obs 20025% 45.5 31 Sum of Wgt. 20050% 54 Mean 52.775Largest Std. Dev. 9.47858675% 60 6790% 65 67 Variance 89.8435995% 65 67 Skewness -.478415899% 67 67 Kurtosis 2.2385271% – 这是第⼀百分位数。
stata描述性统计代码Stata是一种强大的数据分析软件,它提供了丰富的统计分析功能和数据处理工具。
在Stata中进行描述性统计分析是非常常见的一种数据处理任务,下面是一些常用的Stata描述性统计代码: 1. 描述性统计分析summarize varname通过summarize命令可以计算变量varname的描述性统计量,包括平均数、标准差、最小值、最大值、中位数等。
2. 频数统计tabulate varname通过tabulate命令可以计算变量varname的频数统计,包括每个取值的频数和频率。
3. 分组统计summarize varname, by(groupvar)通过by子句可以按照groupvar变量进行分组统计,计算每个组别内变量varname的描述性统计量。
4. 交叉统计tabulate varname1 varname2通过tabulate命令可以计算两个变量varname1和varname2的交叉统计表,包括每个组合的频数和频率。
5. 分组交叉统计tabulate varname1 varname2, by(groupvar)通过by子句可以按照groupvar变量进行分组交叉统计,计算每个组别内两个变量varname1和varname2的交叉统计表。
6. 相关分析correlate varname1 varname2通过correlate命令可以计算两个变量varname1和varname2之间的相关系数和协方差。
7. 回归分析regress depvar indepvar1 indepvar2...通过regress命令可以进行回归分析,其中depvar为因变量,indepvar1、indepvar2等为自变量。
以上是一些常用的Stata描述性统计代码,可以帮助你快速地完成数据分析任务。
本节STATA命令摘要by分组变量:]summarize变量名1变量名2…变量名m[,detail]ci变量名1变量名2…变量名m[,level(#)binomialpoissonexposure(varname)by(分组变量)]cii样本量均数标准差[,level(#)]tab1变量名[,generate(变量名)]·资料特征描述(均数,中位数,离散程度)例:某地测定克山病患者与克山病健康人的血磷测定值如下表(数据摘自四川医学院主编的卫生统计学,1978出版,p21):患者2.63.243.733.734.324.735.185.585.786.406.53健康人1.671.981.982.332.342.503.603.734.144.174.574.825.78并假定这些数据已以STATA格式存入ex2.dta文件中,其中变量x1为患者的血磷测定值数据,变量x2为健康人的血磷测定值数据。
上述数据也可以用变量x表示血磷测定值,分组变量group=0表示患者组和group=1表示健康组(如:患者组中第一个数据为2.6,则x=2.6,group=0;又如:健康组中第三个数据为1.98,则x为1.98以及group为1),并假定这些数据已以STATA格式存入ex2a.dta文件中。
计算资料均数,标准差命令summarize,以述资料为例:useex2,clearsummarizex1x2结果:变量样本数均数标准差最小值最大值Variable|ObsMeanStd.Dev.MinMax---------+x1|114.7109091.3029772.66.53x2|133.3546151.3043681.675.78即:本例中急性克山病患者组的样本数为11,血磷测定值均数为4.711(mg%),相应的标准差为1.303,最小值为2.6以及最大值为6.53;健康组的样本量为13,血磷测定值均数为3.3546,相应的标准差为1.3044,最小值为1.67以及最大值为5.78。
stata做描述统计步骤
首先,导入数据集auto.dta通过存储文件打开该数据的stata命令为:use "D:\你自己存放auto.dta文件的路径\auto.dta"。
或者打开stata软件自带的数据集。
相应的Stata命令为sysuse auto,clear出现这样的结果表示数据导入成功。
数据导入成功以后,可先输入stata 命令:describe查看数据集的大致信息。
接下来,我们根据自己的研究需要,选择具体的变量或者全部的变量进行描述性分析。
Stata的操作演示如下:输入stata命令:summarize
summarize后可以跟具体变量的名称,如果不跟变量名称,则默认对全部变量进行描述性分析,两种结果如下:
(1)输入命令:summarize,得到全部变量的描述性统计结果。
(2)输入命令:summarize price mpg rep78 headroom,得到部分变量的描述性统计结果。
打开描述性统计结果1.doc文件对其进行整理,使之符合论文的要求以及更美观。
描述性统计讲R义R讲义 (1)第一章R入门 (4)1.1 求助的使用 (4)1.2 工作空间设置 (4)1.3 程序包的安装和使用 (4)1.4 创建数据集 (4)1.4.1 向量的创建 (4)1.4.2 矩阵的创建 (4)1.4.3 数组的创建(即,高于2维的矩阵) (5)1.4.4 数据框的创建(可由各种数据组成) (5)1.4.5列表的创建 (5)1.5 数据导入与导出 (5)1.5.1 csv与txt文件的导入 (5)1.5.2 导入SAS数据集 (6)1.6 画图 (6)1.7 数据处理 (8)1.7.1 创建新变量 (8)1.7.2 变量赋值 (8)1.7.3 变量改名字 (8)1.7.4 排序 (9)1.7.5 表的连接 (9)1.7.6 丢弃变量 (9)1.7.7 保留需要的观测 (9)1.8 基本函数 (9)1.9 编程 (10)1.9.1 循环 (10)1.9.2 条件判断 (11)1.9.3 自定义函数 (12)第二章 数据的搜集 (13)2.1数据的来源 (13)2.2调查数据 (13)2.3实验数据 (13)2.4数据的误差 (13)第三章 数据的图表展示 (14)3.1数据的预处理 (14)3.1.2数据的筛选 (14)3.1.3数据的排序 (14)3.1.4数据透视表 (14)3.2品质数据的整理与展示 (15)3.3 数值型数据的整理与展示 (18)3.4 合理使用图表 (26)第四章数据的概括性度量 (27)4.1 集中趋势的度量 (27)4.1.1 分类数据:众数 (27)4.1.2 顺序数据:中位数和分位数 (27)4.1.3 数值型数据:平均数 (27)4.1.4 众数、中位数和平均数的比较 (28)4.2 离散程度的度量 (28)4.3 偏态与峰态的度量 (29)4.3.1 偏态及其测度 (29)4.3.2 峰态及其测度 (29)第五章 概率与概率分布 (30)5.1 随机事件及其概率 (30)5.2概率的性质与运算法则 (30)5.3离散型随机变量及其分布 (30)5.3.1 随机变量的概念 (30)5.3.2离散型随机变量的概率分布 (30)5.4连续型随机变量的概率分布 (31)5.4.1 概率密度与分布函数 (31)5.4.2 正态分布 (31)第一章R入门R入门可以参考:R for beginners 153分钟学会R1.1 求助的使用help.start()help(“xxxfun”) or ?xxxfunexample(“xxxfun”)1.2 工作空间设置getwd()#获取工作路径setwd("C:/myprojects/project1") #设置路径savehistory("myfile")loadhistory("myfile")save.image("myfile") #Save the workspace to myfile (default = .RData). save(objectlist,file="myfile")load("myfile")q()1.3 程序包的安装和使用install.packages("tm") #包的安装library(tm) #包的加载1.4 创建数据集1.4.1 向量的创建Vectors(单一类型元素组成)a <- c(1, 2, 5, 3, 6, -2, 4)b <- c("one", "two", "three")c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)seq(4,5,0.1)[1] 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 rep(c(1,2),c(2,3))[1] 1 1 2 2 21.4.2 矩阵的创建cells <- c(1,26,24,68)mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE,dimnames=list(rnames, cnames))1.4.3 数组的创建(即,高于2维的矩阵)dim1 <- c("A1", "A2")dim2 <- c("B1", "B2", "B3")dim3 <- c("C1", "C2", "C3", "C4")z <- array(1:24, c(2, 3, 4), dimnames=list(dim1, dim2, dim3))1.4.4 数据框的创建(可由各种数据组成)patientID <- c(1, 2, 3, 4)age <- c(25, 34, 28, 52)diabetes <- c("Type1", "Type2", "Type1", "Type1")status <- c("Poor", "Improved", "Excellent", "Poor")patientdata <- data.frame(patientID, age, diabetes, status)1.4.5列表的创建g <- "My First List"h <- c(25, 26, 18, 39)j <- matrix(1:10, nrow=5)k <- c("one", "two", "three")mylist <- list(title=g, ages=h, j, k)> mylist[[2]][1] 25 26 18 39> mylist[["ages"]][[1] 25 26 18 391.5 数据导入与导出1.5.1 csv与txt文件的导入首先设定路径: setwd("D:/Documents/Quant/stocksindexfutures2011") 1)从csv导入zjif=read.csv(c[1],header=FALSE)2)从文本逐行读入a.建立文本文件存放路径,路径间回车放b.逐行读入路径:c=readLines("D:/Documents/Quant/stocksindexfutures2011/fil.txt")数据导出:write.csv(zjif,"D:/Documents/Quant/analysisdata/zjif.csv")1.5.2 导入SAS数据集install.packages("sas7bdat")library(sas7bdat)data_from_SAS = read.sas7bdat("E:/sas_data_file/数据名.sas7bdat")1.6 画图dose <- c(20, 30, 40, 45, 60)drugA <- c(16, 20, 27, 40, 60)plot(dose, drugA, type="b",col="red", lty=2, pch=2, lwd=2,main="Clinical Trials for Drug A",sub="This is hypothetical data",xlab="Dosage", ylab="Drug Response",xlim=c(0, 60), ylim=c(0, 70))dose<-c(20,30,40,45,60)drugA <- c(16, 20, 27, 40, 60)drugB <- c(15, 18, 25, 31, 40)plot(dose, drugA, type="b",pch=15, lty=1, col="red", ylim=c(0, 60),main="Drug A vs. Drug B",xlab="Drug Dosage", ylab="Drug Response")lines(dose, drugB, type="b",pch=17, lty=2, col="blue")abline(h=c(30), lwd=1.5, lty=2, col="gray")legend("topleft", inset=.05, title="Drug Type", c("A","B"),lty=c(1, 2), pch=c(15, 17), col=c("red", "blue"))1.7 数据处理manager <- c(1, 2, 3, 4, 5)date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/09")country <- c("US", "US", "UK", "UK", "UK")gender <- c("M", "F", "F", "M", "F")age <- c(32, 45, 25, 39, 99)q1 <- c(5, 3, 3, 3, 2)q2 <- c(4, 5, 5, 3, 2)q3 <- c(5, 2, 5, 4, 1)q4 <- c(5, 5, 5, NA, 2)q5 <- c(5, 5, 2, NA, 1)leadership <- data.frame(manager, date, country, gender, age, q1, q2, q3, q4, q5, stringsAsFactors=FALSE)1.7.1 创建新变量# Notation+ Addition- Subtraction* Multiplication/ Division^ or ** Exponentiationx%%y Modulus (x mod y) 5%%2 is 1x%/%y Integer division 5%/%2 is 2mydata<-data.frame(x1 = c(2, 2, 6, 4),x2 = c(3, 4, 2, 8))mydata$sumx <- mydata$x1 + mydata$x2mydata$meanx <- (mydata$x1 + mydata$x2)/2attach(mydata)mydata$sumx <- x1 + x2mydata$meanx <- (x1 + x2)/2detach(mydata)mydata <- transform(mydata,sumx = x1 + x2,meanx = (x1 + x2)/2)1.7.2 变量赋值leadership <- within(leadership,{agecat <- NA agecat[age > 75] <- "Elder" agecat[age >= 55 & age <= 75] <- "Middle Aged" agecat[age < 55] <- "Young" })1.7.3 变量改名字library(reshape)leadership <- rename(leadership,c(manager="managerID", date="testDate"))or names(leadership)[2] <- "testDate"1.7.4 排序attach(leadership)newdata <-leadership[order(gender, -age),]detach(leadership)1.7.5 表的连接Merge(此例为内联)total <- merge(dataframeA, dataframeB, by=c("ID","Country"))settotal <- rbind(dataframeA, dataframeB)1.7.6 丢弃变量myvars <- names(leadership) %in% c("q3", "q4")newdata <- leadership[!myvars]1.7.7 保留需要的观测newdata <- leadership[1:3,]newdata <- leadership[which(leadership$gender=="M" & leadership$age > 30),]newdata <- subset(leadership, age >= 35 | age < 24,select=c(q1, q2, q3, q4))newdata <- subset(leadership, gender=="M" & age > 25,select=gender:q4)1.8 基本函数abs(x) Absolute value abs(-4) returns 4.sqrt(x) Square root sqrt(25) returns 5. This is the same as 25^(0.5).ceiling(x) Smallest integer not less than x, ceiling(3.475) returns 4.floor(x) Largest integer not greater than x, floor(3.475) returns 3.trunc(x) Integer formed by truncating values in x toward 0, trunc(5.99) returns 5.round(x, digits=n) Round x to the specified number of decimal places, round(3.475, digits=2) returns 3.48.signif(x, digits=n ) Round x to the specified number of significant digits, signif(3.475, digits=2) returns 3.5.cos(x) , sin(x) , tan(x) Cosine, sine, and tangent, cos(2) returns –0.416.acos(x) , asin(x) , atan(x) Arc-cosine, arc-sine, and arc-tangent, acos(-0.416) returns 2.cosh(x) , sinh(x) , tanh(x) Hyperbolic cosine, sine, and tangent, sinh(2) returns 3.627.acosh(x) , asinh(x) , atanh(x) Hyperbolic arc-cosine, arc-sine, and arc-tangent, asinh(3.627) returns 2.log(x,base=n)exp(x) Exponential function exp(2.3026) returns 10.mean(x) Mean, mean(c(1,2,3,4)) returns 2.5.median(x) Median, median(c(1,2,3,4)) returns 2.5.sd(x) Standard deviation, sd(c(1,2,3,4)) returns 1.29.var(x) Variance, var(c(1,2,3,4)) returns 1.67.quantile(x, probs) Quantiles where x is the numeric vector where quantiles are desired and probs is a numeric vector with probabilities in [0,1].# 30th and 84th percentiles of x, y <- quantile(x, c(.3,.84))range(x) Range, x <- c(1,2,3,4), range(x) returns c(1,4).diff(range(x)) returns 3.sum(x) Sum, sum(c(1,2,3,4)) returns 10.min(x) Minimum, min(c(1,2,3,4)) returns 1.max(x) Maximum, max(c(1,2,3,4)) returns 4.substr(x, start, stop ) Extract or replace substrings in a character vector. x <- "abcdef"substr(x, 2, 4) returns “bcd”.substr(x, 2, 4) <- "22222" (x is now, "a222ef").toupper(x) Uppercase, toupper("abc") returns “ABC”.tolower(x) Lowercase, tolower("ABC") returns “abc”.length(x) Length of object x., x <- c(2, 5, 6, 9), length(x) returns 4.seq(from, to, by) Generate a sequence.indices <- seq(1,10,2), indices is c(1, 3, 5, 7, 9).1.9 编程1.9.1 循环1.forfor (name in expr_1) expr_2for (i in 1:10) {print("Hello")}2.whilewhile (condition) expri <- 10while (i > 0) {print("Hello");i <- i - 1}3.repeatrepeat expr该循环依赖break跳出循环1000以内的Fibonacci 数的程序:f<-1; f[2]<-1; i<-1repeat {f[i+2]<-f[i]+f[i+1]i<-i+1if (f[i]+f[i+1]>=1000) break}1.9.2 条件判断1.if (cond) statementif (cond) statement1 else statement22.switch(statement,list)y <- "fruit"switch(y,fruit="banana",vegetable="broccoli",meat="beef")[1] "banana"1.9.3 自定义函数基本格式:函数名funname <- function(arg_1, arg_2, ...) expressionmystats <- function(x, parametric=TRUE, print=FALSE) { if (parametric) {center <- mean(x);spread <- sd(x)}else {center <- median(x); spread <- mad(x)}if (print & parametric) {cat("Mean=", center, "\n", "SD=", spread, "\n")}else if (print & !parametric) {cat("Median=", center, "\n", "MAD=", spread, "\n")}result <- list(center=center, spread=spread)return(result)}第二章 数据的搜集2.1数据的来源2.2调查数据2.2.1概率抽样和非概率抽样sample(x, size, replace = FALSE, prob = NULL)x:抽样对象size:所抽样本量大小replace = FALSE,不放回抽样,replace = TRUE,有放回抽样prob =c(p1,p1,...,pn):按照对应概率抽样例:贝努力抽样:sample(c(0,1), 100, replace = TRUE,prob=c(0.1,0.9))[1] 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 [47] 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 [93] 1 1 1 1 1 1 1 12.3实验数据2.4数据的误差第三章 数据的图表展示3.1数据的预处理3.1.2数据的筛选例:x<-1:30d <- x[x > 15] #选出>15的数;d[1] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 303.1.3数据的排序sort(x, decreasing = FALSE, ...)x:排序对象decreasing = TRUE,按降序排列3.1.4数据透视表3.2品质数据的整理与展示3.2.1分类数据的整理与图示条形图:barplot(height, width = 1,...) 详细参数可使用help barplot 或 ?help barplot; 例:y=c(1,2,3) #单组names(y)=c('a','b','c') barplot(y,col=1:3,legend=c('a','b','c'),beside=T)a bc0.01.02.03.0y=matrix(1:6,nrow=3,ncol=2) # 2组 rownames(y)=c('a','b','c') colnames(y)=c('M','F') barplot(y,col=1:3,legend=c('a','b','c'),beside=T)MF0246barplot(y,col=c('red','green','blue'), legend=c('a','b','c'),beside=T, args.legend=list(x="topleft"))# 选择颜色,图例位置等M F0246帕累托图:加载’qcc’包pareto.chart(x, ylab = "Frequency", ylab2 = "Cumulative Percentage", xlab, cumperc = seq(0, 100, by = 25), ylim, main, col = heat.colors(length(x)), ...) ylab2 :右边纵轴名称 cumperc :右边纵轴刻度 例:library(qcc)data<-c(12,23,14,35) # 创建示例数据 names(data)<-letters[1:4] # 给数据命名 pareto.chart(data,col=1:length(data)) # 创建帕累托图dbcaPareto Chart for dataF r e q u e n c y20406080%25%50%75%C u m u l a t i v e P e r c e n t a g e饼图:pie(x, labels = names(x), edges = 200, radius = 0.8,....) x:对象(向量)labels = names(x):为饼图每片命名例:pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12) names(pie.sales) <- c("Blueberry", "Cherry", "Apple", "Boston Cream", "Other", "Vanilla Cream")pie(pie.sales) # default colourspie(pie.sales,col=rainbow(length(pie.sales)))环形图:library(ggplot2)dat = data.frame(count=c(10, 60, 30), category=c("A", "B", "C")) #创建数据框dat$fraction = dat$count / sum(dat$count) #添加一列fractiondat = dat[order(dat$fraction), ] #对数据重新排序 dat$ymax = cumsum(dat$fraction) #添加一列ymax dat$ymin = c(0, head(dat$ymax, n=-1)) #添加一列ymin ggplot(dat, aes(fill=category, ymax=ymax, ymin=ymin, xmax=4, xmin=3)) + geom_rect() +coord_polar(theta="y") +xlim(c(0, 4)) +labs(title="Basic ring plot")3.2.1顺序数据的整理与图示例:P51 3-19(a): R_code:val <- c(24, 108, 93, 45, 30)plot(cumsum(val),xlab='满意度',ylab='累积户数',type='b',ldw=1.5) lines(cumsum(val),col=4)1234550150250满意度累积户数3.3 数值型数据的整理与展示3.3.1数据分组3.3.2数值型数据的图示直方图:hist()hist(x, breaks = "Sturges", freq = NULL);breaks表示组距例:R_code:w<-rbinom(100,20,0.4)hist(w,breaks=seq(0,20,2),col=rainbow(length(seq(0,20,2)))hist(w,breaks=c(0,2,4,6,8,10,15,20))hist(w,breaks=10)freq为TRUE是绘频率直方图,FALSE绘密度直方图hist(w,breaks=10,freq=FALSE)核密度估计函数(与直方图配套)density()估计其密度w<-rnorm(100)hist(w,freq=FALSE)lines(density(w))x<-seq(-3,3,0.01)lines(x,dnorm(x,mean(w),sd(w)),col=3)茎叶图:stem(x)stem(x,scale=1,width=80,atom=1e-08)scale表示把10个个位数分成几段,合适的值要自己摸索width表示作图宽度atom表示容差例:x<-1:40stem(x)The decimal point is 1 digit(s) to the right of the |0 | 12340 | 567891 | 012341 | 567892 | 012342 | 567893 | 012343 | 567894 | 0箱线图:boxplot(count~spray,data=InsectSprays,col=2:7)boxplot(x,notch=FALSE);notch 等于T时,箱线图的中心往里凹boxplot(count~spray,data=InsectSprays,notch=TRUE,col=1:6)时间序列数据:线图例3.8 p60town<-c(1700.6, 2026.6, 2577.4, 3496.2, 4283, 4838.9, 5160.3, 5425.1, 5854, 6280, 6859.6, 7702.8, 8472.2)country <-c(708.6, 784, 921.6,1221, 1577.7, 1926.1, 2091.1, 2162, 2210.3, 2253.4, 2366.4, 2475.6, 2622.2)data <- matrix(c(town,country),13,2)dataseries <-ts(data, start=1991) #创建时间序列colnames(dataseries) <- c("城镇居民","农村居民")op<-par(lwd=2,cex=1.2,b=2) #对作图窗进行设置plot.ts( dataseries,type='b',col=1:2,xlab='年份',ylab='人均收入') #画时间序列图par(op) #初始化作图窗也可以用下面程序:year<-seq(1990,2002,1)op<-par(lwd=2,cex=1.5,b=2)plot(c(year,year),c(town,country),xlab='年份',ylab='人均收入')lines(year,town,col=3)lines(year,country,col=2)legend(1991,8000,legend=c("城镇居民","农村居民"),lty=c(1,1),col=c(3,2)) par(op)plot(x, y, ...) x:横坐标 y:纵坐标例3.9 p61x <- c(25, 40, 58, 68, 110, 98, 120) #降雨量y <- c(2250, 3450, 4500, 5750, 5800, 7500, 8250)#产量plot(x,y,col='black',xlab='降雨量(mm)',ylab='产量(kg/mm^2)') r<-lm(y~x) # model fit lines(fitted(r)~x)40608010012030006000降雨量(mm)产量(k g /m m ^2)例:p62 R_code :x <- c(25, 40, 58, 68, 110, 98, 120) #降雨量y <- c(2250, 3450, 4500, 5750, 5800, 7500, 8250)#产量 t <- c(6, 8, 10, 13, 14, 16, 21) #温度symbols(t,x,circles=y,bg=rainbow(length(y)),xlab='温度(oC)',ylab='降雨量(mm)') #画气泡图510152020406080100120温度(oC)降雨量(m m)例:p63library(fmsb)x1 <- c(37.12, 9.79, 6.30, 7.31, 11.08, 14.35, 10.74, 3.3)#城镇居民x2 <- c(45.59, 5.67, 4.2, 5.96, 8.36, 12.13, 15.87, 2.21)#农村居民x0<-data.frame(x1,x2)names(x0)<-c("城镇居民","农村居民")s(x0)<- c("食品","衣着","家庭设备用品","医疗保健","交通通讯","教育文化","居住","杂项")#项目x0 <- data.frame(t(x0))radarchart(x0,maxmin=FALSE)legend(1.5,-0.6,legend=c("城镇居民","农村居民"),pch=c(15,16),col=c("red","red"),lty=c(1,2))3.4 合理使用图表3.4.1 鉴别图形优劣的准则3.4.2 统计表的设计第四章数据的概括性度量4.1 集中趋势的度量4.1.1 分类数据:众数例:x<-c(rep(1,10),2,4,6)x[1] 1 1 1 1 1 1 1 1 1 1 2 4 6names(table(x))[table(x)==max(table(x))][1] "1"4.1.2 顺序数据:中位数和分位数中位数:median(x, na.rm = FALSE)na.rm :在处理数据之前是否删掉缺失值分位数:quantile (x)quantile (x, probs = seq (0, 1, 0.25))probs参数可更改以计算不同百分位数4.1.3 数值型数据:平均数均值:mean (x, trim = 0, na.rm =FALSE)x是对象(包括向量、矩阵、数组、数据框)trim是在计算均值前去掉x两段观察值的比例na.rm是是否允许有缺失数据,TURE为允许sum(!is.na(x)) 对有缺失数据的对象求和apply返回矩阵各行或各列的均值apply(x, 1, mean)返回矩阵各行的均值apply(x, 2, mean)返回矩阵各列的均值如果x是数据框,mean返回向量,相当于每列的均值x<-1:12;dim(x)<-c(3,4)mean(as.data.frame(x))V1 V2 V3 V42 5 8 11加权平均值weighted.mean (x, w, na.rm = FALSE)w为权,维数与x相同4.1.4 众数、中位数和平均数的比较4.2 离散程度的度量4.2.1 分类数据:异众比率异众比率:(length(x)-max(table(x)))/length(x)4.2.2 顺序数据:四分位差四分位差:quantile(x,0.75)-quantile(x,0.25)4.2.3 数据行数据:方差和标准差极差:Range<-function(x){max(x)-min(x)}Range(x)R软件本身range(x)返回x的最大和最小值方差:var(x) 样本方差标准差:sd(x) 样本标准差4.2.4 相对离散程度:离散系数变异系数:cv<-function(x){100*sd(x)/mean(x)}cv(x)4.3 偏态与峰态的度量需要加载包,library(fBasics),根据提示加载即可。
stata描述性统计代码
Stata是统计分析软件之一,其描述性统计功能应用广泛,可以快速地计算数据的基本统计量和一些描述性指标。
以下是Stata 描述性统计代码示例。
1. 导入数据
使用命令“use”或“import”导入数据,例如:
use 'C:Usersexampledata.dta'
2. 计算基本统计量
使用命令“summarize”或“su”计算变量的基本统计量,例如:
su var1 var2 var3
该命令将输出变量var1、var2和var3的均值、标准差、最小值、最大值和有效观测数量。
3. 计算频数和百分比
使用命令“tabulate”或“tab”计算分类变量的频数和百分比,例如:
tab var4
该命令将输出变量var4的频数和百分比,以及每个类别的有效观测数量。
4. 绘制直方图
使用命令“histogram”或“hist”绘制变量的直方图,例如: hist var5
该命令将输出变量var5的直方图,并计算出分布的峰值和中位数。
5. 计算相关系数
使用命令“correlate”或“corr”计算变量之间的相关系数,例如:
corr var1 var2 var3
该命令将输出变量var1、var2和var3之间的相关系数矩阵。
6. 计算回归分析
使用命令“regress”或“reg”进行回归分析,例如:
regress var1 var2 var3
该命令将输出变量var1、var2和var3的回归系数、标准误差、t值、p值和R-squared。
以上是Stata描述性统计代码示例,可以根据不同的数据和研究需求进行相应的调整和扩展。
stata描述性分析命令
Stata描述性分析命令是一组用于计算和显示数据统计特征的命令。
它们可以帮助我们了解样本的中心趋势,变异程度,分布形状等。
主要有以下几类:
1. 描述性统计量:summarize、tabstat等命令用于计算数据集中各变量的描述性统计量,如均值、标准差、最大值、最小值等。
2. 相关性分析:corr、pwcorr等命令用于计算变量之间的相关性,以及检验它们之间的统计显著性。
3. 数据可视化:graph等命令用于将数据作图,以便更好地理解数据的分布情况。
4. 分组比较:tabulate、ttest等命令用于对不同分组的数据进行比较,检验它们之间的差异是否具有统计学意义。
stata描述性统计代码
Stata是一种流行的统计分析软件,可用于数据管理、数据分析和图形展示等多种应用。
在分析数据时,描述性统计是最基础、最常用的方法之一。
本文将介绍使用Stata进行描述性统计分析的代码。
1. 导入数据
首先需要将数据导入到Stata中进行分析。
假设数据保存在名为data.dta的Stata数据文件中,则可以使用以下命令将数据导入: ```
use data.dta
```
2. 描述性统计
Stata提供了多种方式进行描述性统计分析,包括简单的统计量、频率分布表、交叉表、分组统计等。
以下是一些常用的命令和语法: - 简单统计量
可以使用summarize命令计算变量的均值、标准差、最小值、最大值等统计量。
```
summarize var1 var2 var3
```
- 频率分布表
使用tabulate命令可以生成变量的频率分布表。
```
tabulate var1
```
- 交叉表
使用tab命令可以生成多变量的交叉表。
```
tab var1 var2
```
- 分组统计
使用collapse命令可以进行数据的分组统计。
```
collapse (mean) var1 var2, by(group_var)
```
以上是Stata进行描述性统计的一些基本命令和语法,可以根据具体数据和需求进行调整和扩展。
stata输出命令全记录:描述性统计、相关性分析、回归结果一、描述性统计ssc install outreg2【安装outreg2】sum var1 var2……【描述性统计命令sum 变量var1 var2……】outreg2 using test1.doc, replace sum(log)【将结果输出到test1.doc文件中】二、相关系数表方法1:ssc install logout【安装logout】logout, save(test2) word replace: pwcorr var1 var2……, sig star(0.1)【将结果输出到test2.rtf文件中,p值小于0.1的标*】方法2:ssc install logout【安装logout】网上下载pwcorr_a.ado文件,放入stata12\ado\base\p 文件夹中logout, save(test3) word replace: pwcorr_a var1 var2……, star1(0.01)star5(0.05)star10(0.1)【将结果输出到test3.rtf文件中,p值小于0.1的标*,小于0.05标**,小于0.01标***】需要注意的是,logout 命令得到的表格一般会存在错位和空行的现象,这就需要手动做一些调整,如将第一行的表头往右移一列,p 值向右移,并将多余的行删掉,同时还要对p 值加上括号,并在表的底端注明星号的含义。
三、回归结果qui reg y x(qui表示执行命令但不汇报回归结果)est sto ols(est sto表示储存回归结果,文件名为ols)est table ols,b se(选择项“b”表示显示回归系数,“se”表示显示标准误)用一颗星表示10%的显著性,两颗星表示5%的显著性,三颗星表示 1%的显著性,可使用如下命令:est table ols,star(0.1 0.05 0.01)Stata 官方命令“estimates table”无法同时显示回归系数、标准误与表示显著性的星号。
R笔记:描述性统计分析在数据进行分析时,我们往往需要先看一下数据的基本信息,比如求和、平均数、标准差、标准误、中位数、四分位数、最小值、最大值、极差、偏度、峰度等。
在R中这不是难事,有N多的程序包函数可以实现这些功能,有时候你会觉得多得都不知道选择哪一个。
本文只介绍两个,一个是基础安装summary{base},另外一个是stat.desc{pastecs},同时会用到分组计算输出函数by()。
示例:16例(id)受试者分为A、B两组(group),每组8例,测量每位受试者的体重(weight)和身高(height)。
将stata文件Multicariate中数据载入到R数据框ma中,命令代码如下:library(foreign)ma<- read.dta("D:/Temp/STATA/Multivariate.dta")【1】summary基础安装summary()函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计。
如果不考虑分组,想知道16例受试者体重和身高的一些基本信息,可使用命令:summary(ma["weight"])summary(ma["height"])或者同时输出体重和身高的基础信息:var=c("weight","height")summary(ma[var])当然你可以直接用一条命令:summary(ma[c("weight","height")]) #等同于使用命令summary(ma[3:4])或summary(ma[-1:-2])以上只为演示,实际工作中我们想知道的是A、B两组各自的基本信息,这就需要分组计算。
函数by {base}:Apply a Function to a Data Frame Split by Factors,应用格式为by(data, INDICES, FUN, ..., simplify = TRUE),具体解释可通过命令help("by")查询,该函数可以按照INDICES将要分析的data数据分割成几个数据框,然后对每个数据框应用FUN函数的功能。