accessx600 add 25ume n u r sexy 是什么意思

R语言实战之基本统计分析(七)a year ago7。1。1
方法云集使用summary()函数来获取描述性统计量。代码7-1
通过summary()计算描述性统计量& myvars&-c("mpg","hp","wt")
& summary(mtcars[myvars])
1st Qu.:15.43
1st Qu.: 96.5
1st Qu.:2.581
Median :19.20
Median :123.0
Median :3.325
3rd Qu.:22.80
3rd Qu.:180.0
3rd Qu.:3.610
summary()函数提供了最小值和最大值、四分位数和数值型变量的均值,以及因子向量和逻辑向量的频数统计。可以使用apply() 或 sapply()函数计算所选择的任意描述性统计变量。对sapply()函数,使用格式为:sapply(x,FUN,options)
其中,x是数据框(或矩阵),FUN为一个任意函数。若指定了options,将被传递给FUN,可以插入的典型函数有,mean()、sd()、var()、min()、max()、median()、length()、range()、quantile()函数fivenum()可以返回图基五数总括,最小值,下四分位数,中位数,上四分位数,最大值。代码7-2
通过sapply()计算描述性统计变量(包括偏度和峰度)& mystats&-function(x,na.omit=FALSE){
if(na.omit)
x&-x[!is.na(x)]
m&-mean(x)
n&-length(x)
skew&-sum((x-m)^3/s^3)/n
kurt&-sum((x-m)^4/s^4)/n-3
return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
& myvars&-c("mpg","hp","wt")
& sapply(mtcars[myvars],mystats)
kurtosis -0.372766
如果不只希望忽略缺失值,那么就应当使用sapply(mtcars[myvars],mystats,na.omit=TRUE)
7.1.2更多方法关于计算描述性统计方法,其中还包括Hmisc、pastecs、psychHmisc包中的describe()函数可以返回变量和观测值的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值。代码7-3
通过Hmisc包中的describe()函数计算描述性统计变量& library(Hmisc)
& myvars&-c("mpg","hp","wt")
& describe(mtcars[myvars])
mtcars[myvars]
Observations
-----------------------------------------------------------------------------mpg
missing distinct
lowest : 10.4 13.3 14.3 14.7 15.0, highest: 26.0 27.3 30.4 32.4 33.9
-----------------------------------------------------------------------------hp
missing distinct
91, highest: 215 230 245 264 335
-----------------------------------------------------------------------------wt
missing distinct
lowest : 1.513 1.615 1.835 1.935 2.140, highest: 3.845 4.070 5.250 5.345 5.424
-----------------------------------------------------------------------------
pastecs包中有一个名为stat.desc()的函数,它可以计算种类繁多的描述性统计变量:stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)其中的x是一个数据框或时间序列。若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和。若desc=TRUE(同样也是默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。若norm=FALSE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及他们的统计显著程度)和Shapiro-Wilk正态检验结果。这里使用p值来计算平均数的置信区间(默认置信度为0.95)代码7-4
通过pastecs包中的stat.desc()函数计算描述性统计量& library(pastecs)
& options(digits = 3)
& myvars&-c("mpg","hp","wt")
& stat.desc(mtcars[myvars])
642.90 .952
CI.mean.0.95
我们还可以通过psych包中的describe()函数,来计算非缺失值的数量、平均数、标准值、中位数、截尾数、绝对中位差、最小值、最大值、值域、偏度和平均值的标准误。代码7-5
& library(psych)
& library(psych)
& myvars&-c("mpg","hp","wt")
& describe(mtcars[myvars])
sd median trimmed
range skew kurtosis
5.41 10.40
23.50 0.61
2 32 146.69 68.56 123.00
141.19 77.10 52.00 335.00 283.00 0.73
-0.14 12.12
psych包和Himsc包均有describe()函数,R如何知道使用哪个?那就是最后载入的程序优先。7.1.3
分组计算描述性统计量在比较多组的个体或观测时,关注焦点在各组的描述性统计信息。我们使用aggregate()函数来分组描述获取描述性统计量。代码7-6
使用aggregate()分组获得描述性统计量& myvars&-c("mpg","hp","wt")
& aggregate(mtcars[myvars],by=list(am=mtcars$am),mean)
0 17.1 160 3.77
1 24.4 127 2.41
& aggregate(mtcars[myvars],by=list(am=mtcars$am),sd)
0 3.83 53.9 0.777
1 6.17 84.1 0.617
aggregate()允许在每次调用中使用平均数、标准差这样的单返回值函数。它无法一次返回若干个统计量,要完成这项任务,可以使用by()函数,格式:by(data,INDICES,FUN)其中,data是一个数据框或矩阵,NDICES是一个因子或因子组成的列表,定义了分组,FU那是任意函数。代码7-7
使用by()分组计算描述性统计量& dstats&-function(x)sapply(x,mystats)
& myvars&-c("mpg","hp","wt")
& by(mtcars[myvars],mtcars$am,dstats)
mtcars$am: 0
17.147 160.
kurtosis -0.803
-----------------------------------------------------------------------------
mtcars$am: 1
13. 13.000
kurtosis -1.4554
0.563 -1.174
dstats()调用了mystats()函数,将其应用于数据框的每一栏中,再通过by()函数则可以得到am中的每一水平的概括统计量。7.1.4
分组计算的扩展doBy包和psych包提供了描述性统计量的函数。doBy包中的函数summaryBy()使用格式:summaryBy(formula,data=dataframe,FUN=function)
formula接受以下格式:var1+var2+...varN ~ groupvar1+groupvar2+...+groupvarN
在~左侧的变量是需要分析的数值型变量,而右侧的变量是类别型的分组变量。function可为任何内建或自编的R函数。代码7-8
使用doBy包中的summaryBy()分组计算概述统计量& library(doBy)
& summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)
am mpg.n mpg.mean mpg.stdev mpg.skew mpg.kurtosis hp.n hp.mean hp.stdev hp.skew hp.kurtosis wt.n
53.9 -0.0142
wt.mean wt.stdev wt.skew wt.kurtosis
psych包中的describeBy()函数可计算和describe()相同的描述性统计量,只按照一个或多个分组的变量分层。代码7-9
使用psych()包中的describeBy()分组计算概述统计量& library(doBy)
& summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)
am mpg.n mpg.mean mpg.stdev mpg.skew mpg.kurtosis hp.n hp.mean hp.stdev hp.skew hp.kurtosis wt.n
53.9 -0.0142
wt.mean wt.stdev wt.skew wt.kurtosis
& library(psych)
& myvars&-c("mpg","hp","wt")
& describeBy(mtcars[myvars],list(am=mtcars$am))
sd median trimmed
skew kurtosis
3.11 10.40
2 19 160.26 53.91 175.00
161.06 77.10 62.00 245.00 183.00 -0.01
-1.21 12.37
sd median trimmed
range skew kurtosis
6.67 15.00
18.90 0.05
2 13 126.85 84.06 109.00
114.73 63.75 52.00 335.00 283.00 1.36
0.56 23.31
attr(,"call")
by.data.frame(data = x, INDICES = group, FUN = describe, type = type)
分析:describeBy()函数不允许指定任意函数,所以它的普适性较低。7.2 频数表和列联表下面的数据来源于vcd包中的Arthritis数据集。数据展示了一项关节炎的新疗法的临床效果。前几个观测如下:& library(vcd)
载入需要的程辑包:grid
& head(Arthritis)
ID Treatment
Sex Age Improved
Treated Male
Treated Male
Treated Male
Treated Male
Treated Male
Treated Male
7.2.1 生成频数表R中提供了创建频数表和列联表的若干方法。重要函数如下:table(var1,var2,... varN)
使用N个类别型变量(因子)创建一个N维列联表xtabs(formula,data)
根据一个公式和一个矩阵或数据框创建一个N维向量prop.table(table,margins)
依margins定义边际列表将表中的条目表示为分数形式margin.table(table,margins)
依margins定义边际列表将表中的条目的和addmargins(table,margins)
将概述边为margins(默认是求和结果)放入表中ftable(table)
创建了一个紧凑的“平铺”式列联表1. 一维列联表& mytable&-with(Arthritis,table(Improved))
Some Marked
可以使用prop.table()将这些频数转化为比例值& prop.table(mytable)
Some Marked
使用prop.table()*100 转化为百分比& prop.table(mytable)*100
Some Marked
2.二维列联表对于二维列联表,table()函数的使用格式为:mytable&-table(A,B)
其中,A是变量,B是列变量,xtabs()函数还可以使用公式风格的输入创建列联表,格式mytable&-xtabs(~ A+B,data=mydata)
其中,mydata是一个矩阵或数据框。对于Arthritis数据,有:& mytable&-xtabs(~ Treatment+Improved, data=Arthritis)
Treatment None Some Marked
可以使用margin.table()和prop.table()函数分别生成边际频数和比例。行和行的比例可以这样计算:& margin.table(mytable,1)
Placebo Treated
& prop.table(mytable,1)
Placebo 0...1627907
Treated 0...5121951
下标1指代table()语句中的第一个变量接受安慰剂的个体中有显著改善有16%接受治疗的个体中病情有显著改善的有51%列和列比例可以这样计算:& margin.table(mytable,2)
Some Marked
& prop.table(mytable,2)
Placebo 0...2500000
Treated 0...7500000
下标2指代table()语句中的第二个变量各单元格所占比例可按如下语句:& prop.table(mytable)
Placebo 0...
Treated 0...
可以使用addmargin()函数为这些表格添加边际和。& addmargins(mytable)
Treatment None Some Marked Sum
& addmargins(prop.table(mytable))
Placebo 0....
Treated 0....
在使用addmargins()时,默认行为是为表中所有的变量创建边际和。仅添加了各行的和,类似地:& addmargins(prop.table(mytable,1),2)
Placebo 0....0000000
Treated 0....0000000
添加了各列的和。& addmargins(prop.table(mytable,2),1)
Placebo 0...2500000
Treated 0...7500000
1...0000000
使用gmodels包中的CrossTable()函数是创建二维联表的一种方法。代码7-10
使用CrossTable生成二维列联表& library(gmodels)
& CrossTable(Arthritis$Treatment,Arthritis$Improved)
Cell Contents
|-------------------------|
| Chi-square contribution |
N / Row Total |
N / Col Total |
N / Table Total |
|-------------------------|
Total Observations in Table:
| Arthritis$Improved
Arthritis$Treatment |
Marked | Row Total |
--------------------|-----------|-----------|-----------|-----------|
--------------------|-----------|-----------|-----------|-----------|
--------------------|-----------|-----------|-----------|-----------|
Column Total |
--------------------|-----------|-----------|-----------|-----------|
3.多维列联表table()和 xtabs()都可以基于三个或更多的类别型变量生成多维列联表margins.table()
prop.table()
addmargins()
函数可以推广到高于二维的情况代码7-11
三维列联表#生成了三维分组各单元格频数& mytable&-xtabs(~Treatment+Sex+Improved,data=Arthritis)
, , Improved = None
Treatment Female Male
, , Improved = Some
Treatment Female Male
, , Improved = Marked
Treatment Female Male
& ftable(mytable)
Improved None Some Marked
Treatment Sex
& margin.table(mytable,1)
Placebo Treated
& margin.table(mytable,2)
& margin.table(mytable,3)
Some Marked
#治疗情况(Treatment)*改善情况(Improved)的边际频数,由不同性别的单元格加和而成。& margin.table(mytable,c(1,3))
Treatment None Some Marked
#治疗情况(Treatment)*性别(Sex)的各类改善情况比例& ftable(prop.table(mytable,c(1,2)))
Some Marked
Treatment Sex
0.8 0.1875
0.0 0.0909
0.2 0.5926
0.9 0.3571
& ftable(addmargins(prop.table(mytable,c(1,2)),3))
Some Marked
Treatment Sex
列联表可以告诉你组成表格的各种变量组合的频数或比例。7.2.2
独立性检验1. 卡方独立性检验可以使用chisq.test() 函数对二维表的行变量和列变量进行卡方独立性检验。代码7-12
卡方独立性检验& library(vcd)
& mytable&-xtabs(~Treatment+Improved,data = Arthritis)
& chisq.test(mytable)
Pearson's Chi-squared test
X-squared = 13.055, df = 2, p-value = 0.001463
& mytable&-xtabs(~Improved+Sex,data = Arthritis)
& chisq.test(mytable)
Pearson's Chi-squared test
X-squared = 4.8407, df = 2, p-value = 0.08889
Warning message:
In chisq.test(mytable) : Chi-squared近似算法有可能不准
可以用fisher.test()函数进行Fisher精确检验。Fisher精确检验的原假设是:边界固定的列联表中行与列是相互独立的。其调用格式为fisher.test(mytable),其中mytable是一个列联表。例如:mytable&-xtabs(~Treatment+Improved,data=Arthritis)
& fisher.test(mytable)
Fisher's Exact Test for Count Data
p-value = 0.001393
alternative hypothesis: two.sided
3。Cochran-Mantel-Haenszel 检验mantelhaen.test()函数可用来进行Cochran-Mantel-Haenszel 检验。检验假设:两个名义变量在第三个变量的每一层中都是条件独立的。下列代码可以检验治疗情况和改善情况在性别的每一水平下是否独立。& mytable&-xtabs(~Treatment+Improved+Sex,data = Arthritis)
& mantelhaen.test(mytable)
Cochran-Mantel-Haenszel test
Cochran-Mantel-Haenszel M^2 = 14.632, df = 2, p-value = 0.0006647
结果表明,患者接受的治疗与得到的改善在性别的每一水平下并不独立。7.2.3
相关性的度量vcd包中的assosctats()函数可以用来计算二维列联表的phi系数,列联系数和Cramer's V系数。代码7-13
二维列联表的相关性度量& library(vcd)
& mytable&-xtabs(~Treatment+Improved,data=Arthritis)
& assocstats(mytable)
Likelihood Ratio 13.530
2 0.0011536
2 0.0014626
Phi-Coefficient
Contingency Coeff.: 0.367
Cramer's V
结果的可视化使用条形图来进行一维频数的可视化7.3相关系数相关系数可以用来描述定量变量之间的关系。相关系数符号(正负号)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关是为0,完全相关时为1)7.3.1相关的类型1.Pearson、Spearman、Kendall相关Pearson积差相关系数衡量了两个定量变量之间的线性相关程度。Spearman等级相关系数则衡量分级定序变量之间的相关程度。Kendall相关系数是一种非参数的等级相关度量。cor()函数可以计算这三种相关系数,而cov()函数可以用来计算协方差。两个函数的参数有很多,其中与相关系数的计算有关的参数可以简化为:cor(x,use= ,method= )其中,x是矩阵或数据框use指定缺失数据的处理方式。method指定相关系数的类型。可选类型为Pearson、Spearman、Kendall相关默认参数为,use="everything" , method="pearson"代码7-14
协方差和相关系数#计算方差和协方差& states&-state.x77[,1:6]
& options(digits=3)
& cov(states)
Population Income Illiteracy Life Exp
Population
292.868 -407.842 51.51
280.663 -521.89
Illiteracy
#计算Pearson积差相关系数
& cor(states)
Population Income Illiteracy Life Exp Murder HS Grad
Population
-0. -0.0985
Illiteracy
-0. -0.6572
-0. -0.4880
#计算Spearman等级相关系数
& cor(states,method = "spearman")
Population Income Illiteracy Life Exp Murder HS Grad
Population
0.324 -0.217
Illiteracy
0.313 -0.315
1.000 -0.780
0.346 -0.217
0.524 -0.437
上述代码是在默认的情况的得到的结果是一个方阵(即所有变量之间两两相关)。我们看到收入和高中毕业率之间存在很强的正相关;而文盲和预期寿命之间存在很强的负相关。我们计算非方形的相关矩阵。例如:& x&-states[,c("Population","Income","Illiteracy","HS Grad")]
& y&-states[,c("Life Exp","Murder")]
& cor(x,y)
Life Exp Murder
Population
Illiteracy
2. 偏相关偏相关是指在控制一个或多个定量或者变量的时,另外两个定量变量之间的相互关系。你可以使用ggm包中的por()函数计算偏相关系数。格式:pcor(u,s)其中,u为数值向量。s为变量的协方差阵。& library(ggm)
& colnames(states)
[1] "Population" "Income"
"Illiteracy" "Life Exp"
& pcor(c(1,5,2,3,6),cov(states))
上面例子中,控制了收入,文盲率和高中毕业率的影响时,人口和谋杀率之间的相关系数为0.3467.3.2
相关性的显著性检验在计算好相关系数后,对它进行统计性显著性检验。常用的原假设为变量之间不相关。可以使用cor.test() 函数对单个的Pearson、Spearman、Kendall相关系数进行检验。格式:cor.tese(x,y,alternative = ,method= )其中,x和y为要检验相关性的变量(取值为“two.side”、“less”、“greater”);alternative则用来指定进行双侧检验或单侧检验;method指定要计算的相关类型(Pearson、Spearman、Kendall)默认情况是,假设alternative="two.side"(总体相关系数不等于0)代码7-15
检验某种相关系数的显著性& cor.test(states[,3],states[,5])
Pearson's product-moment correlation
states[, 3] and states[, 5]
t = 7, df = 50, p-value = 1e-08
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.528 0.821
sample estimates:
上面的代码
检验了预期寿命和谋杀率的Peasson相关系数为0的原假设。假设总体的相关度为0,则预计在1000万次中只会有少于一次的机会见到0.703这样大的样本相关度。corr.test() 函数可以为Pearson、Spearman、Kendall 相关呢计算相关矩阵和显著性水平。代码7-16
通过corr.test计算相关矩阵并进行显著性检验& library(psych)
& corr.test(x=states,use="complete")
Call:corr.test(x = states, use = "complete")
Correlation matrix
Population Income Illiteracy Life Exp Murder HS Grad
Population
Illiteracy
Sample Size
Probability values (Entries above the diagonal are adjusted for multiple tests.)
Population Income Illiteracy Life Exp Murder HS Grad
Population
Illiteracy
To see confidence intervals of the correlations, print with the short=FALSE option
参数use=的取值可为“pairwise”(表示对缺失值执行行成对删除)参数use=的取值可为“comple”(表示对缺失值执行删除)可以看出人口数量和高中毕业率的相关系数为(-0.1),并不显著的不为0其他显著性检验psych包中的pcor.test()函数可以用来检验在控制一个或多个额外变量之间的条件独立性。格式:pcor.test(r,q,n)
其中,r是由pcor()函数计算得到的偏相关系数,q为控制的变量数(以数值表示位置),n为样本大小。psych包中的r.test()函数提供了多种实用的显著性检验方法。此函数可用来检验:某种相关系数的显著性;两个独立相关系数的差异是否显著两个基于一个共享变量得到的非独立相关系数的差异是否显著两个基于完全不同的变量得到的非独立相关系数的差异是否显著7.3.3 相关系数的可视化以相关系数表示的二元关系可以通过散点图和散点图矩阵进行可视化。7.4
t检验7.4.1 独立样本的t检验一个针对两组的独立样本t检验可以用于检验的两个总体的均值相等的假设。这里假设的两组数据是独立的,并且是从正态总体中抽得。格式:t.test(y ~ x ,data)其中,y是一个数值型变量,x是一个二分变量调用格式:t.test(y1,y2)其中,y1和y2是数值型向量(即各组的结构变量)data的取值为一个包含了这些变量的矩阵或数据框下列代码,使用了一个假设方差不等的双侧检验。比较了南方和非南方各州的监禁概率:& library(MASS)
& t.test(Prob~So,data = UScrime)
Welch Two Sample t-test
Prob by So
t = -4, df = 20, p-value = 7e-04
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
sample estimates:
mean in group 0 mean in group 1
非独立样本的t检验在两组的观测之间相关时,获得一个非独立组织设计。前—后测试设计或重复测量设计同样也会产生非独立的组。非独立样本的t检验假定组间的差异呈正态分布。格式:t.test(y1,y2,paired=TRUE)其中,y1和y2为两个非独立组的数值向量。结果:& library(MASS)
& sapply(UScrime[c("U1","U2")],function(x)(c(mean=mean(x),sd=sd(x))))
mean 95.5 33.98
& with(UScrime,t.test(U1,U2,paired = TRUE))
Paired t-test
t = 30, df = 50, p-value &2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
sample estimates:
mean of the differences
差异的均值(61.5)足够大,保证拒绝年长和年轻男性的平均失业率相同的假设。7.4.3
多于两组的情况使用方差分析(ANOVA)7.5
组间差异的非参数检验如果数据无法满足t检验和ANOVA参数假设,可以使用非参数的方法。7.5.1 两组的比较若两组数据独立,使用Wilcoxon秩和检验来评估观测是否要从相同的概率分布中抽得。格式:wilcox.test(y~x,data)其中,y是数值型变量,x是一个二分变量。格式:wilcox.test(y1,y2)其中,y1,y2为各组的结果变量。使用Mann-Whitney U检验回答上一节中关于监禁的问题:& with(UScrime,by(Prob,So,median))
[1] 0.0382
----------------------------------------------------------------------------
[1] 0.0556
& wilcox.test(Prob~So,data = UScrime)
Wilcoxon rank sum test
Prob by So
W = 80, p-value = 8e-05
alternative hypothesis: true location shift is not equal to 0
Wilcox符号秩检验是非独立样本t检验的一种非参数替代方法。适用于两组成对数据和无法保证正态的性假设的情境。& sapply(UScrime[c("U1","U2")],median)
& with(UScrime,wilcox.test(U1,U2,paired = TRUE))
Wilcoxon signed rank test with continuity correction
V = 1000, p-value = 2e-09
alternative hypothesis: true location shift is not equal to 0
含参的t检验和与其他作用相同的非参数检验得到了相同的结论。当t检验的假设合理时,参数检验的功效更强。7.5.2
多于两组的比较若无法满足ANOVA设计的假设,可以使用非参数方法来评估组间的差异。如果各组独立,则Kruskal-Wallis检验将是一种实用的方法格式:
kruskal-wallis.test(y~A,data)其中,y是一个数值型结果变量,A是一个拥有两个或多个的分组变量如果各组不独立,那么Friedman检验会更合适:friedman.test(y~A|B,data)其中,y是数值型结果变量,A是一个分组变量,B是一个用以认定匹配测试的区组变量。& states&-data.frame(state.region,state.x77)
& kruskal.test(Illiteracy~state.region,data = states)
Kruskal-Wallis rank sum test
Illiteracy by state.region
Kruskal-Wallis chi-squared = 20, df = 3, p-value = 5e-05
显著性检验的结果意味着美国的四个地区的文盲率各不相同(p&0.001)声明:以上笔记来自《R语言实战》 【美】Robert I.Kabacoff 著
人民邮电出版社赞赏还没有人赞赏,快来当第一个赞赏的人吧!2收藏分享举报文章被以下专栏收录从零开始学习数据分析{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&isPending&:false,&contributes&:[{&sourceColumn&:{&lastUpdated&:,&description&:&写专栏就是为了记录我的成长过程,从零开始学习数据分析。&,&permission&:&COLUMN_PUBLIC&,&memberId&:,&contributePermission&:&COLUMN_PUBLIC&,&translatedCommentPermission&:&all&,&canManage&:true,&intro&:&从零开始学习数据分析&,&urlToken&:&lingan&,&id&:26119,&imagePath&:&v2-27ccf09ab3f62f7f63ff7.jpg&,&slug&:&lingan&,&applyReason&:&0&,&name&:&DA学习历程&,&title&:&DA学习历程&,&url&:&https:\u002F\u002Fzhuanlan.zhihu.com\u002Flingan&,&commentPermission&:&COLUMN_ALL_CAN_COMMENT&,&canPost&:true,&created&:,&state&:&COLUMN_NORMAL&,&followers&:1199,&avatar&:{&id&:&v2-27ccf09ab3f62f7f63ff7&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&activateAuthorRequested&:false,&following&:false,&imageUrl&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-27ccf09ab3f62f7f63ff7_l.jpg&,&articlesCount&:25},&state&:&accepted&,&targetPost&:{&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-8098ab7babb494deb7a20f65a08af088_r.jpg&,&lastUpdated&:,&imagePath&:&v2-8098ab7babb494deb7a20f65a08af088.jpg&,&permission&:&ARTICLE_PUBLIC&,&topics&:[],&summary&:&第7章 基本统计分析 基本内容 描述性统计分析频数表和列联表相关系数和协方差t检验非参数统计 7。1 描述性统计分析 我们将关注 连续变量的中心趋势、变化性、和分布形状的方法。 我们关注的重点是每加仑油的行驶英里数(mpg),马力(hp),车重(wt) & myvars&-…&,&copyPermission&:&ARTICLE_COPYABLE&,&translatedCommentPermission&:&all&,&likes&:0,&origAuthorId&:0,&publishedTime&:&T00:22:55+08:00&,&sourceUrl&:&&,&urlToken&:,&id&:2382190,&withContent&:false,&slug&:,&bigTitleImage&:false,&title&:&R语言实战之基本统计分析(七)&,&url&:&\u002Fp\u002F&,&commentPermission&:&ARTICLE_ALL_CAN_COMMENT&,&snapshotUrl&:&&,&created&:,&comments&:0,&columnId&:26119,&content&:&&,&parentId&:0,&state&:&ARTICLE_PUBLISHED&,&imageUrl&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-8098ab7babb494deb7a20f65a08af088_r.jpg&,&author&:{&bio&:&终身学习者@数据分析&数据挖掘&,&isFollowing&:false,&hash&:&9c3c75efb2d406cc781d80&,&uid&:459000,&isOrg&:false,&slug&:&yuan-fang-20-16&,&isFollowed&:false,&description&:&制造业转行搞数据分析
一个终身学习者&,&name&:&凌岸&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fyuan-fang-20-16&,&avatar&:{&id&:&v2-b039ebaadedae2&,&template&:&https:\u002F\u002Fpic2.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&memberId&:,&excerptTitle&:&&,&voteType&:&ARTICLE_VOTE_CLEAR&},&id&:563294}],&title&:&R语言实战之基本统计分析(七)&,&author&:&yuan-fang-20-16&,&content&:&第7章 基本统计分析\u003Cbr\u003E\u003Cbr\u003E基本内容\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E描述性统计分析\u003C\u002Fli\u003E\u003Cli\u003E频数表和列联表\u003C\u002Fli\u003E\u003Cli\u003E相关系数和协方差\u003C\u002Fli\u003E\u003Cli\u003Et检验\u003C\u002Fli\u003E\u003Cli\u003E非参数统计\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E7。1 描述性统计分析\u003Cbr\u003E我们将关注
连续变量的中心趋势、变化性、和分布形状的方法。\u003Cbr\u003E我们关注的重点是每加仑油的行驶英里数(mpg),马力(hp),车重(wt)\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Ehead\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E])\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
wt\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003EMazda RX4
21.0 110 2.620\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003EMazda RX4 Wag
21.0 110 2.875\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003EDatsun 710
93 2.320\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003EHornet 4 Drive
21.4 110 3.215\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003EHornet Sportabout 18.7 175 3.440\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003EValiant
18.1 105 3.460\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E7。1。1
方法云集\u003Cbr\u003E使用summary()函数来获取描述性统计量。\u003Cbr\u003E代码7-1
通过summary()计算描述性统计量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Esummary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E])\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E Min.
\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E 1st Qu.:15.43
1st Qu.: 96.5
1st Qu.:2.581
\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E Median :19.20
Median :123.0
Median :3.325
\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E Mean
\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E 3rd Qu.:22.80
3rd Qu.:180.0
3rd Qu.:3.610
\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E Max.
:5.424 \u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003Esummary()函数提供了最小值和最大值、四分位数和数值型变量的均值,以及因子向量和逻辑向量的频数统计。\u003Cbr\u003E可以使用apply() 或 sapply()函数计算所选择的任意描述性统计变量。\u003Cbr\u003E对sapply()函数,使用格式为:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&go\&\u003Esapply(x,FUN,options)\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E其中,x是数据框(或矩阵),FUN为一个任意函数。若指定了options,将被传递给FUN,可以插入的典型函数有,mean()、sd()、var()、min()、max()、median()、length()、range()、quantile()\u003Cbr\u003E函数fivenum()可以返回图基五数总括,最小值,下四分位数,中位数,上四分位数,最大值。\u003Cbr\u003E\u003Cbr\u003E代码7-2
通过sapply()计算描述性统计变量(包括偏度和峰度)\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emystats\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kr\&\u003Efunction\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Ex\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003Ena.omit\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&kc\&\u003EFALSE\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E){\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
\u003Cspan class=\&kr\&\u003Eif\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Ena.omit\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
x\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003Ex\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E!\u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Eis.na\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Ex\u003Cspan class=\&p\&\u003E)]\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
m\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Emean\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Ex\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
n\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Elength\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Ex\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
s\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003Esd\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Ex\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
skew\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Esum\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E((\u003C\u002Fspan\u003Ex\u003Cspan class=\&o\&\u003E-\u003C\u002Fspan\u003Em\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E^\u003C\u002Fspan\u003E\u003Cspan class=\&m\&\u003E3\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E\u002F\u003C\u002Fspan\u003Es\u003Cspan class=\&o\&\u003E^\u003C\u002Fspan\u003E\u003Cspan class=\&m\&\u003E3\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E\u002F\u003C\u002Fspan\u003En\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
kurt\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Esum\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E((\u003C\u002Fspan\u003Ex\u003Cspan class=\&o\&\u003E-\u003C\u002Fspan\u003Em\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E^\u003C\u002Fspan\u003E\u003Cspan class=\&m\&\u003E4\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E\u002F\u003C\u002Fspan\u003Es\u003Cspan class=\&o\&\u003E^\u003C\u002Fspan\u003E\u003Cspan class=\&m\&\u003E4\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E\u002F\u003C\u002Fspan\u003En\u003Cspan class=\&m\&\u003E-3\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
\u003Cspan class=\&kr\&\u003Ereturn\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003En\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003En\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003Emean\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Em\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003Estdev\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Es\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003Eskew\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Eskew\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003Ekurtosis\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Ekurt\u003Cspan class=\&p\&\u003E))\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E+ \u003C\u002Fspan\u003E
\u003Cspan class=\&p\&\u003E}\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Esapply\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003Emystats\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
wt\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003En
32...3C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Emean
20...3C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Estdev
6...3C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Eskew
0..3C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ekurtosis -0.372766
-0..3C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E如果不只希望忽略缺失值,那么就应当使用\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&go\&\u003Esapply(mtcars[myvars],mystats,na.omit=TRUE)\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E7.1.2更多方法\u003Cbr\u003E关于计算描述性统计方法,其中还包括Hmisc、pastecs、psych\u003Cbr\u003EHmisc包中的describe()函数可以返回变量和观测值的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值。\u003Cbr\u003E代码7-3
通过Hmisc包中的describe()函数计算描述性统计变量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003EHmisc\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Edescribe\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E])\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Emtcars[myvars] \u003C\u002Fspan\u003E\n\n\u003Cspan class=\&go\&\u003E 3
Observations\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E-----------------------------------------------------------------------------mpg \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
missing distinct
.50 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
19.20 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
.95 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
31.30 \u003C\u002Fspan\u003E\n\n\u003Cspan class=\&go\&\u003Elowest : 10.4 13.3 14.3 14.7 15.0, highest: 26.0 27.3 30.4 32.4 33.9\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E-----------------------------------------------------------------------------hp \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
missing distinct
.50 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
123.00 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
.95 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
253.55 \u003C\u002Fspan\u003E\n\n\u003Cspan class=\&go\&\u003Elowest :
91, highest: 215 230 245 264 335\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E-----------------------------------------------------------------------------wt \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
missing distinct
.50 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
3.325 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
.95 \u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
5.293 \u003C\u002Fspan\u003E\n\n\u003Cspan class=\&go\&\u003Elowest : 1.513 1.615 1.835 1.935 2.140, highest: 3.845 4.070 5.250 5.345 5.424\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E-----------------------------------------------------------------------------\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003Epastecs包中有一个名为stat.desc()的函数,它可以计算种类繁多的描述性统计变量:\u003Cbr\u003Estat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)\u003Cbr\u003E\u003Cbr\u003E其中的x是一个数据框或时间序列。\u003Cbr\u003E若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和。\u003Cbr\u003E若desc=TRUE(同样也是默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。\u003Cbr\u003E若norm=FALSE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及他们的统计显著程度)和Shapiro-Wilk正态检验结果。这里使用p值来计算平均数的置信区间(默认置信度为0.95)\u003Cbr\u003E\u003Cbr\u003E代码7-4
通过pastecs包中的stat.desc()函数计算描述性统计量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Epastecs\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Eoptions\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Edigits \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E \u003Cspan class=\&m\&\u003E3\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Estat.desc\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E])\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
wt\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Enbr.val
32.000\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Enbr.null
0.000\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Enbr.na
0.000\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Emin
1.513\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Emax
5.424\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Erange
3.911\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Esum
642.90 .952\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Emedian
3.325\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Emean
3.217\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003ESE.mean
0.173\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003ECI.mean.0.95
0.353\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Evar
0.957\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Estd.dev
0.978\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ecoef.var
0.304\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E我们还可以通过psych包中的describe()函数,来计算非缺失值的数量、平均数、标准值、中位数、截尾数、绝对中位差、最小值、最大值、值域、偏度和平均值的标准误。\u003Cbr\u003E\u003Cbr\u003E代码7-5
\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Epsych\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Epsych\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Edescribe\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E])\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
sd median trimmed
range skew kurtosis
se\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Empg
5.41 10.40
23.50 0.61
1.07\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ehp
2 32 146.69 68.56 123.00
141.19 77.10 52.00 335.00 283.00 0.73
-0.14 12.12\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003Epsych包和Himsc包均有describe()函数,R如何知道使用哪个?那就是最后载入的程序优先。\u003Cbr\u003E\u003Cbr\u003E7.1.3
分组计算描述性统计量\u003Cbr\u003E在比较多组的个体或观测时,关注焦点在各组的描述性统计信息。我们使用aggregate()函数来分组描述获取描述性统计量。\u003Cbr\u003E代码7-6
使用aggregate()分组获得描述性统计量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Eaggregate\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003Eby\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Elist\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Eam\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&o\&\u003E$\u003C\u002Fspan\u003Eam\u003Cspan class=\&p\&\u003E),\u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Emean\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
wt\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E1
0 17.1 160 3.77\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E2
1 24.4 127 2.41\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Eaggregate\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003Eby\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Elist\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Eam\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&o\&\u003E$\u003C\u002Fspan\u003Eam\u003Cspan class=\&p\&\u003E),\u003C\u002Fspan\u003Esd\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
wt\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E1
0 3.83 53.9 0.777\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E2
1 6.17 84.1 0.617\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ewt
0.17\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003Eaggregate()允许在每次调用中使用平均数、标准差这样的单返回值函数。\u003Cbr\u003E它无法一次返回若干个统计量,要完成这项任务,可以使用by()函数,格式:\u003Cbr\u003Eby(data,INDICES,FUN)\u003Cbr\u003E其中,data是一个数据框或矩阵,NDICES是一个因子或因子组成的列表,定义了分组,FU那是任意函数。\u003Cbr\u003E\u003Cbr\u003E代码7-7
使用by()分组计算描述性统计量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& dstats&-function(x)sapply(x,mystats)\n& myvars&-c(\&mpg\&,\&hp\&,\&wt\&)\n& by(mtcars[myvars],mtcars$am,dstats)\nmtcars$am: 0\n
17.147 160.\nstdev
-0.\nkurtosis -0.803
-1.\n----------------------------------------------------------------------------- \nmtcars$am: 1\n
13. 13.000\nmean
2.411\nstdev
0.617\nskew
0.210\nkurtosis -1.4554
0.563 -1.174\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003Edstats()调用了mystats()函数,将其应用于数据框的每一栏中,再通过by()函数则可以得到am中的每一水平的概括统计量。\u003Cbr\u003E\u003Cbr\u003E7.1.4
分组计算的扩展\u003Cbr\u003EdoBy包和psych包提供了描述性统计量的函数。doBy包中的函数summaryBy()使用格式:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003EsummaryBy(formula,data=dataframe,FUN=function)\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003Eformula接受以下格式:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003Evar1+var2+...varN ~ groupvar1+groupvar2+...+groupvarN\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E在~左侧的变量是需要分析的数值型变量,而右侧的变量是类别型的分组变量。function可为任何内建或自编的R函数。\u003Cbr\u003E\u003Cbr\u003E代码7-8
使用doBy包中的summaryBy()分组计算概述统计量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003EdoBy\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003EsummaryBy\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Empg\u003Cspan class=\&o\&\u003E+\u003C\u002Fspan\u003Ehp\u003Cspan class=\&o\&\u003E+\u003C\u002Fspan\u003Ewt\u003Cspan class=\&o\&\u003E~\u003C\u002Fspan\u003Eam\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003Edata\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003EFUN\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Emystats\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
am mpg.n mpg.mean mpg.stdev mpg.skew mpg.kurtosis hp.n hp.mean hp.stdev hp.skew hp.kurtosis wt.n\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E1
53.9 -0.0142
19\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E2
13\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
wt.mean wt.stdev wt.skew wt.kurtosis\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E1
0.142\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E2
-1.174\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003Epsych包中的describeBy()函数可计算和describe()相同的描述性统计量,只按照一个或多个分组的变量分层。\u003Cbr\u003E\u003Cbr\u003E代码7-9
使用psych()包中的describeBy()分组计算概述统计量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003EdoBy\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003EsummaryBy\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Empg\u003Cspan class=\&o\&\u003E+\u003C\u002Fspan\u003Ehp\u003Cspan class=\&o\&\u003E+\u003C\u002Fspan\u003Ewt\u003Cspan class=\&o\&\u003E~\u003C\u002Fspan\u003Eam\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003Edata\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003EFUN\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Emystats\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
am mpg.n mpg.mean mpg.stdev mpg.skew mpg.kurtosis hp.n hp.mean hp.stdev hp.skew hp.kurtosis wt.n\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E1
53.9 -0.0142
19\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E2
13\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
wt.mean wt.stdev wt.skew wt.kurtosis\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E1
0.142\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E2
-1.174\u003C\u002Fspan\u003E\n\n\u003Cspan class=\&go\&\u003E7-9\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Epsych\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003Emyvars\u003Cspan class=\&o\&\u003E&-\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Ec\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&mpg\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&hp\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s\&\u003E\&wt\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003EdescribeBy\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003Emyvars\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&kt\&\u003Elist\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Eam\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003Emtcars\u003Cspan class=\&o\&\u003E$\u003C\u002Fspan\u003Eam\u003Cspan class=\&p\&\u003E))\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E$`0`\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
sd median trimmed
skew kurtosis
se\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Empg
3.11 10.40
0.88\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ehp
2 19 160.26 53.91 175.00
161.06 77.10 62.00 245.00 183.00 -0.01
-1.21 12.37\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ewt
0.18\u003C\u002Fspan\u003E\n\n\u003Cspan class=\&go\&\u003E$`1`\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
sd median trimmed
range skew kurtosis
se\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Empg
6.67 15.00
18.90 0.05
1.71\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ehp
2 13 126.85 84.06 109.00
114.73 63.75 52.00 335.00 283.00 1.36
0.56 23.31\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Ewt
0.17\u003C\u002Fspan\u003E\n\n\u003Cspan class=\&go\&\u003Eattr(,\&call\&)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003Eby.data.frame(data = x, INDICES = group, FUN = describe, type = type)\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E分析:describeBy()函数不允许指定任意函数,所以它的普适性较低。\u003Cbr\u003E\u003Cbr\u003E7.2 频数表和列联表\u003Cbr\u003E下面的数据来源于vcd包中的Arthritis数据集。数据展示了一项关节炎的新疗法的临床效果。\u003Cbr\u003E前几个观测如下:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-rconsole\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kn\&\u003Elibrary\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003Evcd\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E载入需要的程辑包:grid\u003C\u002Fspan\u003E\n\u003Cspan class=\&gp\&\u003E& \u003C\u002Fspan\u003E\u003Cspan class=\&kp\&\u003Ehead\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003EArthritis\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E
ID Treatment
Sex Age Improved\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E1 57
Treated Male
Some\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E2 46
Treated Male
None\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E3 77
Treated Male
None\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E4 17
Treated Male
Marked\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E5 36
Treated Male
Marked\u003C\u002Fspan\u003E\n\u003Cspan class=\&go\&\u003E6 23
Treated Male
Marked\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E7.2.1 生成频数表\u003Cbr\u003ER中提供了创建频数表和列联表的若干方法。重要函数如下:\u003Cbr\u003Etable(var1,var2,... varN)
使用N个类别型变量(因子)创建一个N维列联表\u003Cbr\u003Extabs(formula,data)
根据一个公式和一个矩阵或数据框创建一个N维向量\u003Cbr\u003Eprop.table(table,margins)
依margins定义边际列表将表中的条目表示为分数形式\u003Cbr\u003Emargin.table(table,margins)
依margins定义边际列表将表中的条目的和\u003Cbr\u003Eaddmargins(table,margins)
将概述边为margins(默认是求和结果)放入表中\u003Cbr\u003Eftable(table)
创建了一个紧凑的“平铺”式列联表\u003Cbr\u003E\u003Cbr\u003E1. 一维列联表\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& mytable&-with(Arthritis,table(Improved))\n& mytable\nImproved\n
Some Marked \n
28 \n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E可以使用prop.table()将这些频数转化为比例值\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& prop.table(mytable)\nImproved\n
Some Marked \n 0.500
0.333 \n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E使用prop.table()*100 转化为百分比\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& prop.table(mytable)*100\nImproved\n
Some Marked \n
33.3\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E2.二维列联表\u003Cbr\u003E对于二维列联表,table()函数的使用格式为:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003Emytable&-table(A,B)\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E其中,A是变量,B是列变量,xtabs()函数还可以使用公式风格的输入创建列联表,格式\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003Emytable&-xtabs(~ A+B,data=mydata)\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E其中,mydata是一个矩阵或数据框。\u003Cbr\u003E对于Arthritis数据,有:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& mytable&-xtabs(~ Treatment+Improved, data=Arthritis)\n& mytable\n
Improved\nTreatment None Some Marked\n
21\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E可以使用margin.table()和prop.table()函数分别生成边际频数和比例。行和行的比例可以这样计算:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& margin.table(mytable,1)\nTreatment\nPlacebo Treated \n
41 \n& prop.table(mytable,1)\n
Improved\nTreatment
Placebo 0...1627907\n
Treated 0...5121951\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E下标1指代table()语句中的第一个变量\u003Cbr\u003E接受安慰剂的个体中有显著改善有16%\u003Cbr\u003E接受治疗的个体中病情有显著改善的有51%\u003Cbr\u003E\u003Cbr\u003E列和列比例可以这样计算:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& margin.table(mytable,2)\nImproved\n
Some Marked \n
28 \n& prop.table(mytable,2)\n
Improved\nTreatment
Placebo 0...2500000\n
Treated 0...7500000\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E下标2指代table()语句中的第二个变量\u003Cbr\u003E\u003Cbr\u003E各单元格所占比例可按如下语句:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& prop.table(mytable)\n
Improved\nTreatment
Placebo 0...\n
Treated 0...\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E可以使用addmargin()函数为这些表格添加边际和。\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& addmargins(mytable)\n
Improved\nTreatment None Some Marked Sum\n
84\n& addmargins(prop.table(mytable))\n
Improved\nTreatment
Placebo 0....\n
Treated 0....\n
0....\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E在使用addmargins()时,默认行为是为表中所有的变量创建边际和。\u003Cbr\u003E仅添加了各行的和,类似地:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& addmargins(prop.table(mytable,1),2)\n
Improved\nTreatment
Placebo 0....0000000\n
Treated 0....0000000\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E添加了各列的和。\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& addmargins(prop.table(mytable,2),1)\n
Improved\nTreatment
Placebo 0...2500000\n
Treated 0...7500000\n
1...0000000\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E使用gmodels包中的CrossTable()函数是创建二维联表的一种方法。\u003Cbr\u003E代码7-10
使用CrossTable生成二维列联表\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& library(gmodels)\n& CrossTable(Arthritis$Treatment,Arthritis$Improved)\n\n \n
Cell Contents\n|-------------------------|\n|
N |\n| Chi-square contribution |\n|
N \u002F Row Total |\n|
N \u002F Col Total |\n|
N \u002F Table Total |\n|-------------------------|\n\n \nTotal Observations in Table:
84 \n\n \n
| Arthritis$Improved \nArthritis$Treatment |
Marked | Row Total | \n--------------------|-----------|-----------|-----------|-----------|\n
0.512 | \n
| \n--------------------|-----------|-----------|-----------|-----------|\n
0.488 | \n
| \n--------------------|-----------|-----------|-----------|-----------|\n
Column Total |
| \n--------------------|-----------|-----------|-----------|-----------|\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E3.多维列联表\u003Cbr\u003Etable()和 xtabs()都可以基于三个或更多的类别型变量生成多维列联表\u003Cbr\u003Emargins.table()
prop.table()
addmargins()
函数可以推广到高于二维的情况\u003Cbr\u003E\u003Cbr\u003E代码7-11
三维列联表\u003Cbr\u003E#生成了三维分组各单元格频数\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& mytable&-xtabs(~Treatment+Sex+Improved,data=Arthritis)\n& mytable\n, , Improved = None\n\n
Sex\nTreatment Female Male\n
7\n\n, , Improved = Some\n\n
Sex\nTreatment Female Male\n
2\n\n, , Improved = Marked\n\n
Sex\nTreatment Female Male\n
5\n& ftable(mytable)\n
Improved None Some Marked\nTreatment Sex
1\nTreated
5\n& margin.table(mytable,1)\nTreatment\nPlacebo Treated \n
41 \n& margin.table(mytable,2)\nSex\nFemale
25 \n& margin.table(mytable,3)\nImproved\n
Some Marked \n
28 \n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E#治疗情况(Treatment)*改善情况(Improved)的边际频数,由不同性别的单元格加和而成。\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& margin.table(mytable,c(1,3))\n
Improved\nTreatment None Some Marked\n
21\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E #治疗情况(Treatment)*性别(Sex)的各类改善情况比例\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& ftable(prop.table(mytable,c(1,2)))\n
Some Marked\nTreatment Sex
0.8 0.1875\n
0.0 0.0909\nTreated
0.2 0.5926\n
0.9 0.3571\n& ftable(addmargins(prop.table(mytable,c(1,2)),3))\n
Some Marked
Sum\nTreatment Sex
0.0 0.0\nTreated
0.9 0.0\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E列联表可以告诉你组成表格的各种变量组合的频数或比例。\u003Cbr\u003E\u003Cbr\u003E7.2.2
独立性检验\u003Cbr\u003E1. 卡方独立性检验\u003Cbr\u003E可以使用chisq.test() 函数对二维表的行变量和列变量进行卡方独立性检验。\u003Cbr\u003E代码7-12
卡方独立性检验\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& library(vcd)\n& mytable&-xtabs(~Treatment+Improved,data = Arthritis)\n& chisq.test(mytable)\n\n\tPearson's Chi-squared test\n\ndata:
mytable\nX-squared = 13.055, df = 2, p-value = 0.001463\n\n& mytable&-xtabs(~Improved+Sex,data = Arthritis)\n& chisq.test(mytable)\n\n\tPearson's Chi-squared test\n\ndata:
mytable\nX-squared = 4.8407, df = 2, p-value = 0.08889\n\nWarning message:\nIn chisq.test(mytable) : Chi-squared近似算法有可能不准\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E可以用fisher.test()函数进行Fisher精确检验。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003EFisher精确检验的原假设是:边界固定的列联表中行与列是相互独立的。\u003Cbr\u003E其调用格式为fisher.test(mytable),其中mytable是一个列联表。例如:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003Emytable&-xtabs(~Treatment+Improved,data=Arthritis)\n& fisher.test(mytable)\n\n\tFisher's Exact Test for Count Data\n\ndata:
mytable\np-value = 0.001393\nalternative hypothesis: two.sided\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E3。Cochran-Mantel-Haenszel 检验\u003Cbr\u003Emantelhaen.test()函数可用来进行Cochran-Mantel-Haenszel 检验。\u003Cbr\u003E检验假设:两个名义变量在第三个变量的每一层中都是条件独立的。下列代码可以检验治疗情况和改善情况在性别的每一水平下是否独立。\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& mytable&-xtabs(~Treatment+Improved+Sex,data = Arthritis)\n& mantelhaen.test(mytable)\n\n\tCochran-Mantel-Haenszel test\n\ndata:
mytable\nCochran-Mantel-Haenszel M^2 = 14.632, df = 2, p-value = 0.0006647\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E结果表明,患者接受的治疗与得到的改善在性别的每一水平下并不独立。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cbr\u003E7.2.3
相关性的度量\u003Cbr\u003Evcd包中的assosctats()函数可以用来计算二维列联表的phi系数,列联系数和Cramer's V系数。\u003Cbr\u003E代码7-13
二维列联表的相关性度量\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& library(vcd)\n& mytable&-xtabs(~Treatment+Improved,data=Arthritis)\n& assocstats(mytable)\n
P(& X^2)\nLikelihood Ratio 13.530
2 0.0011536\nPearson
2 0.0014626\n\nPhi-Coefficient
: NA \nContingency Coeff.: 0.367 \nCramer's V
: 0.394 \n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E7.2.4
结果的可视化\u003Cbr\u003E使用条形图来进行一维频数的可视化\u003Cbr\u003E\u003Cbr\u003E7.3相关系数\u003Cbr\u003E相关系数可以用来描述定量变量之间的关系。相关系数符号(正负号)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关是为0,完全相关时为1)\u003Cbr\u003E7.3.1相关的类型\u003Cbr\u003E1.Pearson、Spearman、Kendall相关\u003Cbr\u003EPearson积差相关系数衡量了两个定量变量之间的线性相关程度。\u003Cbr\u003ESpearman等级相关系数则衡量分级定序变量之间的相关程度。\u003Cbr\u003EKendall相关系数是一种非参数的等级相关度量。\u003Cbr\u003Ecor()函数可以计算这三种相关系数,而cov()函数可以用来计算协方差。两个函数的参数有很多,其中与相关系数的计算有关的参数可以简化为:\u003Cbr\u003Ecor(x,use= ,method= )\u003Cbr\u003E\u003Cbr\u003E其中,x是矩阵或数据框\u003Cbr\u003Euse指定缺失数据的处理方式。\u003Cbr\u003Emethod指定相关系数的类型。可选类型为Pearson、Spearman、Kendall相关\u003Cbr\u003E默认参数为,use=\&everything\& , method=\&pearson\&\u003Cbr\u003E\u003Cbr\u003E代码7-14
协方差和相关系数\u003Cbr\u003E#计算方差和协方差\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E& states&-state.x77[,1:6]\n& options(digits=3)\n& cov(states)\n
Population Income Illiteracy Life Exp
HS Grad\nPopulation
292.868 -407.842 51.51\nIncome
280.663 -521.89
3076.77\nIlliteracy
-3.24\nLife Exp
6.31\nMurder
-14.55\nHS Grad
65.24\n#计算Pearson积差相关系数\n& cor(states)\n
Population Income Illiteracy Life Exp Murder HS Grad\nPopulation
-0. -0.0985\nIncome
0.6199\nIlliteracy
-0. -0.6572\nLife Exp
0.5822\nMurder
-0. -0.4880\nHS Grad
1.0000\n#计算Spearman等级相关系数\n& cor(states,method = \&spearman\&)\n
Population Income Illiteracy Life Exp Murder HS Grad\nPopulation
-0.383\nIncome
0.324 -0.217
0.510\nIlliteracy
0.313 -0.315
-0.655\nLife Exp
1.000 -0.780
0.524\nMurder
0.346 -0.217
-0.437\nHS Grad
0.524 -0.437
1.000\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E上述代码是在默认的情况的得到的结果是一个方阵(即所有变量之间两两相关)。\u003Cbr\u003E我们看到收入和高中毕业率之间存在很强的正相关;而文盲和预期寿命之间存在很强的负相关。\u003Cbr\u003E\u003Cbr\u003E我们计算非方形的相关矩阵。例如:\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-text\&\u003E\u003Cspan\u003

我要回帖

更多关于 add me on wechat 的文章

 

随机推荐