R语言学习系列24频率表和列联表文档格式.docx
- 文档编号:20176247
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:9
- 大小:170.90KB
R语言学习系列24频率表和列联表文档格式.docx
《R语言学习系列24频率表和列联表文档格式.docx》由会员分享,可在线阅读,更多相关《R语言学习系列24频率表和列联表文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
-table(Arthritis$Improved)#统计频数
mytable
NoneSomeMarked
421428
prop.table(mytable)#将频数转化为比例值
0.50000000.16666670.3333333
prop.table(mytable)*100#将频数转化为百分比
50.0000016.6666733.33333
2.集中/离散趋势
观察原始频数,或者使用众数。
对于分类变量,集中/离散趋势是一体的。
3.相对频数指标
〔1〕比〔Riatio〕
两个有关指标之比A/B,用来反映相对的大小关系,例如,月销售额/销售人数;
〔2〕构成比
用于描述事物部各构成局部所占的比重,例如,百分比、累积百分比;
〔3〕率〔Rate〕
率是具有时间概念或速度、强度意义的指标,表示某个时期某事件发生的频率或强度,例如速率、频率、费率、发病率等。
二、二维列联表
1.r×
c二维列联表:
〔1〕共n个样本;
〔2〕按两种属性A、B,属性A有r个水平值:
A1,…,Ar;
属性B有c个水平值:
B1,…,Bc.属性A=Ai,属性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="
ifany"
mytable<
-xtabs(~Treatment+Improved,data=Arthritis)#生成治疗方法与疗效的二维列联表〔频数〕
Improved
TreatmentNoneSomeMarked
Placebo2977
Treated13721
prop.table(mytable)#各单元格占的比例〔所有行列总和=1〕
Placebo0.345238100.083333330.08333333
Treated0.154761900.083333330.25000000
margin.table(mytable,1)#对第1个变量〔行变量〕生成边际频数
Treatment
PlaceboTreated
4341
prop.table(mytable,1)#对第1个变量〔行变量〕生成边际比例〔每行和=1〕
Placebo0.67441860.16279070.1627907
Treated0.31707320.17073170.5121951
#可见与抚慰剂组相比,治疗组的治愈率从16%提高到51%
margin.table(mytable,2)#对第2个变量〔列变量〕生成边际频数
Improved
prop.table(mytable,2)#对第2个变量〔列变量〕生成边际比例〔每列和=1〕
Placebo0.69047620.50000000.2500000
Treated0.30952380.50000000.7500000
addmargins(mytable)#将边际求和结果添加到表格〔频数〕
TreatmentNoneSomeMarkedSum
Placebo297743
Treated1372141
Sum42142884
addmargins(prop.table(mytable))#将边际求和结果添加到表格〔比例〕
Placebo0.345238100.083333330.083333330.51190476
Treated0.154761900.083333330.250000000.48809524
Sum0.500000000.166666670.333333331.00000000
addmargins(prop.table(mytable,1),2)#只添加列边际
Placebo0.67441860.16279070.16279071.0000000
Treated0.31707320.17073170.51219511.0000000
addmargins(prop.table(mytable,2),1)#只添加行边际
Sum1.00000001.00000001.0000000
2.gmodels包中的函数CrossTable()
该函数仿照SAS中PROCFREQ或SPSS中CROSSTABS的形式生成二维列联表。
它有很多项选择项,可以做许多事情:
计算〔行、列、单元格〕的百分比;
指定小数位数;
进展卡方、Fisher和McNemar独立性检验;
计算期望和〔皮尔逊、标准化、调整的标准化〕残差;
将缺失值作为一种有效值;
进展行和列标题的标注;
生成SAS或SPSS风格的输出。
library(gmodels)
CrossTable(Arthritis$Treatment,Arthritis$Improved)
三、多维列联表
table()和xtabs()都可以基于三个或更多的分类变量〔因子〕生成多维列联表。
margin.table()、prop.table()和addmargins()函数也可类似推广到多维。
另外,ftable()函数可以用一种紧凑的“平铺式〞输出多维列联表。
-xtabs(~Treatment+Sex+Improved,data=Arthritis)
,Improved=None
Sex
TreatmentFemaleMale
Placebo1910
Treated67
,Improved=Some
Placebo70
Treated52
,Improved=Marked
Placebo61
Treated165
ftable(mytable)
ImprovedNoneSomeMarked
TreatmentSex
PlaceboFemale1976
Male1001
TreatedFemale6516
Male725
margin.table(mytable,1)#边际频数
margin.table(mytable,2)
Sex
FemaleMale
5925
margin.table(mytable,3)
margin.table(mytable,c(1,3))
#相当于1:
治疗方法×
3:
疗效的二维列联表
ftable(prop.table(mytable,c(1,2)))
#紧凑形式显示1:
2:
性别的各类疗效情况〔比例〕
PlaceboFemale0.593750000.218750000.18750000
Male0.909090910.000000000.09090909
TreatedFemale0.222222220.185185190.59259259
Male0.500000000.142857140.35714286
ftable(addmargins(prop.table(mytable,c(1,2)),3))
#继续给第3变量添加边际
ImprovedNoneSomeMarkedSum
PlaceboFemale0.593750000.218750000.187500001.00000000
Male0.909090910.000000000.090909091.00000000
TreatedFemale0.222222220.185185190.592592591.00000000
Male0.500000000.142857140.357142861.00000000
ftable(addmargins(prop.table(mytable,c(1,2)),3))*100
#继续改成百分比
PlaceboFemale59.37500021.87500018.750000100.000000
Male90.9090910.0000009.090909100.000000
TreatedFemale22.22222218.51851959.259259100.000000
Male50.00000014.28571435.714286100.000000
2.多维列联表的图形展示——马赛克图
单个分类变量,可以使用柱状图或者饼图;
假设存在两个分类变量,可以使用三维柱状图;
两个以上的分类变量可以使用马赛克图。
马赛克图中,嵌套矩形面积正比于单元格频率,其中该频率即多维列联表中的频率。
颜色和/或阴影可表示拟合模型的残差值。
使用mosaic()函数,根本格式为:
mosaic(table)
其中,table为数组形式的列联表;
或者用
mosaic(formula,data=)
其中,formula为形如~var1+var2+…的公式,data为数据框或表格;
可选项shade=TRUE将根据拟合模型的皮尔逊残差值对图形上色;
legend=TRUE将展示残差的图例。
library(vcd)
ftable(Titanic)
SurvivedNoYes
ClassSexAge
1stMaleChild05
Adult11857
FemaleChild01
Adult4140
2ndMaleChild011
Adult15414
FemaleChild013
Adult1380
3rdMaleChild3513
Adult38775
FemaleChild1714
Adult8976
CrewMaleChild00
Adult670192
FemaleChild00
Adult320
mosaic(Titanic,shade=TRUE,legend=TRUE)
mosaic(~Class+Sex+Age+Survived,data=Titanic,shade=TRUE,legend=TRUE)
#上面两种代码效果一样
上图为按船舱等级、乘客性别和年龄层绘制的泰坦尼克号幸存者的马赛克图。
可以看出:
(1)从船员到头等舱,存活率陡然提高;
(2)大局部孩子都处在三等舱和二等舱中;
(3)在头等舱中的大局部女性都存活了下来,而三等舱中仅有一半女性存活;
(4)船员中女性很少,导致该组的Survived标签重叠〔图底部的No和Yes〕
扩展的马赛克图添加了颜色和阴影来表示拟合模型的残差值:
蓝色阴影说明,在假定生存率与船舱等级、性别和年龄层无关的条件下,该类别下的生存率通常超过预期值。
红色阴影那么含义相反。
图形说明,在模型的独立条件下,头等舱女性存活数和男性船员死亡数超过模型预期值。
如果存活数与船舱等级、性别和年龄层独立,三等舱男性的存活数比模型预期值低。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学习 系列 24 频率 列联表
![提示](https://static.bdocx.com/images/bang_tan.gif)