background-image: url("../pic/slide-front-page.jpg") class: center,middle # 统计学原理(Statistic) <!--- chakra: libs/remark-latest.min.js ---> ### 胡华平 ### 西北农林科技大学 ### 经济管理学院数量经济教研室 ### huhuaping01@hotmail.com ### 2022-02-22
--- class: center, middle, duke-orange,hide_logo # 第三章 数据的图表展示 ### [3.1 数据的预处理](#prepare) ### [3.2 品质数据的整理与显示](#quality) ### [3.3 数值型数据的整理与显示](#quantity) ### [3.4 合理使用图表](#nice) --- layout: false class: center, middle, duke-softblue,hide_logo name: prepare # 3.1 数据的预处理 ### 数据清洗(data cleaning ) ### 数据变换(data transformation) ### 数据子集(data subset) --- layout: true <div class="my-header-h2"></div> <div class="watermark1"></div> <div class="watermark2"></div> <div class="watermark3"></div> <div class="my-footer"><span>huhuaping@    <a href="#chapter02"> 第03章 数据的图表展示 </a>                       <a href="#prepare"> 3.1 数据的预处理 </a> </span></div> --- ## 数据预处理的主要内容 - 数据审核:检查数据中的错误 - 数据筛选:找出符合条件的数据 - 数据排序:升序和降序;寻找数据的基本特征 - 数据透视:按需要汇总 --- ## 数据预处理:数据审核 对于**原始数据(raw data)**需要进行: **完整性审核**: - 应调查的单位或个体是否有遗漏 - 所有的调查项目或变量是否填写齐全 **准确性审核**: - 数据是否真实反映实际情况,内容是否符合实际 - 数据是否有错误,计算是否正确等 --- ## 数据预处理:数据审核 对于**二手数据(second hand data)**需要进行: **适用性审核**: - 弄清楚数据的来源、数据的口径以及有关的背景材料 - 确定数据是否符合自己分析研究的需要 **时效性审核**: - 尽可能使用最新的数据 - 确认是否有必要做进一步的加工整理 --- ## 数据预处理:数据筛选 **数据预处理**:当数据中的错误不能予以纠正,或者有些数据不符合调查的要求而又无法弥补时,需要对数据进行筛选。 数据筛选的内容: - 将某些不符合要求的数据或有明显错误的数据予以剔除 - 将符合某种特定条件的数据筛选出来,而不符合特定条件的数据予以剔除 --- ## 数据预处理:数据排序 数据排序的**作用**: - 按一定顺序将数据排列,以发现一些明显的特征或趋势,找到解决问题的线索 - 排序有助于对数据检查纠错,以及为重新归类或分组等提供依据 - 在某些场合,排序本身就是分析的目的之一 - 排序可借助于计算机完成 --- ## 数据预处理:数据透视表 数据透视表(pivot table)的作用: - 可以从复杂的数据中提取有用的信息 - 可以对数据表的重要信息按使用者的习惯或分析要求进行汇总和作图 - 形成一个符合需要的交叉表(列联表) - 在利用数据透视表时,数据源表中的首行必须有列标题 --- ## 数据预处理:Excel中的数据透视表 利用`Excel`软件创建数据透视表的主要步骤: - 第1步:在Excel工作表中建立数据清单 - 第2步:选中数据清单中的任意单元格,并选择【数据】菜单中的【数据透视表和数据透视图】 - 第3步:确定数据源区域 - 第4步:在【向导—3步骤之3】中选择数据透视表的输出位置。然后选择【布局】 - 第5步:在【向导—布局】对话框中,依次将”分类变量“拖至左边的“行”区域,上边的“列”区域,将需要汇总的“变量” 拖至“数据区域” - 第6步:然后单击【确定】,自动返回【向导—3步骤之3】对话框。然后单击【完成】,即可输出数据透视表 --- ### (演示)Excel数据预处理:数据准备 利用Excel进行数据准备,主要工作包括: - 读取或导入其他数据格式(例如`.txt`或`.csv`格式) - 删除说明性内容 - 数据表形式(long data VS wide data) - 数值表达方式(labels VS values) - 备注重要信息 --- ### (演示)导入其他数据格式:Excel操作 .panelset[ .panel[.panel-name[a.数据菜单] <img src="../pic/chpt03-excel-prepare-import-csv1.png" width="551" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.选择文件] <img src="../pic/chpt03-excel-prepare-import-csv2.png" width="80%" style="display: block; margin: auto;" /> ] .panel[.panel-name[c.数据引导] <img src="../pic/chpt03-excel-prepare-import-csv3.png" width="60%" style="display: block; margin: auto;" /> ] ] --- ### (演示)删除说明性内容:Excel操作 .left-column[ #### a.删除前 ] .right-column[ <img src="../pic/chpt03-excel-prepare-remove-notation1.png" width="661" height="450px" style="display: block; margin: auto;" /> ] --- ### (演示)删除说明性内容:Excel操作 .left-column[ #### a.删除前 #### b.删除后 ] .right-column[ <img src="../pic/chpt03-excel-prepare-remove-notation2.png" width="728" height="450px" style="display: block; margin: auto;" /> ] --- exclude: true ### (演示)删除说明性内容:Excel操作 .panelset[ .panel[.panel-name[a.删除前] <img src="../pic/chpt03-excel-prepare-remove-notation1.png" width="661" height="400px" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.删除后] <img src="../pic/chpt03-excel-prepare-remove-notation2.png" width="728" height="400px" style="display: block; margin: auto;" /> ] ] --- ### (演示)数据表现形式:Excel操作 .left-column[ ### 1)扁平形式 ] .right-column[ <img src="../pic/chpt03-excel-prepare-format1-wide.png" width="1415" height="420px" style="display: block; margin: auto;" /> - 一个病人的数据,由一行就能够完全进行表达。 ] --- ### (演示)数据表现形式:Excel操作 .left-column[ ### 1)扁平形式 ### 2)窄长形式 ] .pt0[ .right-column[ <img src="../pic/chpt03-excel-prepare-format2-long.png" width="912" height="420px" style="display: block; margin: auto;" /> - 一个病人的数据,需要多行才能进行完整表达。 ] ] --- exclude: true ### (演示)数据表现形式:Excel操作 .panelset[ .panel[.panel-name[a.扁平形式] <img src="../pic/chpt03-excel-prepare-format1-wide.png" width="1415" height="40%" style="display: block; margin: auto;" /> > 一个病人的数据,由一行就能够完全进行表达。 ] .panel[.panel-name[b.窄长形式] <img src="../pic/chpt03-excel-prepare-format2-long.png" width="912" height="40%" style="display: block; margin: auto;" /> > 一个病人的数据,需要多行才能进行完整表达。 ] ] --- ## 数据清洗:Excel常用操作1 - **查找/替换**: - **提取文本字符**: - 从左侧:`=LEFT(text, [num_chars])` - 从右侧:`=RIGHT(text, [num_chars])` - 从指定位置:`=MID(text,start_num,num_chars)` - **正确大小写**: - 全部小写:`=LOWER(text)` - 全部大写:`=UPPER(text)` - 首字母大写:`=PROPER(text)` - 自定义大小写:`=UPPER(LEFT(A2,1)&LOWER(MID(A2,2,60)` --- ## 数据清洗:Excel常用操作2 - **删除重复值**: - **合并文本内容**:`=[Cell 1]&[Cell 2]` - **清除空格**:`=TRIM( text )` - **清除非打印字符**:`=CLEAN( text )` --- ### (演示)Excel数据清洗:查找/替换 <img src="../pic/chpt03-excel-prepare-find-1.png" width="1155" height="100%" style="display: block; margin: auto;" /> --- ### (演示)Excel数据清洗:提取文本字符 <img src="../pic/chpt03-excel-prepare-extract-1.png" width="1303" height="200px" style="display: block; margin: auto;" /> <img src="../pic/chpt03-excel-prepare-extract-2.png" width="1303" height="200px" style="display: block; margin: auto;" /> --- ## (演示)Excel数据清洗:自定义大小写 <img src="../pic/chpt03-excel-prepare-cap.png" width="1151" height="100%" style="display: block; margin: auto;" /> --- ### (演示)Excel数据清洗:删除重复值 <img src="../pic/chpt03-excel-prepare-duplicate.png" width="1159" height="100%" style="display: block; margin: auto;" /> --- ### (演示)Excel数据审核: .panelset[ .panel[.panel-name[a.选择区域] <img src="../pic/chpt03-excel-prepare-check-1.png" width="1575" height="450px" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.设定类型] <img src="../pic/chpt03-excel-prepare-check-2.png" width="1573" height="450px" style="display: block; margin: auto;" /> ] .panel[.panel-name[c.设置范围] <img src="../pic/chpt03-excel-prepare-check-3.png" width="1575" height="450px" style="display: block; margin: auto;" /> ] .panel[.panel-name[d.设置提示] <img src="../pic/chpt03-excel-prepare-check-4.png" width="1573" height="450px" style="display: block; margin: auto;" /> ] ] --- exclude: true ### 数据清洗:清单 以**调查问卷数据**的清洗为例: - 真实性的清洗:要确认数据来自于受访者。 - 完整性的清洗:主要看样本无应答,也就是一整份问卷没有应答。以及选项无应答,也就是应该应答的访题没有应答。 - 可用性的清洗:主要是看编码是否完成,权数是否可行,以及缺失值如何标记和处理。 - 错误性的清洗:主要是清洗调查环节的错误,比如样本错误、应答人错误、应答方式错误。 --- exclude: true ### 案例:家庭税收情况 --- ### 案例:家庭税收情况 **案例说明**:一项家庭税收情况调查,一共收集了样本数 `\(n=73262\)`个家庭在13个变量上的基本情况。 .scroll-box-18[ ``` Rows: 73,262 Columns: 13 $ id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14~ $ custid <chr> "000006646_03", "000007827_01", "000008359_04~ $ sex <fct> Male, Female, Female, Female, Male, Male, Fem~ $ is_employed <lgl> TRUE, NA, TRUE, NA, TRUE, NA, TRUE, NA, TRUE,~ $ income <dbl> 22000, 23200, 21000, 37770, 39000, 11100, 258~ $ marital_status <fct> Never married, Divorced/Separated, Never marr~ $ health_ins <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TR~ $ housing_type <fct> Homeowner free and clear, Rented, Homeowner w~ $ recent_move <lgl> FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALS~ $ num_vehicles <dbl> 0, 0, 2, 1, 2, 2, 2, 2, 5, 3, 2, 2, 5, 1, 1, ~ $ age <dbl> 24, 82, 31, 93, 67, 76, 26, 73, 27, 54, 61, 6~ $ state_of_res <fct> Alabama, Alabama, Alabama, Alabama, Alabama, ~ $ gas_usage <dbl> 210, 3, 40, 120, 3, 200, 3, 50, 3, 20, 3, 3, ~ ``` ] --- ### (税收案例)变量视图
--- ### (税收案例)数据视图 数据包含的样本数 `\(n=73262\)`,下表展示了前500行。
--- ### (税收案例)数据清洗问题——存在混合编码 .panelset[ .panel[.panel-name[a.变量取值] `gas_usage`变量表示用油支出,样本数据中的分布情况如下: ``` 1 2 3 4 10 20 30 40 50 60 70 2389 6609 24984 455 1376 4163 5149 4242 4118 2585 1909 80 90 100 110 120 130 140 150 160 170 180 2330 1331 2651 636 836 700 446 1049 299 238 331 190 200 210 220 230 240 250 260 270 280 290 175 823 113 88 111 89 256 54 40 61 33 300 310 320 330 340 350 360 370 380 390 400 255 13 26 20 36 53 5 39 19 9 79 410 420 430 440 450 460 470 480 490 510 520 37 15 1 3 48 43 39 72 35 3 3 540 570 <NA> 9 11 1720 ``` ] .panel[.panel-name[b.编码问题] 根据“数据集说明”,我们容易发现`gas_usage`变量数据存在混合编码问题: - 混合了数值(number)和字符(string): - 1表示包含在电子支付中;2表示包含在出租或分户中;3表示没有用油; - 004-999表示用油支出数(美元)。 - 有缺失值: - `NA`表示缺失。 ] .panel[.panel-name[c.处理办法] 我们需要把原来的变量`gass_usage`提取构建为4个新变量:`gas_usage_new`、`gas_with_rent`、 `gas_with_electricity`、`no_gas_bill`。
] ] --- ### (税收案例)数据清洗问题——数据范围失常 .panelset[ .panel[.panel-name[a.年龄范围] 我们容易发现,年龄变量`age`存在取值为0,或大于100的情形。 ``` 0 21 22 23 24 25 26 27 28 29 30 31 32 33 77 1365 1312 1348 1302 1424 1489 1407 1364 1284 1444 1303 1351 1327 34 35 36 37 38 39 40 41 42 43 44 45 46 47 1285 1367 1284 1216 1226 1190 1327 1202 1215 1203 1262 1449 1392 1217 48 49 50 51 52 53 54 55 56 57 58 59 60 61 1244 1197 1355 1352 1349 1397 1429 1292 1392 1326 1290 1307 1333 1281 62 63 64 65 66 67 68 69 70 71 72 73 74 75 1220 1175 1124 1113 1082 1062 999 1026 792 696 800 757 645 549 76 77 78 79 80 81 82 83 84 85 86 87 88 89 519 530 517 431 419 424 358 314 301 317 267 251 202 162 90 91 92 93 94 95 96 100 110 114 120 <NA> 130 57 83 124 277 91 6 72 66 62 66 0 ``` ] .panel[.panel-name[b.收入范围] 此外,我们还发现收入变量`income`存在取值小于0的情形。 .scroll-box-14[ ``` -6900 -6800 -6700 -6600 -6100 -6000 -5900 -5800 -5700 -5500 -5400 1 2 2 1 1 5 1 1 1 2 2 -5300 -5200 -5000 -4900 -4700 -4520 -4500 -4200 -3500 -3100 -2800 1 2 2 1 2 1 2 1 1 1 1 -2700 -2400 -1800 -1700 -1500 -800 -700 -630 -400 -160 0 1 1 1 1 2 1 1 1 1 1 6811 1 4 10 20 30 40 50 60 70 80 90 18 18 8 10 16 4 10 10 6 7 3 100 110 120 130 140 150 160 170 180 190 200 39 4 9 6 7 8 4 5 3 5 56 210 220 230 240 250 260 270 280 300 310 320 3 5 2 10 14 1 3 1 49 1 5 330 340 350 360 370 380 400 410 420 430 440 2 1 10 11 3 5 33 1 3 3 1 450 460 470 480 500 510 520 530 540 550 560 9 4 2 6 66 8 4 4 7 2 3 570 580 590 600 610 620 630 640 650 660 670 4 3 3 55 5 2 8 2 7 5 10 700 710 720 730 740 750 760 770 780 790 800 22 6 3 5 3 12 2 2 4 2 42 810 820 830 840 850 860 870 880 890 900 910 3 2 10 5 5 4 3 4 7 33 1 920 930 940 950 960 970 980 990 1000 1001 1050 5 2 4 6 8 3 3 3 161 1 1 1060 1100 1104 1150 1180 1190 1200 1250 1280 1300 1310 1 29 1 2 1 1 127 2 3 83 1 1320 1400 1450 1500 1504 1520 1570 1580 1600 1601 1620 1 82 1 118 1 2 1 1 73 1 1 1630 1680 1700 1710 1720 1750 1780 1800 1820 1830 1840 1 1 43 1 1 1 1 78 1 1 2 1850 1880 1900 1904 1980 2000 2020 2030 2040 2100 2110 1 1 36 1 1 244 1 2 3 39 1 2150 2160 2170 2180 2200 2220 2230 2240 2300 2350 2360 1 1 1 1 66 1 2 2 56 1 1 2390 2400 2404 2410 2430 2450 2460 2480 2500 2530 2550 1 93 1 1 1 2 1 2 101 1 1 2560 2590 2600 2690 2700 2730 2740 2750 2770 2790 2800 1 1 38 1 45 1 1 1 1 1 36 2840 2850 2890 2900 2910 2980 3000 3010 3060 3090 3100 1 1 1 24 1 1 259 1 2 1 27 3170 3180 3200 3201 3210 3230 3280 3300 3310 3320 3330 1 2 54 2 1 1 1 45 1 1 1 3400 3430 3500 3501 3520 3530 3540 3560 3600 3601 3604 37 2 88 2 1 1 1 1 111 1 1 3630 3650 3700 3730 3800 3804 3850 3880 3900 3950 3980 3 1 20 1 47 1 2 1 28 1 1 4000 4010 4050 4100 4180 4190 4200 4280 4300 4320 4350 252 1 1 23 1 1 55 1 45 1 1 4400 4420 4430 4500 4550 4580 4600 4620 4690 4700 4710 27 1 1 74 1 1 33 1 1 40 1 4750 4780 4800 4801 4810 4820 4840 4890 4900 4960 5000 1 1 134 1 1 1 1 1 32 2 430 5001 5010 5030 5050 5070 5080 5100 5130 5150 5190 5200 3 1 1 4 1 1 33 1 2 1 58 5210 5300 5340 5400 5500 5510 5540 5560 5570 5600 5640 2 38 2 62 76 4 1 1 1 47 2 5670 5690 5700 5720 5740 5760 5780 5800 5810 5830 5880 1 1 37 2 1 2 1 56 2 1 1 5900 5970 6000 6004 6010 6020 6050 6070 6100 6120 6130 33 1 436 1 2 1 3 1 33 2 1 6140 6150 6190 6200 6210 6230 6240 6250 6300 6360 6400 1 1 1 36 1 1 1 1 42 1 45 6410 6440 6500 6520 6550 6560 6580 6600 6640 6650 6660 1 1 89 1 1 1 1 74 1 1 1 6680 6700 6704 6750 6760 6790 6800 6880 6900 6950 6960 1 63 1 2 1 1 41 1 45 1 1 7000 7004 7010 7020 7030 7040 7060 7080 7100 7110 7140 301 1 2 1 3 1 1 1 32 1 2 7150 7190 7200 7220 7230 7240 7250 7260 7270 7300 7320 1 1 226 1 2 2 1 1 1 49 1 7340 7400 7420 7440 7450 7460 7470 7480 7500 7504 7550 1 48 1 1 1 1 1 1 126 1 1 7560 7600 7650 7660 7680 7700 7710 7740 7750 7760 7800 2 58 2 1 1 45 1 1 1 3 100 7801 7850 7860 7880 7900 7901 7920 7940 7980 8000 8001 1 1 1 1 51 1 1 1 1 476 2 8004 8030 8040 8050 8070 8100 8110 8120 8130 8140 8200 1 1 2 3 1 52 1 1 2 1 51 8230 8250 8280 8300 8304 8310 8350 8360 8400 8404 8450 1 1 2 64 1 1 1 2 273 2 2 8460 8470 8500 8510 8520 8540 8550 8560 8590 8600 8630 3 1 106 1 2 1 1 2 1 92 1 8640 8650 8680 8690 8700 8710 8750 8760 8800 8820 8860 1 2 3 2 78 3 1 1 353 2 1 8880 8900 8904 8940 8950 8970 8980 8990 8994 9000 9004 1 89 1 2 1 3 1 2 1 453 1 9010 9020 9030 9040 9050 9060 9070 9080 9100 9110 9150 2 2 3 3 2 2 1 1 81 3 1 9160 9180 9190 9200 9220 9240 9250 9270 9280 9290 9300 2 1 1 66 2 2 2 1 1 4 64 9310 9340 9350 9370 9390 9400 9420 9450 9460 9500 9520 2 2 3 1 2 74 1 1 3 108 1 9530 9550 9570 9600 9601 9604 9610 9620 9630 9640 9650 1 2 1 271 2 1 1 1 1 2 1 9660 9670 9680 9690 9700 9701 9710 9750 9760 9770 9780 1 1 1 3 62 1 1 3 1 1 2 9790 9800 9810 9840 9860 9870 9880 9900 9904 9910 9940 2 99 2 1 1 1 1 58 1 1 1 9950 9980 10000 10001 10004 10010 10011 10020 10030 10050 10060 1 2 855 1 2 2 1 2 3 1 1 10070 10100 10110 10130 10150 10190 10200 10201 10210 10220 10240 1 64 1 1 3 1 87 1 2 1 3 10250 10280 10290 10300 10304 10310 10380 10390 10400 10404 10410 5 1 1 67 1 1 1 1 90 1 1 10420 10430 10440 10450 10490 10500 10510 10530 10540 10550 10570 1 3 2 3 1 99 1 1 1 2 1 10590 10600 10601 10610 10650 10670 10690 10700 10710 10720 10730 1 53 2 1 1 1 1 82 2 1 1 10740 10750 10760 10800 10810 10820 10830 10850 10860 10900 10910 2 1 1 182 1 2 1 2 1 66 1 10940 10950 10990 11000 11004 11020 11040 11060 11070 11090 11100 1 1 1 291 1 1 3 1 1 1 58 11120 11150 11160 11170 11200 11204 11210 11240 11280 11300 11330 1 1 2 2 77 1 1 1 1 67 1 11350 11370 11390 11400 11430 11440 11450 11500 11501 11510 11530 1 1 1 79 1 1 2 90 1 1 1 11560 11600 11601 11620 11650 11690 11700 11730 11790 11800 11820 1 55 1 1 2 1 56 2 3 62 1 11900 11904 11920 11940 11950 12000 12001 12004 12010 12020 12040 56 1 1 1 2 1140 3 2 4 4 2 12050 12080 12100 12150 12160 12200 12210 12220 12240 12250 12280 2 1 58 2 1 63 1 3 1 1 1 12290 12300 12330 12350 12400 12401 12450 12460 12480 12500 12501 1 57 2 1 57 1 1 1 2 127 1 12504 12520 12530 12540 12550 12590 12600 12620 12630 12690 12700 1 1 2 1 2 1 82 1 1 1 35 12730 12760 12780 12800 12830 12850 12900 12910 12930 12940 12950 1 1 2 59 1 1 40 1 1 1 2 12960 12980 13000 13004 13020 13040 13050 13060 13100 13101 13120 1 1 400 2 3 1 2 1 48 1 1 13130 13140 13160 13190 13200 13204 13210 13230 13240 13250 13280 1 1 1 1 140 3 1 1 1 1 1 13300 13310 13340 13360 13380 13400 13420 13430 13440 13450 13500 77 3 1 2 2 54 1 1 1 1 89 13560 13600 13650 13670 13690 13700 13701 13720 13730 13750 13780 2 63 3 1 1 55 1 1 1 1 1 13790 13800 13830 13900 13901 13904 13910 13940 13950 13960 13980 1 58 1 42 1 1 1 1 1 2 3 14000 14004 14020 14030 14050 14070 14100 14120 14150 14160 14170 435 1 2 1 1 2 47 1 2 1 1 14180 14200 14201 14210 14230 14250 14280 14290 14300 14310 14350 2 57 1 1 1 2 1 1 48 1 4 14370 14390 14400 14410 14430 14440 14460 14490 14500 14501 14540 1 1 252 2 1 1 1 1 81 1 1 14580 14590 14600 14610 14620 14630 14650 14660 14670 14680 14700 1 1 50 2 2 1 1 1 1 1 60 14740 14800 14840 14850 14900 14910 14920 14930 14950 14960 15000 1 53 1 1 50 1 2 1 1 1 856 15001 15004 15010 15020 15030 15040 15050 15060 15090 15100 15120 1 1 1 3 2 1 2 1 1 37 1 15130 15140 15150 15200 15210 15220 15230 15260 15300 15301 15310 1 1 1 52 1 1 1 1 41 1 1 15320 15330 15350 15390 15400 15410 15420 15440 15450 15460 15480 1 1 3 1 51 1 1 2 1 1 1 15500 15501 15510 15520 15530 15540 15550 15580 15600 15601 15650 60 1 1 2 2 2 1 3 187 1 4 15700 15704 15750 15790 15800 15830 15840 15850 15890 15900 15920 35 1 1 1 46 1 1 1 1 38 2 15930 15940 15950 16000 16001 16020 16100 16120 16140 16190 16200 2 1 2 435 1 5 42 1 3 1 66 16240 16260 16270 16300 16304 16320 16330 16340 16350 16400 16430 1 1 1 48 1 1 2 1 2 38 2 16460 16500 16520 16530 16550 16560 16600 16620 16650 16670 16690 1 72 2 1 1 1 68 1 1 1 1 16700 16704 16720 16730 16790 16800 16810 16830 16850 16880 16900 46 1 1 1 1 151 1 1 1 1 44 16901 16930 16990 17000 17001 17004 17020 17040 17050 17070 17100 2 2 1 332 1 1 1 1 1 1 53 17150 17160 17180 17200 17230 17240 17250 17260 17300 17320 17330 2 1 1 48 1 1 3 2 51 1 1 17360 17400 17450 17460 17500 17501 17504 17520 17550 17590 17600 1 55 2 1 76 1 1 1 1 1 51 17610 17650 17700 17720 17730 17740 17760 17780 17790 17800 17830 1 2 31 2 1 1 1 1 1 47 2 17900 17904 17950 17980 18000 18010 18020 18040 18050 18080 18090 37 1 1 1 718 1 3 1 2 1 1 18100 18110 18120 18130 18140 18150 18200 18201 18230 18250 18300 29 1 2 2 1 1 63 1 1 1 44 18304 18310 18360 18400 18430 18480 18490 18500 18510 18520 18530 1 1 2 56 1 3 1 70 2 1 1 18560 18600 18610 18680 18700 18710 18780 18800 18810 18820 1 52 1 2 59 1 2 42 1 1 [ reached getOption("max.print") -- omitted 3460 entries ] ``` ] ] .panel[.panel-name[c.处理办法] - age取值等于0,则转换为缺失值`NA` - income取值小于0,则转换为缺失值`NA`
] ] --- ### (税收案例)数据清洗问题——存在缺失值 .panelset[ .panel[.panel-name[a.简单删除法] 处理缺失值最简单粗暴的办法就是直接删除行或列,但是这样也会直接去掉很多样本信息: - 行删除(row delete) - 列删除(column delete) <img src="../pic/chpt03-removingNAs.png" width="1315" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.填加标签法] .pull-left[ 对于**分类变量**的缺失值,可以直接加一个特定标签(level)。 ] .pull-right[ <img src="../pic/chpt03-missingCats.png" width="991" height="400px" style="display: block; margin: auto;" /> ] ] .panel[.panel-name[c.数值替换法] .pull-left[ 对于**数值型变量**的缺失值,可以给缺失值进行**补值**: - 用均值代替 - 使用各种插值办法 补值后,一定要记得新增加1个变量,指明哪些样本进行了补值操作! ] .pull-right[ <img src="../pic/chpt03-addIsBad.png" width="1136" height="400px" style="display: block; margin: auto;" /> ] ] ] --- ### (税收案例)数据清洗问题——R补值工具 .panelset[ .panel[.panel-name[a.处理前变量] 处理前数据集`customer_data`的变量: ``` [1] "id" "custid" [3] "sex" "is_employed" [5] "income" "marital_status" [7] "health_ins" "housing_type" [9] "recent_move" "num_vehicles" [11] "age" "state_of_res" [13] "gas_usage" "gas_with_rent" [15] "gas_with_electricity" "no_gas_bill" [17] "gas_usage_new" "age_new" [19] "income_new" ``` ] .panel[.panel-name[b.处理后变量] 采用`R`包`vtreat`进行自动补值后新数据集`training_prepared`的变量: .scroll-box-16[ ``` [1] "custid" "health_ins" [3] "id" "sex" [5] "is_employed" "is_employed_isBAD" [7] "income" "marital_status" [9] "housing_type" "recent_move" [11] "recent_move_isBAD" "num_vehicles" [13] "num_vehicles_isBAD" "age" [15] "state_of_res" "gas_usage" [17] "gas_usage_isBAD" "gas_with_rent" [19] "gas_with_rent_isBAD" "gas_with_electricity" [21] "gas_with_electricity_isBAD" "no_gas_bill" [23] "no_gas_bill_isBAD" "gas_usage_new" [25] "gas_usage_new_isBAD" "age_new" [27] "age_new_isBAD" "income_new" ``` ] ] <!---end panel 3---> .panel[.panel-name[c.处理前数据] **处理前**的数据缺失情况(4个变量,前6行):
] .panel[.panel-name[d.处理后数据] 补值工具**处理后**的数据补齐情况(前6行):
] ] --- ### (税收案例)数据变换 数据变换主要目的是为让数据能更适合于建模分析(modeling)。 主要变换操作包括: - 中位数(median)变换 - 均值(mean)变换 - 对数化(log)变换 `\(ln(X_i)\)`: - 标准化(sd)变换 `\(\frac{(X_i -\bar{X})}{S_{X}}\)` - 把**连续变量**转换为**离散变量** --- ### (税收案例)数据变换:原始收入变量 假设我们还有51个州的**收入的中位数**数据集(`median_income_table`):
--- ### (税收案例)数据变换:收入变量的中位数变换 .panelset[ .panel[.panel-name[a.变换公式] 现在我们可以,通过如下步骤进行收入的**中位数**变换: - 把收入的州数据集(`median_income_table`)与前面的案例数据集(`training_prepared`)匹配起来 - 对收入进行中位数变换 `\(income\_normalized =\frac{income_i}{median\_income}\)`。 ] .panel[.panel-name[b.R计算过程] 下面展示的是用`R`软件进行前述的匹配和计算过程: ```r mean_income <- round(mean(training_prepared$income, na.rm = T),2) sd_income <- round(sd(training_prepared$income, na.rm = T),2) training_prepared <- training_prepared %>% * left_join(., median_income_table, by="state_of_res") %>% * mutate(income_byMedian = income/median_income, income_byMean = income/mean_income, income_bySd = (income- mean_income)/sd_income, income_byLog10 =log10(income)) ``` ] .panel[.panel-name[c.变换结果] 最终得到收入的**中位数**变换结果:
] ] --- ### (税收案例)数据变换:收入变量的均值变换 .panelset[ .panel[.panel-name[a.变换公式] 现在我们可以,通过如下步骤进行收入的均值变换: - 对收入进行中位数变换 `\(income\_byMean =\frac{income_i}{\overline{income}}\)`。 ] .panel[.panel-name[b.R计算过程] 下面展示的是用`R`计算过程: ```r mean_income <- round(mean(training_prepared$income, na.rm = T),2) sd_income <- round(sd(training_prepared$income, na.rm = T),2) training_prepared <- training_prepared %>% left_join(., median_income_table, by="state_of_res") %>% mutate(income_byMedian = income/median_income, * income_byMean = income/mean_income, income_bySd = (income- mean_income)/sd_income, income_byLog10 =log10(income)) ``` ] .panel[.panel-name[c.变换结果] 最终得到收入的**均值变换**结果:
] ] --- ### (税收案例)数据变换:收入变量的标准化变换 .panelset[ .panel[.panel-name[a.变换公式] 现在我们可以,通过如下步骤进行收入的**标准化**变换: - 对收入进行标准化变换 `\(income\_bySd =\frac{income_i-\overline{income}}{sd\_income}\)`。 ] .panel[.panel-name[b.R计算过程] 下面展示的是用`R`计算过程: ```r mean_income <- round(mean(training_prepared$income, na.rm = T),2) sd_income <- round(sd(training_prepared$income, na.rm = T),2) training_prepared <- training_prepared %>% left_join(., median_income_table, by="state_of_res") %>% mutate(income_byMedian = income/median_income, income_byMean = income/mean_income, * income_bySd = (income- mean_income)/sd_income, income_byLog10 =log10(income)) ``` ] .panel[.panel-name[c.变换结果] 最终得到收入的**标准化**变换结果:
] ] --- ### (税收案例)数据变换:收入变量的对数化变换 .panelset[ .panel[.panel-name[a.变换公式] 现在我们可以,通过如下步骤进行收入的**对数化**变换: - 对收入进行**对数化**变换 `\(income\_byLog10 =log_{10}^{(income_i)}\)`。 ] .panel[.panel-name[b.R计算过程] 下面展示的是用`R`计算过程: ```r mean_income <- round(mean(training_prepared$income, na.rm = T),2) sd_income <- round(sd(training_prepared$income, na.rm = T),2) training_prepared <- training_prepared %>% left_join(., median_income_table, by="state_of_res") %>% mutate(income_byMedian = income/median_income, income_byMean = income/mean_income, income_bySd = (income- mean_income)/sd_income, * income_byLog10 =log10(income)) ``` ] .panel[.panel-name[c.变换结果] 最终得到收入的**对数化**变换结果:
] ] --- ### (税收案例)数据变换:收入变换前后分布的比较 .panelset[ .panel[.panel-name[a.原变量] <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-48-1.png" alt="年收入的直方图" /> <p class="caption">年收入的直方图</p> </div> ] .panel[.panel-name[b.中位数变换] <img src="03-visualization_files/figure-html/unnamed-chunk-49-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[c.均值变换] <img src="03-visualization_files/figure-html/unnamed-chunk-50-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[d.标准化] <img src="03-visualization_files/figure-html/unnamed-chunk-51-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[e.对数化] <img src="03-visualization_files/figure-html/unnamed-chunk-52-1.png" style="display: block; margin: auto;" /> ] ] --- ### (税收案例)数据变换:批量标准化处理 .panelset[ .panel[.panel-name[a.编写R代码] 对于数据集的数值型变量(`age`,`income`,`num_veicles`,`gas_usage`),我们可以同时进行批量**标准化**变换。从而为下一步建模分析做准备。 如下是利用`R`软件函数`scale()`进行批量标准化处理的代码: ```r dataf <- training_prepared[, c("age", "income", "num_vehicles", "gas_usage")] *dataf_scaled <- scale(dataf, center=TRUE, scale=TRUE) ``` ] .panel[.panel-name[b.原数据集]
] .panel[.panel-name[c.批处理后数据集]
] ] --- ### (税收案例)数据变换:批量变换为分类变量 .panelset[ .panel[.panel-name[a.编写R代码] 我们还可以把**连续变量**年龄(`age`),变换为**分类变量**(`age_range`和`age_cat`)。其中分割依据为`brks <- c(0, 18, 45, 65, Inf)`。 ```r *brks <- c(0, 18,45, 65, Inf) training_prepared <- training_prepared %>% select(id, age) %>% filter(!is.na(age)) %>% * mutate(age_range = cut(age, breaks = brks, include.lowest = T), * age_cat = cut(age, breaks = brks, include.lowest = T, labels = FALSE)) ``` ] .panel[.panel-name[b.变换结果]
] ] --- ### 数据子集:概念 **数据子集**(data subset)是对数据集进行抽样(sampling)的过程,形成的数据子集一般用于后续的建模分析。 - 训练集(training subset):主要用于参数估计,得到一个最终估计模型。 - 测试集(test subset):主要用于对估计模型的预测准确性进行评估。 --- ### 数据子集:训练集和测试集 <img src="../pic/chpt03-test_train_split.png" width="889" style="display: block; margin: auto;" /> --- ### (税收案例)数据子集:设置子集样本数量 .panelset[ .panel[.panel-name[a.子集样本数] 对全部数据集`custom_data`(样本数n=73262),我们可以生成名为`gp`的新列,采用[0,1]的**均匀随机分布**(uniform distribution),对应的R函数为`runif(n)` 假定我们希望数据子集的容量分别为: - **训练集**样本数 `\(n_{train} =\)` 90% X 73262 =65421个。 - **测试集**样本数 `\(n_{test} =\)` 10% X 73262 =7841个。 ] .panel[.panel-name[b.编写R代码] ```r set.seed(25643) customer_data <- customer_data %>% * mutate(gp =round(runif(nrow(.)),2)) pct <- 0.1 customer_test <- subset(customer_data, gp <= pct) customer_train <- subset(customer_data, gp > pct) n_all <- nrow(customer_data) n_test <- nrow(customer_test) n_train <- nrow(customer_train) ``` ] ] --- ### (税收案例)数据子集:比较三个数据集 .panelset[ .panel[.panel-name[a.全部数据集]
] .panel[.panel-name[b.训练数据集]
] .panel[.panel-name[c.测试数据集]
] ] --- ### (税收案例)数据子集:等比例随机抽取 .panelset[ .panel[.panel-name[a.抽取规则] 下面我们随机抽取数据集的10%作为子集,其中要求按所在州(`state_of_res`)来等比例分配: ```r vars_sel <- c("id","state_of_res","age", "sex","income") spl_state <- customer_data %>% select(one_of(vars_sel)) %>% * group_by(state_of_res) %>% * sample_frac(0.1) %>% arrange(id) ``` ] .panel[.panel-name[b.抽取结果]
] .panel[.panel-name[c.按州**抽取**前]
] .panel[.panel-name[d.按州**抽取**后]
] ] --- layout: false class: center, middle, duke-softblue,hide_logo name: quality # 3.2 品质数据的整理与展示 ### 分类数据的整理与图示 ### 顺序数据的整理与图示 --- layout: true <div class="my-header-h2"></div> <div class="watermark1"></div> <div class="watermark2"></div> <div class="watermark3"></div> <div class="my-footer"><span>huhuaping@    <a href="#chapter02"> 第03章 数据的图表展示 </a>                       <a href="#quality"> 3.2 品质数据的整理与展示 </a> </span></div> --- ## 分类数据:整理与图示的基本过程 - 列出各类别 - 分类数据的整理与图示 - 制作频数分布表 - 用图形显示数据 --- ## 分类数据:计算统计量并制表 - 频数(frequency) :落在各类别中的数据个数 - 比例(proportion):某一类别数据个数占全部数据个数的比值 - 百分比(percentage) :将对比的基数作为100而计算的比值 - 比率(ratio) :不同类别数值个数的比值 --- exclude: true ## 案例:饮料销售 --- ### (案例)饮料销售 .panelset[ .panel[.panel-name[a.案例说明] **案例**:一家市场调查公司为研究不同品牌饮料的市场占有率,对随机抽取的一家超市进行了调查。 调查员在某天对50名顾客购买饮料的品牌进行了记录,如果一个顾客购买某一品牌的饮料,就将这一饮料的品牌名字记录一次。 ] .panel[.panel-name[b.原始数据] 下边就是记录的原始数据:
] ] --- ### (案例)饮料销售:单变量制表(饮料类别) .panelset[ .panel[.panel-name[a.类别分组] 根据原始数据,我们可以整理并列出所有饮料类别:
] .panel[.panel-name[b.频次表] 统计得到各饮料类别的购买人数(频次):
] .panel[.panel-name[c.频率表] 进一步统计得到各饮料类别的购买人数占比(频率):
] ] --- ### (案例)饮料销售:双变量制表(饮料类别VS性别) .panelset[ .panel[.panel-name[a.交叉分组] 根据原始数据,我们可以对饮料类别和性别进行交叉分组:
] .panel[.panel-name[b.频次表] 统计得到交叉分组下的购买人数(频次):
] .panel[.panel-name[c1.列频率表] 进一步统计得到交叉分组下购买人数占比(频率)及其**列合计**:
] .panel[.panel-name[c2.行频率表] 同时,也可统计得到交叉分组下购买人数占比(频率)及其**行合计**:
] .panel[.panel-name[d.复合表] 最后,还可以同时统计交叉分组的人数和占比(列合计):
] ] --- ## 分类数据:统计制图1(条形/柱状图) **条形/柱状图**:用宽度相同的条形的高度或长短来表示各类别数据的图形。 - 各类别可以放在纵轴,称为**条形图**(bar Chart) - 各类别也可以放在横轴,称为**柱形图**(column chart) **作用**:主要用于反映分类数据的频数分布。 **形式**:单式条形图/复式条形图。 .footnote[复式条形图主要用于: - 分类变量在不同时间或不同空间上有多个取值 - 对比分类变量的取值在不同时间或不同空间上的差异或变化趋势] --- ### (案例)饮料销售:单变量柱状图/条形图 .left-column[ #### a.柱状图 ] .right-column[ 根据饮料类型购买次数的数据表,我们可以绘制出如下**柱状图**: <img src="03-visualization_files/figure-html/unnamed-chunk-77-1.png" style="display: block; margin: auto;" /> ] --- ### (案例)饮料销售:单变量柱状图/条形图 .left-column[ #### a.柱状图 #### b.条形图 ] .right-column[ 根据饮料类型购买次数的数据表,还可以绘制出如下**条形图**: <img src="03-visualization_files/figure-html/unnamed-chunk-78-1.png" style="display: block; margin: auto;" /> ] --- ### (案例)饮料销售:多变量柱状图/条形图 .left-column[ #### a.双变量柱状图 ] .right-column[ 根据饮料类型(brand)和性别(gender)交叉分组下的购买次数表,可以绘制出如下**柱状图**: <img src="03-visualization_files/figure-html/unnamed-chunk-79-1.png" style="display: block; margin: auto;" /> ] --- ### (案例)饮料销售:多变量柱状图/条形图 .left-column[ #### a.双变量柱状图 #### b.双变量条形图 ] .right-column[ 根据饮料类型(brand)和性别(gender)交叉分组下的购买次数表,可以绘制出如下**条形图**: <img src="03-visualization_files/figure-html/unnamed-chunk-80-1.png" style="display: block; margin: auto;" /> ] --- ## 分类数据:统计制图1(条形/柱状图) 思考:什么时候适合使用柱状图?什么时候适合使用条形图? <div class="notes"> <p>待完成:找到新数据,绘制一张条形图,但其不适合制作柱状图。</p> </div> --- ## 分类数据:统计制图2(饼图) **饼图**(pie Chart):也称圆形图,是用圆形及圆内扇形的角度来表示数值大小的图形。 **用途**:用于表示样本或总体中各组成部分所占的比例,用于研究结构性问题。 **绘制要点**: - 样本或总体中各部分所占的频次/百分比用圆内的各个扇形角度表示。 - 扇形块的中心角度,进行**极坐标变换**(按各部分数据占比乘以3600确定)。 - 排列顺序、标签值显示。 --- ### (案例)饮料销售:绘制饼图(频次1) .left-column[ #### a.次数饼图1 ] .right-column[ 根据分配数据表,我们可以绘制出如下**次数**饼图: <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-83-1.png" alt="图a.饮料销售量分布(有图例)" /> <p class="caption">图a.饮料销售量分布(有图例)</p> </div> ] --- ### (案例)饮料销售:绘制饼图(频次2) .left-column[ #### a.次数饼图1 #### b.次数饼图2 ] .right-column[ 可以进一步调整**次数**饼图的图例和标签数值显示: <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-84-1.png" alt="图b.饮料销售量分布(无图例)" /> <p class="caption">图b.饮料销售量分布(无图例)</p> </div> ] --- ### (案例)饮料销售:绘制饼图(占比) .left-column[ #### a.次数饼图1 #### b.次数饼图2 #### c.占比饼图1 ] .right-column[ 可以进一步调整**占比**饼图的图例和标签数值显示: <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-85-1.png" alt="图c.饮料销售占比(有图例)" /> <p class="caption">图c.饮料销售占比(有图例)</p> </div> ] --- ### (案例)饮料销售:绘制饼图(占比2) .left-column[ #### a.次数饼图1 #### b.次数饼图2 #### c.占比饼图1 #### d.占比饼图2 ] .right-column[ 根据分配数据表,我们可以绘制出如下**次数**饼图: <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-86-1.png" alt="图d.饮料销售占比(无图例)" /> <p class="caption">图d.饮料销售占比(无图例)</p> </div> ] --- ## 顺序数据:统计量和图表 对于顺序型分组(上小下大)数据,主要的统计指标包括: - **累积频数**(cumulative frequencies):各类别频数的逐级累加。 - **累积频率**(cumulative percentages):各类别频率(百分比)的逐级累加。 对于以上累积统计指标,又分别包括: - **较小制累积**(频数/频率):又称为向上累积或以下累积,本组及以下次数/频率的逐级累加。 - **较大制累积**(频数/频率):又称为向下累积或以上累积,本组及以上次数/频率的逐级累加。 制表和绘图分别有: - 累积频数/频率表等 - 累积频数/频率图、环形图等 --- exclude: true ### (案例)住房满意度:原始数据 ``` Warning in rep(c("甲城市", "乙城市"), each = c(sum(reps), sum(reps2))): first element used of 'each' argument ``` --- ### (案例)住房满意度:案例数据 .panelset[ .panel[.panel-name[1)案例说明] **案例说明**:在一项城市住房满意度问题的研究中,研究人员在甲城市抽样调查300家庭户,其中的一个问题是: .large[ ``` 您对您家庭目前的住房状况是否满意? 1.非常不满意;2.不满意;3.一般;4.满意;5.非常满意 ``` ] ] .panel[.panel-name[2)案例数据表] 下边就是收集到的不同满意度评价水平的频次和频率数据表:
] ] --- ### (案例)住房满意度:计算统计量并制表 .panelset[ .panel[.panel-name[1)较小制累积表] 我们可以计算得到**较小制**下的累积频次和频率,并制表:
] .panel[.panel-name[2)较大制累积表] 我们也可以计算得到**较大制**下的累积频次和频率,并制表:
] .panel[.panel-name[3)较小制和较大制对比] 我们可以对比观测**较小制**和**较大制**下的累积频次和频率:
] ] --- ### (案例)住房满意度:绘制累计频次/频率图 .panelset[ .panel[.panel-name[1)较小累积频次] <img src="03-visualization_files/figure-html/unnamed-chunk-92-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[2)较小累积频率] <img src="03-visualization_files/figure-html/unnamed-chunk-93-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[3)较大累积频次] <img src="03-visualization_files/figure-html/unnamed-chunk-94-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[4)较大累积频率] <img src="03-visualization_files/figure-html/unnamed-chunk-95-1.png" style="display: block; margin: auto;" /> ] ] --- exclude: true ### my ggplot theme 参考: - [Changing fonts in ggplot2](https://stackoverflow.com/questions/34522732/changing-fonts-in-ggplot2) - `extrafont` pkg [on github](https://github.com/wch/extrafont) --- exclude: true ### test chart <img src="03-visualization_files/figure-html/unnamed-chunk-99-1.png" style="display: block; margin: auto;" /> --- ### (案例)住房满意度:绘制环形图 **环形图**(doughnut chart):环形图中间有一个“空洞”,样本或总体中的每一部分数据用环中的一段表示。 **用途**:用于结构比较研究;用于展示分类和顺序数据。 与饼图的联系与区别: - 饼图只能显示一个总体各部分所占的比例。 - 环形图则可以同时绘制多个样本或总体的数据系列,每一个样本或总体的数据系列为一个环。 --- ### (案例)住房满意度:绘制环形图 .panelset[ .panel[.panel-name[1)补充数据] **案例说明**:继续前述甲城市满意度的研究,为了综合比较城市家庭满意度。研究者继续收集并获得了乙城市家庭的满意度评价数据。甲乙两个城市的家庭住户满意度数据如下表所示:
] .panel[.panel-name[2)甲城市] <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-102-1.png" alt="图a.甲城市评价分布" height="90%" /> <p class="caption">图a.甲城市评价分布</p> </div> ] .panel[.panel-name[3)乙城市] <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-103-1.png" alt="图b.乙城市评价分布" height="90%" /> <p class="caption">图b.乙城市评价分布</p> </div> ] .panel[.panel-name[4)两个城市] <!---我们可以将甲乙两个城市进行综合对比,绘制环形图:---> <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-104-1.png" alt="图c.两个城市评价分布对比" height="90%" /> <p class="caption">图c.两个城市评价分布对比</p> </div> ] ] ??? 绘图参考: - [Creating a multiple pie/donut chart](https://biostats.w.uib.no/creating-a-multiple-pie-donut-chart/) --- layout: false class: center, middle, duke-softblue ,hide_logo name: quantity # 3.3 数值型数据的整理与展示 ### 数据分组的图表展示 ### 数据未分组的图表展示 ### 统计报表的设计 --- layout: true <div class="my-header-h2"></div> <div class="watermark1"></div> <div class="watermark2"></div> <div class="watermark3"></div> <div class="my-footer"><span>huhuaping@    <a href="#chapter02"> 第03章 数据的图表展示 </a>                       <a href="#quantity"> 3.3 数值型数据的整理与展示 </a> </span></div> --- ## 数据分组:概念和作用 **数据分组**:把同质总体中的具有不同特点的单位分开,从而正确地认识事物的本质及其规律性。 **数据分组的作用**: - 类型分组:揭露社会经济现象的类型,反映各类型的特点。 - 结构分组:说明社会经济现象的内部结构。 - 分析分组:研究经济现象之间的依存关系。 --- ## 数据分组:选择分组标志 选择分组标志的**原则**: - 科学性 - 完备性 - 互斥性 选择分组标志的**方法**: - 根据研究问题的目的来选择。 - 要选择最能反映被研究现象本质特征的标志。 - 要结合现象所处的具体历史条件或经济条件来选择。 --- ## 数据分组:数据分组类型 **A.按分组标志的特征分**: - 品质标志分组:反映事物属性差异 - 简单分组:如人口按性别分组。 - 复杂分组:如人口按职业分组。 - 数量标志分组:反映事物数量差异 - 单项式数量分组:运用于变量变动幅度小、项目少的分组。 - 组距式分组:运用于变量变动幅度大、项目多的分组。 **B.按总体所选择标志的个数分**: - 单一分组:按一个标志对总体进行分组。 - 复合分组:按两个或两个以上标志对同一总体进行分组。 --- exclude: true ## 案例:多种分组 --- ### (示例)数据分组类型:按标志特征分组1 .panelset[ .panel[.panel-name[1)品质-简单分组]
] .panel[.panel-name[2)品质-复杂分组]
] ] --- ### (示例)数据分组类型:按标志特征分组2 .panelset[ .panel[.panel-name[3)数量-单项式分组]
] .panel[.panel-name[4)数量-组距分组]
] ] --- ### (示例)数据分组类型:按标志个数分组 .panelset[ .panel[.panel-name[1)单一分组] .fl.w-third.pa2[
] -- .fl.w-third.pa2[
] -- .fl.w-third.pa2[
] ] .panel[.panel-name[2)复合分组]
] ] --- ## 分配数列:概念和类型 **分配数列**:统计总体按照某一标志分组以后,用以反映总体各单位分配情况的统计数列,称为分配数列,又可称次数分配或次数分布。 - **品质型分配数列**。 - **数值型分配数列**。根据分组情况,具体又分为: - **单项变量数列**:按每个变量值分别列组编制数列。适用于不连续变量或变量能以整数表示,其变动范围不大时。 - **组距变量数列**:按组距分组编制数列。适用于连续变量或变量可用小数表示,其变动范围。 --- ### (示例)分配数列的类型:数值型分配数列 .panelset[ .panel[.panel-name[1)单项式分配数列]
] .panel[.panel-name[2)组距式分配数列]
] ] --- ## 组距式数据分组:类型 根据分组是否开口以及是否等距,组距式分配数列可以分为如下类型: - 按两端组是否开口分: - **开口式分组**:最小组与最大组不封口。 - **闭口式分组**:所有组都有明确上限和下限。 - 按组距是否为等距分: - **等距式分组**:所有分组的组距全部相等。 - **异距式分组**:各个分组组距不是完全相等。 --- ### (示例)组距式分配数列的类型 .panelset[ .panel[.panel-name[1)闭口-等距]
] .panel[.panel-name[2)开口-异矩]
] ] --- ## 组距式数据分组:重要概念 关于组距式分配数列,我们需要掌握如下重要概念: - **组数(bins)**:数据分组的总组数。 - **组限(limits)**:组距两端的数值。分为上限和下限。 a. **下限(lower limit)** :一个组的最小值。 b. **上限(upper limit)** :一个组的最大值。 - **组距(width)** :某组的上限与下限之差。 - **组中值(class midpoint) **:某组的下限与上限之间的中点值 - **全距(range)**:整个分组数列中,最大组**上限**与最小组**下限**之差。 - **最大组/最小组**:整个分组数列中,分组标志数值最大/最小的那一组。 --- ## 组距式数据分组:分组步骤 组距式数据分组的主要步骤包括: - 确定组数:组数的确定应以能够显示数据的分布特征和规律为目的。在实际分组时,组数一般为 `\(5\leq K \leq 15\)`。 - 确定组距:组距是一个组的上限与下限之差,可根据全部数据的最大值和最小值及所分的组数来确定。例如, `\(组距=\frac{(最大值 - 最小值)}{组数}\)` - 确定组限。对于连续变量分组,各组之间的组限也要连续。对于不连续变量分组,组与组之间的组限往往是间断的。此外,在同一个组距数列中,组限标准保持一致。 - 统计出各组的频数并整理成频数分布表。在登记次数时,应遵守: - 上组限不在内:适用于越大越好的变量,如产值。 - 下组限不在内:适用于越小越好的变量,如成本。 --- ## 组距式数据分组:组中值的计算 组中值的计算,需要考虑分组是否开口: - 闭口式分组的组中值求法: `$$\begin{align} \text{组中值} = \frac{\text{组上限}+\text{组下限}}{2} &= 组下限 + \frac{\text{组上限}-\text{组下限}}{2} \\ &= 组上限 - \frac{\text{组上限}-\text{组下限}}{2} \end{align}$$` - 开口式分组的组中值求法: `$$\begin{align} \text{下开口组的组中值} &= 组上限 - \frac{\text{邻组组距}}{2}\\ \text{上开口组的组中值} &= 组下限 + \frac{\text{邻组组距}}{2} \end{align}$$` --- exclude:true ## (案例)学生考试成绩 --- ### (案例)学生考试成绩:原始数据 **案例说明**:某班级共有40名学生,在《统计学原理》课程考试中成绩如下: ``` s01 s02 s03 s04 s05 s06 s07 s08 s09 s10 s11 s12 s13 s14 s15 s16 s17 63 88 72 69 80 80 61 68 79 81 76 76 77 78 90 89 61 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 84 92 67 65 57 62 60 66 87 80 92 78 86 71 71 63 74 s35 s36 s37 s38 s39 s40 67 70 91 64 79 65 ``` --- ### (案例)学生考试成绩:组距式分组操作1 假定采用**等距-闭口**分组方法,且设定分组数量为5,组距为10。 利用原始数据,进行分组得到如下结果:
--- ### (案例)学生考试成绩:组距式分组操作2 .pull-left[ 以前述**考试成绩**案例分组数据为例,相关概念包括(见下表): - **组数(bins)**为5 - **组距(width)** 为10 - **全距(range)**为50(注意原始数据的全距) - 最小组和最大组分别为第1组和第5组 - 下限、上限、组距和组中值分别见右表 ] .pull-right[ **分组数据表**:
] --- ## 组距式数据分组:异矩情形 在**异矩分组**下,我们需要进一步计算各组的**组密度**以及**标准组距分布**: `$$\begin{align} \text{次数密度} &= \frac{\text{各组次数}}{各组组距}\\ \text{频率密度} &= \frac{\text{各组频率}}{各组组距} \end{align}$$` `$$\begin{align} \text{标准组距次数分布} &= \frac{\text{各组次数}}{标准化组距}\\ \text{标准组距频率分布} &= \frac{\text{各组频率}}{标准化组距} \end{align}$$` --- exclude: true ### (案例)学生考试成绩:异矩分组 --- ### (案例)学生考试成绩:异矩分组情形 继续前述**考试成绩**案例,如果分组时不小心处理成了如下异矩分组:
--- ### (案例)学生考试成绩:异矩分组统计量 在异矩分组情形下,**频次密度**和**标准组距频次**计算如下:
--- ## 数据分组:统计制表(类型) 对分组数据进行统计制表,也即用统计表来表示次数/频率等统计量在各组的分布情况,主要包括。 .panelset[ .panel[.panel-name[1)制表类型A] - **频数表**/**百分数表**(已经展示,见前面slide) ] .panel[.panel-name[2)制表类型B] **累计次数表**/**累计百分数表**。复习之前的定义,具体为: - 较小制累计(以下累计、向上累计):即(上限)以下累计次数,每一组的累计次数表示小于该组上限(变量)值的次数/频率共有多少。 - 较大制累计(以上累计、向下累计):即(下限)以上累计次数:每一组的累计次数表示大于该组下限(变量)值的次数/频率共有多少。 ] .panel[.panel-name[3)制表类型C] **交叉分析表**,又称为**交叉列联表**(cross-table),是对复合式分组数列的频数或频率统计,便于对两个或多个分组标志(分组变量)关系的直接观察。 数据交叉形式可以是: - 品质变量VS品质变量 - 品质变量VS数值变量(较少用*) - 数值变量VS数值变量(较少用*) ] ] --- ### (案例)学生考试成绩:累积次数/频率表 对于等距式分组情形,我们可以分别计算出较小/较大累计次数/频率: .panelset[ .panel[.panel-name[1)较小制累积表] 我们可以计算得到**较小制**下的累积频次和频率,并制表:
] .panel[.panel-name[2)较大制累积表] 我们也可以计算得到**较大制**下的累积频次和频率,并制表:
] .panel[.panel-name[3)较小制和较大制对比] 我们可以对比观测**较小制**和**较大制**下的累积频次和频率:
] ] --- ### (案例)学生考试成绩:等距分组的交叉分析表 .panelset[ .panel[.panel-name[a.性别信息] 对于前述**学生考试成绩**案例,研究者还收集了40名学生的性别信息(见下表)。
] .panel[.panel-name[b.交叉列表] 此时,可以根据需要绘制出性别变量与成绩分组的**交叉分析表**(列联表):
] ] --- exclude: true ### (示例)普森悖论交叉表 **普森悖论**(Simpson's paradox):在有些情形中,依据从综合的交叉列联表中得出的结论可能与依据未综合数据得出的结论截然相反。这一现象就是著名的辛普森悖论。 <div class="notes"> <p>待完成:</p> <p>case of Verdict between Kendall and Luckett. <a href="https://www.britannica.com/topic/Simpsons-paradox">see link</a></p> <p>Simpson’s Paradox: Two HR examples with R code. <a href="https://paulvanderlaken.com/2017/09/27/simpsons-paradox-two-hr-examples-with-r-code/">see link</a></p> </div> --- ## 数据分组:统计制图 分组数列的图示方法,也即用统计图形来表示频数/频率在各组的分布情况,主要包括的图形类型有: a. **条形/柱状图**[已讲,见前面slide] b. **折线图**(line chart) c. **累积频次/频率图**(cumulative chart) --- ### (案例)学生考试成绩:绘制柱状图/折线图 .panelset[ .panel[.panel-name[1)柱状图] <img src="03-visualization_files/figure-html/unnamed-chunk-128-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[2)折线图] <img src="03-visualization_files/figure-html/unnamed-chunk-129-1.png" style="display: block; margin: auto;" /> ] ] --- ### (案例)学生考试成绩:绘制累计频次/频率图 .panelset[ .panel[.panel-name[1)较小累积频次] <img src="03-visualization_files/figure-html/unnamed-chunk-130-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[2)较小累积频率] <img src="03-visualization_files/figure-html/unnamed-chunk-131-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[3)较大累积频次] <img src="03-visualization_files/figure-html/unnamed-chunk-132-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[4)较大累积频率] <img src="03-visualization_files/figure-html/unnamed-chunk-133-1.png" style="display: block; margin: auto;" /> ] ] --- ## 数据未分组:统计制图1(茎叶图) **茎叶图(stem and leaf diagrams)**:用于显示未分组的原始数据的分布。 由“茎”和“叶”两部分构成,其图形是由数字组成的,以该组数据的高位数值作树茎,低位数字作树叶,树叶上只保留最后一位数字。 茎叶图与**横直方图**的区别*: - 直方图可观察一组数据的分布状况,但没有给出具体的数值。 - 茎叶图既能给出数据的分布状况,又能给出每一个原始数值,保留了原始数据的信息。 - 直方图适用于大批量数据,茎叶图适用于小批量数据。 .footnote[注释:\* 茎叶图曾经的优势(简单、可手工绘制)在今天这个计算机时代也显得并不突出,因此,除非特殊情况,建议主要使用直方图作为密度函数估计工具。[see link](https://msg-book.netlify.app/gallery.html#section-11)] --- ### (案例)学生考试成绩:绘制茎叶图 .panelset[ .panel[.panel-name[1)原始成绩单] 继续考虑之前的**学生考试成绩案例**。40名学生课程考试成绩如下: ``` s01 s02 s03 s04 s05 s06 s07 s08 s09 s10 s11 s12 s13 s14 s15 s16 s17 63 88 72 69 80 80 61 68 79 81 76 76 77 78 90 89 61 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 84 92 67 65 57 62 60 66 87 80 92 78 86 71 71 63 74 s35 s36 s37 s38 s39 s40 67 70 91 64 79 65 ``` ] .panel[.panel-name[2)按成绩排序] 我们先按成绩由低到高进行排序: ``` s22 s24 s07 s17 s23 s01 s33 s38 s21 s40 s25 s20 s35 s08 s04 s36 s31 57 60 61 61 62 63 63 64 65 65 66 67 67 68 69 70 71 s32 s03 s34 s11 s12 s13 s14 s29 s09 s39 s05 s06 s27 s10 s18 s30 s26 71 72 74 76 76 77 78 78 79 79 80 80 80 81 84 86 87 s02 s16 s15 s37 s19 s28 88 89 90 91 92 92 ``` ] .panel[.panel-name[3)制作茎叶图] ``` The decimal point is 1 digit(s) to the right of the | 5 | 7 6 | 01123345567789 7 | 011246678899 8 | 000146789 9 | 0122 ``` ] ] ??? <div class="notes"> <p>待完成:提供示例数据,并绘制茎叶图。</p> <p>Basic R Guide for NSC Statistics. <a href="https://bookdown.org/dli/rguide/stem-and-leaf-plot.html">see link</a></p> <p>R – Stem and Leaf Plots. <a href="https://www.geeksforgeeks.org/r-stem-and-leaf-plots/">see link</a></p> </div> --- ## 数据未分组:统计制图2(箱线图) **箱线图(box plot)**:用于显示未分组的原始数据的分布。由一组数据的5个特征值绘制而成,它由一个箱子和两条线段组成。箱线图也被称为Median/Quartile/Range箱线图。 绘制方法: - 首先找出一组数据的5个特征值,即最大值(Max)、最小值(Min)、中位数 `\(M_e\)`和两个四分位数(下四分位数 `\(Q_L\)`和上四分位数 `\(Q_U\)`)。 - 连接两个四分位数画出箱子,再将两个极值点与箱子相连接。 图形分类: - 单一箱线图 - 多批箱线图 --- ### (案例)学生考试成绩:绘制单一箱线图 .panelset[ .panel[.panel-name[1)原始成绩单] 继续考虑之前的**学生考试成绩案例**。40名学生课程考试成绩如下: ``` s01 s02 s03 s04 s05 s06 s07 s08 s09 s10 s11 s12 s13 s14 s15 s16 s17 63 88 72 69 80 80 61 68 79 81 76 76 77 78 90 89 61 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 84 92 67 65 57 62 60 66 87 80 92 78 86 71 71 63 74 s35 s36 s37 s38 s39 s40 67 70 91 64 79 65 ``` ] .panel[.panel-name[2)计算统计量] 我们可以先计算出箱线图的五个制表: - 中位数 `\(median = 75\)` - 极大值 `\(median = 92\)` - 极小值 `\(median = 57\)` - 四分之一位数 `\(median = 65.75\)` - 四分之三位数 `\(median = 80.25\)` ] .panel[.panel-name[3)单一箱线图] <img src="03-visualization_files/figure-html/unnamed-chunk-139-1.png" style="display: block; margin: auto;" /> ] ] --- ### (案例)学生考试成绩:绘制多批箱线图 .panelset[ .panel[.panel-name[1)原始成绩单] 同时考虑学生性别和**考试成绩**。40名学生课程考试信息如下:
] .panel[.panel-name[2)计算统计量] 我们可以根据性别分组,分别计算出箱线图的五个指标:
] .panel[.panel-name[3)多批箱线图] <img src="03-visualization_files/figure-html/unnamed-chunk-143-1.png" style="display: block; margin: auto;" /> ] ] --- ## 数据未分组:统计制图3(直方图) **直方图(histogram)**:用于展示分组数据分布的一种图形,用矩形的宽度和高度来表示频数分布。 - 本质上是用矩形的面积来表示频数分布。 - 在直角坐标中,用横轴表示数据分组,纵轴表示频数或频率,各组与相应的频数就形成了一个矩形。 直方图与柱状图的区别: - 柱状图是用柱形的高度表示各类别频数的多少,其宽度(表示类别)则是固定的。 - 直方图是用面积表示各组频数的多少,矩形的高度表示每一组的频数或百分比,宽度则表示各组的组距,其高度与宽度均有意义。 - 直方图的各矩形通常是连续排列,柱状图则是分开排列。 - 柱状图主要用于展示分类/分组数据,直方图则主要用于展示数值型数据。 --- exclude: true ## (案例)学生考试成绩:补充数据 --- ### (示例)数据未分组的制图:直方图(histogram) .panelset[ .panel[.panel-name[1)数据表] **案例说明**:某个学院共有2000名学生参加《统计学原理》课程考试,考试成绩和性别信息如下:
] .panel[.panel-name[2)数据概览]
我们再按性别分两类样本数据来看成绩情况:
] .panel[.panel-name[3)全体直方图] <img src="03-visualization_files/figure-html/unnamed-chunk-148-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[4)分组直方图] <img src="03-visualization_files/figure-html/unnamed-chunk-149-1.png" style="display: block; margin: auto;" /> ] ] --- ## 数据未分组:统计制图4(线图) **线图(line plot)**:主要用于表示时间序列数据趋势的图形。 绘制要点: - 时间一般绘在横轴,数据绘在纵轴。 - 图形的长宽比例大致为`10:7`。 - 一般情况下,纵轴数据下端应从“0”开始,以便于比较。数据与“0”之间的间距过大时,可以采取折断的符号将纵轴折断。 --- exclude: true ## (案例)新冠疫情 --- class: DT ### (案例)全球新冠疫情:数据说明 **案例说明**:研究人员收集了8个国家(US、France、Norway、Switzerland、United Kingdom、Germany、Italy、Spain),共3260条新冠疫情数据(见下表)。
--- ### (案例)全球新冠疫情:死亡率线图 为了比较各国新冠死亡率的变化趋势,绘制得到如下线图: <img src="03-visualization_files/figure-html/unnamed-chunk-153-1.png" style="display: block; margin: auto;" /> --- ## 数据未分组:统计制图5(散点图) **散点图(Scatter plots)**:展示**两个变量**之间的关系。 用横轴代表变量 `\(X_i\)`,纵轴代表变量 `\(Y_i\)`,每组数据 `\((X_i, Y_i)\)`在坐标系中用一个点表示, `\(n\)`组数据在坐标系中形成的 `\(n\)`个点称为散点,由坐标及其散点形成的二维数据图。 --- ### (案例)汽车油耗:绘制散点图 .panelset[ .panel[.panel-name[1)数据表] **案例说明**:研究人员希望了解汽车油耗的情况,收集了汽车车重、轴距、气缸数量等的数据信息(见下表):
] .panel[.panel-name[2)散点图1] <img src="03-visualization_files/figure-html/unnamed-chunk-155-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[3)散点图2] <img src="03-visualization_files/figure-html/unnamed-chunk-156-1.png" style="display: block; margin: auto;" /> ] ] --- ## 数据未分组:统计制图6(散点图) **气泡图(bubble chart)**:显示**三个变量**之间的关系, 图中数据点的大小依赖于第三个变量。 --- ### (案例)人均寿命:绘制气泡图 .panelset[ .panel[.panel-name[1)数据表] **案例说明**:下表给出了各个地区在2007年的人均寿命、人均GDP等数据。
] .panel[.panel-name[2)气泡图] <img src="03-visualization_files/figure-html/unnamed-chunk-159-1.png" style="display: block; margin: auto;" /> ] ] --- ## 数据未分组:统计制图7(雷达图) **雷达图(radar chart)**:也称为蜘蛛图(spider chart),显示**多个变量**的图示方法。 **用途**: - 在显示或对比各变量的数值总和时十分有用。 - 假定各变量的取值具有相同的正负号,总的绝对值与图形所围成的区域成正比。 - 可用于研究多个样本之间的相似程度。 --- exclude: true ## (案例)领域发展评估 --- ### (案例)领域发展评估:绘制雷达图 .panelset[ .panel[.panel-name[1)数据表] **案例说明**:下表给出了三个学生在不同领域发展的评分结果。
] .panel[.panel-name[2)雷达图1] <img src="03-visualization_files/figure-html/unnamed-chunk-163-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[3)雷达图2] <img src="03-visualization_files/figure-html/unnamed-chunk-164-1.png" style="display: block; margin: auto;" /> ] ] --- ## 数据分布形态:概述 .pull-left[ 典型分布形态: - 正态分布,也称正态曲线 - 偏态分布,或称偏态曲线 ] .pull-right[ 其他分布形态: - U型分布 - 双峰分布 - J型分布 - 反J型分布 ] <div class="notes"> <p>待完成:提供示例图形,给出代表分布类型示例。</p> </div> --- ## 数据分布形态:偏度系数 **偏度(Skewness)系数**:分布形态的一个重要衡量标准就是分布偏度。一组数据分布偏度的计算是复杂的,但使用统计软件可以很容易的计算出偏度系数。偏度系数 `\(SK\)`的理论计算公式如下: `$$\begin{align} SK = \frac{n}{(n-1)(n-2)} \sum_1^n{\left(\frac{X_i-\bar{X}}{S_X}\right)^3} \end{align}$$` > 其中: `\(n\)`表示样本数; `\(S_X\)`表示样本标准差 `\(S_X =\sqrt{\frac{\sum_1^n{(X_i- \bar{X})^2}}{n-1}}\)`。 --- ## 数据分布形态:偏度系数 - 若偏度系数 `\(SK = 0\)`,则数据分布是对称的(无偏的),此时均值 和中位数相等,也即: `\(\bar{X} = M_e\)`。 - 若偏度系数 `\(SK < 0\)`,则数据分布是非对称的(左偏的),此时均值小于中位数,也即: `\(\bar{X} < M_e\)`。 - 若偏度系数 `\(SK > 0\)`,则数据分布是非对称的(左偏的),此时均值大于中位数,也即: `\(\bar{X} > M_e\)`。 --- ### (示例)数据分布形态:常见形态 .panelset[ .panel[.panel-name[1)对称分布] <img src="../pic/chpt03-dis-form1-mid.png" width="444" style="display: block; margin: auto;" /> ] .panel[.panel-name[2)右偏分布] <img src="../pic/chpt03-dis-form2-right.png" width="617" style="display: block; margin: auto;" /> ] .panel[.panel-name[3)左偏分布] <img src="../pic/chpt03-dis-form3-left.png" width="683" style="display: block; margin: auto;" /> ] ] --- ### (示例)数据分布形态:其他形态 .panelset[ .panel[.panel-name[1)U型分布和J型分布] .pull-left[ <img src="../pic/chpt03-dis-form-other1-u1.png" width="475" style="display: block; margin: auto;" /> ] .pull-right[ <img src="../pic/chpt03-dis-form-other1-j2.png" width="475" style="display: block; margin: auto;" /> ] ] .panel[.panel-name[2)M分布和反J分布] .pull-left[ <img src="../pic/chpt03-dis-form-other2-m.png" width="453" style="display: block; margin: auto;" /> ] .pull-right[ <img src="../pic/chpt03-dis-form-other3-j.png" width="453" style="display: block; margin: auto;" /> ] ] ] --- ## 数据分布形态:峰度系数 **峰度(Kurtosis)系数**:峰度刻画数据分布的拖尾长度和集中度。峰度系数 `\(KT\)`的理论计算公式如下: `$$\begin{align} KT = \frac{n(n+1)}{(n-1)(n-2)(n-3)} \frac{\sum_{i=1}^n{(X_i-\bar{X})^4}}{S_X^4} - \frac{3(n-1)^2}{(n-2)(n-3)} \end{align}$$` > 其中: `\(n\)`表示样本数; `\(S_X\)`表示样本标准差 `\(S_X =\sqrt{\frac{\sum_1^n{(X_i- \bar{X})^2}}{n-1}}\)`。 - 若峰度系数 `\(KT = 0\)`,则数据分布是**常峰态的**。 - 若峰度系数 `\(KT < 0\)`,则数据分布是**低峰态的**。 - 若峰度系数 `\(KT > 0\)`,则数据分布是**尖峰态的**。 --- ### (示例)数据分布形态:不同的峰态形状 <img src="../pic/chpt03-dis-kurtos.png" width="944" style="display: block; margin: auto;" /> --- ## 统计制表:结构 统计表的结构与内容一般为: 从**形式**上看:统计表由总标题、横行标题、纵栏标题、指标数值构成。 从**内容**上看:统计表由主词和宾词两部分构成。 - 主词:说明总体或总体的分组。 - 宾词:用哪些指标数值来说明总体或总体的分组。 --- ### (示例)统计指标的形式和规范 <img src="../pic/chpt03-official-table.png" width="1731" style="display: block; margin: auto;" /> --- ## 统计制表:特点 统计表的特点 - 开口式 - 上下有基线 - 编号:主词一般按A、B、C…,宾词按1、2、3… - 有计量单位 - 表中不允许有空格:若不需要此资料则用“-”;暂缺某资料则用“……” --- ## 统计制表:设计准则 统计表的一般设计准则包括: - 合理安排统计表的结构 - 总标题内容应满足3W要求 - 数据计量单位相同时,可放在表的右上角标明,不同时应放在每个变量后或单列出一列标明 - 表中的上下两条横线一般用粗线,其他线用细线 - 通常情况下,统计表的左右两边不封口 - 表中的数据一般是右对齐,有小数点时应以小数点对齐,而且小数点的位数应统一 - 对于没有数字的表格单元,一般用“—”表示 - 必要时可在表的下方加上注释 ??? 3W是指标题内容需要表明统计数据的时间(When)、地点(Where)以及何种数据(What) --- layout: false class: center, middle, duke-softblue ,hide_logo name: nice # 3.4 合理使用图表 ### 图表体系和要素 ### 鉴别图形优劣的准则 --- layout: true <div class="my-header-h2"></div> <div class="watermark1"></div> <div class="watermark2"></div> <div class="watermark3"></div> <div class="my-footer"><span>huhuaping@    <a href="#chapter02"> 第03章 数据的图表展示 </a>                       <a href="#nice"> 3.4 合理使用图表 </a> </span></div> --- exclude: true ## 准备:字体 准备字体库 ``` [1] "sans" "serif" "mono" [4] "wqy-microhei" "source-han-serif-cn" ``` --- exclude: true ## 准备:数据 准备数据 --- exclude: true ## 准备:画图模板 --- ### 制图体系:绘图区 panel .panelset[ .panel[.panel-name[a.画布区] <img src="03-visualization_files/figure-html/unnamed-chunk-180-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.绘图区] <img src="03-visualization_files/figure-html/unnamed-chunk-181-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[c.主网格] <img src="03-visualization_files/figure-html/unnamed-chunk-182-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[d.次网格] <img src="03-visualization_files/figure-html/unnamed-chunk-183-1.png" style="display: block; margin: auto;" /> ] ] --- ### 制图体系:坐标轴1 axis .panelset[ .panel[.panel-name[a.下横轴X] <img src="03-visualization_files/figure-html/unnamed-chunk-184-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.上横轴x] <img src="03-visualization_files/figure-html/unnamed-chunk-185-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[c.左纵轴Y] <img src="03-visualization_files/figure-html/unnamed-chunk-186-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[d.右纵轴Y] <img src="03-visualization_files/figure-html/unnamed-chunk-187-1.png" style="display: block; margin: auto;" /> ] ] --- ### 制图体系:坐标轴2 axis .panelset[ .panel[.panel-name[d.轴主标记] <img src="03-visualization_files/figure-html/unnamed-chunk-188-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[e.轴次标记] <img src="03-visualization_files/figure-html/unnamed-chunk-189-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[f.轴标签值1] <img src="03-visualization_files/figure-html/unnamed-chunk-190-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[g.轴标签值2] <img src="03-visualization_files/figure-html/unnamed-chunk-191-1.png" style="display: block; margin: auto;" /> ] ] --- ### 制图体系:坐标轴3 axis .panelset[ .panel[.panel-name[h.横标题] <img src="03-visualization_files/figure-html/unnamed-chunk-192-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[h.左纵轴标题] <img src="03-visualization_files/figure-html/unnamed-chunk-193-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[h.右纵轴标题] <img src="03-visualization_files/figure-html/unnamed-chunk-194-1.png" style="display: block; margin: auto;" /> ] ] --- ### 制图体系:图形类型 geom_xx .panelset[ .panel[.panel-name[a.点图1] <img src="03-visualization_files/figure-html/unnamed-chunk-195-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.点图2] <img src="03-visualization_files/figure-html/unnamed-chunk-196-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[c.线图1] <img src="03-visualization_files/figure-html/unnamed-chunk-197-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[d.线图2] <img src="03-visualization_files/figure-html/unnamed-chunk-198-1.png" style="display: block; margin: auto;" /> ] ] --- ### 制图体系:变量数值 data value <img src="03-visualization_files/figure-html/unnamed-chunk-199-1.png" style="display: block; margin: auto;" /> --- ### 制图体系:图例 legend .panelset[ .panel[.panel-name[a.图例靠右] <img src="03-visualization_files/figure-html/unnamed-chunk-200-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.图例靠下] <img src="03-visualization_files/figure-html/unnamed-chunk-201-1.png" style="display: block; margin: auto;" /> ] ] --- ### 制图体系:图注 footnote和图题 caption .panelset[ .panel[.panel-name[a.图注] <img src="03-visualization_files/figure-html/unnamed-chunk-202-1.png" style="display: block; margin: auto;" /> ] .panel[.panel-name[b.图题] <div class="figure" style="text-align: center"> <img src="03-visualization_files/figure-html/unnamed-chunk-203-1.png" alt="图3-1:plot caption演示" /> <p class="caption">图3-1:plot caption演示</p> </div> ] ] --- class: flextable ### 制表体系 表格要素包括:表序号(numbering)、表题(title)、表头(header)、主体(body)和表注(footer)等部分构成。 <template id="20dfc93c-8cbe-48e2-ad1c-8a06716be6b0"><style> .tabwid table{ border-spacing:0px !important; border-collapse:collapse; line-height:1; margin-left:auto; margin-right:auto; border-width: 0; display: table; margin-top: 1.275em; margin-bottom: 1.275em; border-color: transparent; } .tabwid_left table{ margin-left:0; } .tabwid_right table{ margin-right:0; } .tabwid td { padding: 0; } .tabwid a { text-decoration: none; } .tabwid thead { background-color: transparent; } .tabwid tfoot { background-color: transparent; } .tabwid table tr { background-color: transparent; } </style><div class="tabwid"><style>.cl-0cbcfb50{}.cl-0cb1d7ca{font-family:'Ma Shan Zheng';font-size:16pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-0cb1d7cb{font-family:'Ma Shan Zheng';font-size:9.6pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;position: relative;bottom:4.8pt;}.cl-0cb1d7cc{font-family:'Ma Shan Zheng';font-size:9.6pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(255, 0, 0, 1.00);background-color:transparent;position: relative;bottom:4.8pt;}.cl-0cb1d7cd{font-family:'Ma Shan Zheng';font-size:16pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(255, 0, 0, 1.00);background-color:transparent;}.cl-0cb2248c{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:0;padding-top:0;padding-left:0;padding-right:0;line-height: 1;background-color:transparent;}.cl-0cb2248d{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:0;padding-top:0;padding-left:0;padding-right:0;line-height: 1;background-color:transparent;}.cl-0cb2248e{margin:0;text-align:left;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:1pt;padding-top:1pt;padding-left:5pt;padding-right:5pt;line-height: 1;background-color:transparent;}.cl-0cb299bc{width:101.1pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299bd{width:89pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299be{width:64.1pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299bf{width:106pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299c0{width:97.9pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299c1{width:97.9pt;background-color:transparent;vertical-align: middle;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299c2{width:101.1pt;background-color:transparent;vertical-align: middle;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299c3{width:106pt;background-color:transparent;vertical-align: middle;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299c4{width:64.1pt;background-color:transparent;vertical-align: middle;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299c5{width:89pt;background-color:transparent;vertical-align: middle;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb299c6{width:89pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(255, 255, 255, 0.00);border-top: 0 solid rgba(255, 255, 255, 0.00);border-left: 0 solid rgba(255, 255, 255, 0.00);border-right: 0 solid rgba(255, 255, 255, 0.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0ae{width:97.9pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(255, 255, 255, 0.00);border-top: 0 solid rgba(255, 255, 255, 0.00);border-left: 0 solid rgba(255, 255, 255, 0.00);border-right: 0 solid rgba(255, 255, 255, 0.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0af{width:64.1pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(255, 255, 255, 0.00);border-top: 0 solid rgba(255, 255, 255, 0.00);border-left: 0 solid rgba(255, 255, 255, 0.00);border-right: 0 solid rgba(255, 255, 255, 0.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0b0{width:106pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(255, 255, 255, 0.00);border-top: 0 solid rgba(255, 255, 255, 0.00);border-left: 0 solid rgba(255, 255, 255, 0.00);border-right: 0 solid rgba(255, 255, 255, 0.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0b1{width:101.1pt;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(255, 255, 255, 0.00);border-top: 0 solid rgba(255, 255, 255, 0.00);border-left: 0 solid rgba(255, 255, 255, 0.00);border-right: 0 solid rgba(255, 255, 255, 0.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0b2{width:89pt;background-color:transparent;vertical-align: bottom;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 2pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0b3{width:64.1pt;background-color:transparent;vertical-align: bottom;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 2pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0b4{width:101.1pt;background-color:transparent;vertical-align: bottom;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 2pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0b5{width:97.9pt;background-color:transparent;vertical-align: bottom;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 2pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-0cb2c0b6{width:106pt;background-color:transparent;vertical-align: bottom;border-bottom: 2pt solid rgba(102, 102, 102, 1.00);border-top: 2pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-0cbcfb50'><caption class=""> 表3-2:iris dataset数据集 </caption><thead><tr style="overflow-wrap:break-word;"><td class="cl-0cb2c0b6"><p class="cl-0cb2248c"><span class="cl-0cb1d7ca">Sepal.Length</span><span class="cl-0cb1d7cb">a</span></p></td><td class="cl-0cb2c0b5"><p class="cl-0cb2248c"><span class="cl-0cb1d7ca">Sepal.Width</span><span class="cl-0cb1d7cb">b</span></p></td><td class="cl-0cb2c0b4"><p class="cl-0cb2248c"><span class="cl-0cb1d7ca">Petal.Length</span><span class="cl-0cb1d7cb">c</span></p></td><td class="cl-0cb2c0b2"><p class="cl-0cb2248c"><span class="cl-0cb1d7ca">Petal.Width</span></p></td><td class="cl-0cb2c0b3"><p class="cl-0cb2248c"><span class="cl-0cb1d7ca">Species</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-0cb299bf"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">5.1</span></p></td><td class="cl-0cb299c0"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">3.5</span></p></td><td class="cl-0cb299bc"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">1.4</span></p></td><td class="cl-0cb299bd"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">0.2</span></p></td><td class="cl-0cb299be"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">setosa</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-0cb299bf"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">4.9</span></p></td><td class="cl-0cb299c0"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">3.0</span></p></td><td class="cl-0cb299bc"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">1.4</span></p></td><td class="cl-0cb299bd"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">0.2</span></p></td><td class="cl-0cb299be"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">setosa</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-0cb299bf"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">4.7</span></p></td><td class="cl-0cb299c0"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">3.2</span></p></td><td class="cl-0cb299bc"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">1.3</span></p></td><td class="cl-0cb299bd"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">0.2</span></p></td><td class="cl-0cb299be"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">setosa</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-0cb299bf"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">4.6</span></p></td><td class="cl-0cb299c0"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">3.1</span></p></td><td class="cl-0cb299bc"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">1.5</span></p></td><td class="cl-0cb299bd"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">0.2</span></p></td><td class="cl-0cb299be"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">setosa</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-0cb299bf"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">5.0</span></p></td><td class="cl-0cb299c0"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">3.6</span></p></td><td class="cl-0cb299bc"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">1.4</span></p></td><td class="cl-0cb299bd"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">0.2</span></p></td><td class="cl-0cb299be"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">setosa</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-0cb299c3"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">5.4</span></p></td><td class="cl-0cb299c1"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">3.9</span></p></td><td class="cl-0cb299c2"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">1.7</span></p></td><td class="cl-0cb299c5"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">0.4</span></p></td><td class="cl-0cb299c4"><p class="cl-0cb2248d"><span class="cl-0cb1d7ca">setosa</span></p></td></tr></tbody><tfoot><tr style="overflow-wrap:break-word;"><td colspan="5"class="cl-0cb2c0b0"><p class="cl-0cb2248e"><span class="cl-0cb1d7cc">a</span><span class="cl-0cb1d7cd">This is footnote one</span><span class="cl-0cb1d7cd">; </span><span class="cl-0cb1d7cc">b</span><span class="cl-0cb1d7cd">This is footnote two</span><span class="cl-0cb1d7cd">; </span><span class="cl-0cb1d7cc">c</span><span class="cl-0cb1d7cd">This is footnote three</span></p></td></tr></tfoot></table></div></template> <div class="flextable-shadow-host" id="8c80c3d2-73f3-4002-abf5-dc68b66c3fbc"></div> <script> var dest = document.getElementById("8c80c3d2-73f3-4002-abf5-dc68b66c3fbc"); var template = document.getElementById("20dfc93c-8cbe-48e2-ad1c-8a06716be6b0"); var caption = template.content.querySelector("caption"); if(caption) { caption.style.cssText = "display:block;text-align:center;"; var newcapt = document.createElement("p"); newcapt.appendChild(caption) dest.parentNode.insertBefore(newcapt, dest.previousSibling); } var fantome = dest.attachShadow({mode: 'open'}); var templateContent = template.content; fantome.appendChild(templateContent); </script> --- ## 良好图表应具备的基本特征 - 服务于一个明确的目的 - 显示数据 - 强调数据之间的比较 - 有对图表的统计描述和文字说明 - 让读者把注意力集中在图表的内容上,而不是制作图表的程序上 - 避免歪曲 --- ## 鉴别图表优劣的准则 - 表述数据的真实情况 - 使复杂的观点得到简明、确切、高效的阐述 - 精心设计、有助于洞察问题的实质 - 能在最短的时间内以最少的笔墨给读者提供最大量的信息 - 多维度地对问题进行客观反映 --- ## 制图常见误区:非零起始点1 <img src="../pic/chpt03-mis-non-zero.png" width="1937" style="display: block; margin: auto;" /> --- ## 制图常见误区:非零起始点2 <img src="../pic/chpt03-mis-non-zero-com.png" width="3872" style="display: block; margin: auto;" /> --- ## 制图常见误区:图片比例拉伸失调 <img src="../pic/chpt03-mis-wrong-ratio.png" width="1940" style="display: block; margin: auto;" /> --- ## 制图常见误区:炫技乱人心 <img src="../pic/chpt03-mis-dispress.png" width="1976" style="display: block; margin: auto;" /> --- ## 制图常见误区:视觉误导1 <img src="../pic/chpt03-mis-vision-distort.png" width="1963" style="display: block; margin: auto;" /> --- ## 制图常见误区:视觉误导2 <img src="../pic/chpt03-mis-vision-distort-y.png" width="4067" style="display: block; margin: auto;" /> --- ## 制图常见误区:目标不明确 <img src="../pic/chpt03-mis-elements.png" width="1955" style="display: block; margin: auto;" /> --- ## 图设计要点:饼图VS条形图? <img src="../pic/chpt03-graph-pie-or-bar.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:一般来讲表述市场份额是100%,所以大家习惯用饼图表述,研究表明人们更习惯从条形图来比较大小,更醒目的看到差异! --- ## 图设计要点:线形图VS柱状图? <img src="../pic/chpt03-graph-line-or-bar.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:X轴是时间,是时间序列数据,所以折线图更能够感知的趋势、模式的变化!当然如果你表现的是不同品牌的市场份额,柱状图也是可以的! --- ## 图设计要点:平面图VS立体图? <img src="../pic/chpt03-graph-2d-or-3d.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:二维图更适合人们观察,三维并不适合观察,毕竟人类视觉空间最低维度是二维!另时序数据应该采用折线图表述趋势! --- ## 图设计要点:3D VS 2D? <img src="../pic/chpt03-graph-2d-or-3d-cont.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:尽量不用用三维图,但是大家是不是会把信息按某个维度作出分散的二维图呢?一定注意要用统一的纵坐标,否则是四张图,要贴成一张图! --- ## 图设计要点:颜色VS数据? <img src="../pic/chpt03-graph-color-or-data.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:如果选上面的打印都费墨,坚持简单是最好的。当然如果有艺术细胞的话,背景也是可以更为生动些,但是更多是考虑展示结果! --- ## 图设计要点:选色VS选图? <img src="../pic/chpt03-graph-color-pie-and-bar.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:比较是展示数据差异的好法子,但是如果读者不容易看出差别的话,那么比较就毫无意义。确保选择最合适的比较方法。 --- ## 图设计要点:饼图-排序VS分块? <img src="../pic/chpt03-graph-pie.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:理论上,一个饼图不应该分割超过5块。注意排序,最大一块12点钟开始,顺时针方向旋转。剩余部分再降序排列,顺时针。 --- ## 图设计要点:线图-实线VS虚线? <img src="../pic/chpt03-graph-line-solid.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:虚线容易分散注意力。相反,使用实线和颜色,反而容易区分彼此的区别。 --- ## 图设计要点:条形图-排序数据VS名称? <img src="../pic/chpt03-graph-bar-order.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:你的内容应该以一种合乎逻辑的和直观的方式来引导读者了解数据。所以,记得将数据类别按字母顺序、大小顺序、或数据值进行排序。 --- ## 图设计要点:柱状图-宽度VS间距? <img src="../pic/chpt03-graph-bar-width.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:或许你的报告很有创意,非常精彩,但是记得图表设计水平也要跟上。条形图之间的间隔应该是1/2栏宽度。 --- ## 图设计要点:面积图-堆叠VS透明度? <img src="../pic/chpt03-graph-area-stacked.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:确保没有数据丢失或被设计修改。例如,使用标准的面积图时,可以添加透明度,确保读者可以看到所有数据。 --- ## 图设计要点:散点图-原始VS趋势? <img src="../pic/chpt03-graph-scatter-trend.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:应该使图表尽可能轻松地帮助读者理解数据。例如,在散点图中添加趋势线来强调的趋势。 --- ## 图设计要点:气泡图-形状VS数值? <img src="../pic/chpt03-graph-legend.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:确保所有可视化方式是准确的。例如,气泡图大小应该根据区域扩展,而不是直径。 --- ## 图设计要点:热力图-颜色堆VS颜色系? <img src="../pic/chpt03-graph-heathop.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:颜色用得太花,会给数据增加不可承受之重,相反,应该采用同一色系,或者类比色。 --- ## 表设计要点:交叉表-封闭VS开放? <img src="../pic/chpt03-table-close-or-open.png" width="850px" style="display: block; margin: auto;" /> -- **点评**:下表更加清晰明快!我们习惯采用中国式上表,一般都是封闭边框线的。但是我们如果经常看英文的论文,你会发现很多论文都是下面开放式三线表! --- ## 表设计要点:交叉表-颜色VS线条? <img src="../pic/chpt03-table-color-or-line.png" width="800px" style="display: block; margin: auto;" /> -- **点评**:应选择上表。网格线会让我们看不清晰。当然颜色也是非常重要的,要学会使用条件格式规则调色,还有如字体、数值、对齐等格式问题! --- layout:false background-image: url("../pic/thank-you-gif-funny-fan.gif") class: inverse,center # 本章结束