《R语言学习系列24-频率表和列联表(共9页).docx》由会员分享,可在线阅读,更多相关《R语言学习系列24-频率表和列联表(共9页).docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上22. 频率表和列联表分类变量包括无序分类变量、有序分类变量。对于分类变量的描述统计,主要是对分类变量各水平值分别进行频数和比例计算,再进步计算所需的一些相对频数指标。一、一维列联表1. 频数统计分类变量的分析,首先要了解:各类别的样本数(频数),以及占总样本量的百分比;对有序分类变量,还需要了解:累积频数、累积百分比。使用table()函数生成简单的频数统计表,基本格式为:table(var1, var2, , varN)将N个分类变量(因子)创建一个N维列联表。library(vcd) #使用数据集Arthritishead(Arthritis,3) ID Tre
2、atment Sex Age Improved1 57 Treated Male 27 Some2 46 Treated Male 29 None3 77 Treated Male 30 Nonemytable-table(Arthritis$Improved) #统计频数mytable None Some Marked 42 14 28 prop.table(mytable) #将频数转化为比例值 None Some Marked 0. 0. 0. prop.table(mytable)*100 #将频数转化为百分比 None Some Marked 50.00000 16.66667 33
3、.33333 2. 集中/离散趋势观察原始频数,或者使用众数。对于分类变量,集中/离散趋势是一体的。3. 相对频数指标(1)比(Riatio)两个有关指标之比A/B, 用来反映相对的大小关系,例如,月销售额/销售人数;(2)构成比用于描述事物内部各构成部分所占的比重,例如,百分比、累积百分比;(3)率(Rate)率是具有时间概念或速度、强度意义的指标,表示某个时期内某事件发生的频率或强度,例如速率、频率、费率、发病率等。二、二维列联表1. rc二维列联表:(1)共n个样本;(2)按两种属性A、B,属性A有r个水平值:A1, , Ar; 属性B有c个水平值:B1, , Bc. 属性A=Ai,属性
4、B=Bj的样本数为nij. (3)ni. = “属性A=Ai”的合计数,n.j = “属性B=Bj”的合计数。注:多分类变量对应高维列联表。 生成二维列联表使用函数table(),基本格式为:table(A,B)其中,A为行变量,B为列变量。或者使用函数xtabs(),基本格式为:xtabs(A+B, data=mydata)其中,mydata为矩阵或数据框;要进行交叉分类的变量放在右侧,以+作为分隔符,若某个变量写在左侧,则为频数向量,常用于数据已经被表格化时。 注:table函数默认忽略NA值,若要将NA值作为一个类别,需要使用参数useNA=ifanymytable - xtabs( T
5、reatment+Improved, data=Arthritis) #生成治疗方法与疗效的二维列联表(频数)mytable ImprovedTreatment None Some Marked Placebo 29 7 7 Treated 13 7 21prop.table(mytable) #各单元格占的比例(所有行列总和=1) ImprovedTreatment None Some Marked Placebo 0. 0. 0. Treated 0. 0. 0.margin.table(mytable,1) #对第1个变量(行变量)生成边际频数TreatmentPlacebo Treat
6、ed 43 41 prop.table(mytable,1) #对第1个变量(行变量)生成边际比例(每行和=1) ImprovedTreatment None Some Marked Placebo 0. 0. 0. Treated 0. 0. 0.#可见与安慰剂组相比,治疗组的治愈率从16%提高到51%margin.table(mytable,2) #对第2个变量(列变量)生成边际频数Improved None Some Marked 42 14 28 prop.table(mytable, 2) #对第2个变量(列变量)生成边际比例(每列和=1) ImprovedTreatment Non
7、e Some Marked Placebo 0. 0. 0. Treated 0. 0. 0.addmargins(mytable) #将边际求和结果添加到表格(频数) ImprovedTreatment None Some Marked Sum Placebo 29 7 7 43 Treated 13 7 21 41 Sum 42 14 28 84addmargins(prop.table(mytable) #将边际求和结果添加到表格(比例) ImprovedTreatment None Some Marked Sum Placebo 0. 0. 0. 0. Treated 0. 0. 0.
8、 0. Sum 0. 0. 0. 1.addmargins(prop.table(mytable, 1), 2) #只添加列边际 ImprovedTreatment None Some Marked Sum Placebo 0. 0. 0. 1. Treated 0. 0. 0. 1.addmargins(prop.table(mytable, 2), 1) #只添加行边际 ImprovedTreatment None Some Marked Placebo 0. 0. 0. Treated 0. 0. 0. Sum 1. 1. 1. 2. gmodels包中的函数CrossTable()该函
9、数仿照SAS中PROC FREQ或SPSS中CROSSTABS的形式生成二维列联表。它有很多选项,可以做许多事情:计算(行、列、单元格)的百分比;指定小数位数;进行卡方、Fisher和McNemar独立性检验;计算期望和(皮尔逊、标准化、调整的标准化)残差;将缺失值作为一种有效值;进行行和列标题的标注;生成SAS或SPSS风格的输出。library(gmodels)CrossTable(Arthritis$Treatment, Arthritis$Improved)三、多维列联表table()和xtabs()都可以基于三个或更多的分类变量(因子)生成多维列联表。margin.table()、p
10、rop.table()和addmargins()函数也可类似推广到多维。另外,ftable()函数可以用一种紧凑的“平铺式”输出多维列联表。mytable-xtabs(Treatment+Sex+Improved,data=Arthritis)mytable, , Improved = None SexTreatment Female Male Placebo 19 10 Treated 6 7, , Improved = Some SexTreatment Female Male Placebo 7 0 Treated 5 2, , Improved = Marked SexTreatmen
11、t Female Male Placebo 6 1 Treated 16 5ftable(mytable) Improved None Some MarkedTreatment Sex Placebo Female 19 7 6 Male 10 0 1Treated Female 6 5 16 Male 7 2 5margin.table(mytable,1) #边际频数TreatmentPlacebo Treated 43 41 margin.table(mytable,2)SexFemale Male 59 25 margin.table(mytable,3)Improved None S
12、ome Marked 42 14 28 margin.table(mytable,c(1,3) #相当于1:治疗方法3:疗效的二维列联表 ImprovedTreatment None Some Marked Placebo 29 7 7 Treated 13 7 21ftable(prop.table(mytable,c(1,2) #紧凑形式显示1:治疗方法2:性别的各类疗效情况(比例) Improved None Some MarkedTreatment Sex Placebo Female 0. 0. 0. Male 0. 0. 0.Treated Female 0. 0. 0. Male
13、 0. 0. 0.ftable(addmargins(prop.table(mytable, c(1, 2), 3) #继续给第3变量添加边际 Improved None Some Marked SumTreatment Sex Placebo Female 0. 0. 0. 1. Male 0. 0. 0. 1.Treated Female 0. 0. 0. 1. Male 0. 0. 0. 1.ftable(addmargins(prop.table(mytable, c(1, 2), 3)*100 #继续改成百分比 Improved None Some Marked SumTreatme
14、nt Sex Placebo Female 59. 21. 18. 100. Male 90. 0. 9. 100.Treated Female 22. 18. 59. 100. Male 50. 14. 35. 100. 2. 多维列联表的图形展示马赛克图单个分类变量,可以使用柱状图或者饼图;若存在两个分类变量,可以使用三维柱状图;两个以上的分类变量可以使用马赛克图。马赛克图中,嵌套矩形面积正比于单元格频率,其中该频率即多维列联表中的频率。颜色和/或阴影可表示拟合模型的残差值。使用mosaic()函数,基本格式为:mosaic(table)其中,table为数组形式的列联表;或者用mosai
15、c(formula, data=)其中,formula为形如var1+var2+的公式,data为数据框或表格;可选项shade=TRUE将根据拟合模型的皮尔逊残差值对图形上色;legend=TRUE将展示残差的图例。library(vcd)ftable(Titanic) Survived No YesClass Sex Age 1st Male Child 0 5 Adult 118 57 Female Child 0 1 Adult 4 1402nd Male Child 0 11 Adult 154 14 Female Child 0 13 Adult 13 803rd Male Chi
16、ld 35 13 Adult 387 75 Female Child 17 14 Adult 89 76Crew Male Child 0 0 Adult 670 192 Female Child 0 0 Adult 3 20mosaic(Titanic, shade=TRUE, legend=TRUE)mosaic(Class+Sex+Age+Survived, data=Titanic, shade=TRUE, legend=TRUE)#上面两种代码效果相同上图为按船舱等级、乘客性别和年龄层绘制的泰坦尼克号幸存者的马赛克图。可以看出:(1) 从船员到头等舱,存活率陡然提高;(2) 大部分孩子都处在三等舱和二等舱中;(3) 在头等舱中的大部分女性都存活了下来,而三等舱中仅有一半女性存活;(4) 船员中女性很少,导致该组的Survived标签重叠(图底部的No和Yes)扩展的马赛克图添加了颜色和阴影来表示拟合模型的残差值:蓝色阴影表明,在假定生存率与船舱等级、性别和年龄层无关的条件下,该类别下的生存率通常超过预期值。红色阴影则含义相反。图形表明,在模型的独立条件下,头等舱女性存活数和男性船员死亡数超过模型预期值。如果存活数与船舱等级、性别和年龄层独立,三等舱男性的存活数比模型预期值低。专心-专注-专业