├── .gitignore ├── .nojekyll ├── 404.html ├── CNAME ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── SUMMARY.md ├── asset ├── docsify-apachecn-footer.js ├── docsify-baidu-push.js ├── docsify-baidu-stat.js ├── docsify-clicker.js ├── docsify-cnzz.js ├── docsify-copy-code.min.js ├── docsify.min.js ├── flygon_qr_alipay.png ├── prism-darcula.css ├── prism-r.min.js ├── search.min.js ├── style.css └── vue.css ├── docs ├── 00.md ├── 01.md ├── 02.md ├── 03.md ├── 04.md ├── 05.md ├── 06.md ├── 07.md ├── 08.md ├── 09.md ├── 10.md ├── 11.md ├── 12.md ├── 13.md ├── 14.md ├── 15.md ├── 16.md ├── 17.md ├── 18.md └── img │ ├── b1b2.png │ ├── bayes.png │ ├── bf.png │ ├── bhat.png │ ├── bmi.png │ ├── bw.png │ ├── chi.png │ ├── ci.png │ ├── cix.png │ ├── cov_my.png │ ├── df.png │ ├── dx12.png │ ├── file0.png │ ├── file1.png │ ├── file10.png │ ├── file100.png │ ├── file101.png │ ├── file102.png │ ├── file103.png │ ├── file104.png │ ├── file11.png │ ├── file12.png │ ├── file13.png │ ├── file14.png │ ├── file15.png │ ├── file16.png │ ├── file17.png │ ├── file18.png │ ├── file19.png │ ├── file2.jpg │ ├── file20.png │ ├── file21.png │ ├── file22.png │ ├── file23.png │ ├── file24.png │ ├── file25.png │ ├── file26.png │ ├── file27.png │ ├── file28.png │ ├── file29.png │ ├── file3.png │ ├── file30.png │ ├── file31.png │ ├── file32.png │ ├── file33.png │ ├── file34.png │ ├── file35.png │ ├── file36.png │ ├── file37.png │ ├── file38.png │ ├── file39.png │ ├── file4.png │ ├── file40.png │ ├── file41.png │ ├── file42.png │ ├── file43.png │ ├── file44.png │ ├── file45.png │ ├── file46.png │ ├── file47.png │ ├── file48.png │ ├── file49.png │ ├── file5.png │ ├── file50.png │ ├── file51.png │ ├── file52.png │ ├── file53.png │ ├── file54.png │ ├── file55.png │ ├── file56.png │ ├── file57.png │ ├── file58.png │ ├── file59.png │ ├── file6.png │ ├── file60.png │ ├── file61.png │ ├── file62.png │ ├── file63.png │ ├── file64.png │ ├── file65.png │ ├── file66.png │ ├── file67.png │ ├── file68.png │ ├── file69.png │ ├── file7.png │ ├── file70.png │ ├── file71.png │ ├── file72.png │ ├── file73.png │ ├── file74.png │ ├── file75.png │ ├── file76.png │ ├── file77.png │ ├── file78.png │ ├── file79.png │ ├── file8.png │ ├── file80.png │ ├── file81.png │ ├── file82.png │ ├── file83.png │ ├── file84.png │ ├── file85.png │ ├── file86.png │ ├── file87.png │ ├── file88.png │ ├── file89.png │ ├── file9.jpg │ ├── file90.png │ ├── file91.png │ ├── file92.png │ ├── file93.png │ ├── file94.png │ ├── file95.png │ ├── file96.png │ ├── file97.png │ ├── file98.png │ ├── file99.png │ ├── free.png │ ├── gini.png │ ├── h0-ha.png │ ├── h0.png │ ├── h0coin.png │ ├── h0n.png │ ├── ha.png │ ├── hacoin.png │ ├── han.png │ ├── linear.png │ ├── ms1.png │ ├── not-p.png │ ├── odds.png │ ├── paradox.png │ ├── pet.png │ ├── poly-distribute.png │ ├── power.png │ ├── r22.png │ ├── res1.png │ ├── rhat.png │ ├── s2.png │ ├── sbw.png │ ├── search.png │ ├── seg.png │ ├── ss2.png │ ├── sse1.png │ ├── stand.png │ ├── t-student.png │ ├── table1.png │ ├── tnps.png │ ├── tr.png │ └── ufb.png ├── donate.md ├── index.html └── update.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | 49 | # Translations 50 | *.mo 51 | *.pot 52 | 53 | # Django stuff: 54 | *.log 55 | local_settings.py 56 | 57 | # Flask stuff: 58 | instance/ 59 | .webassets-cache 60 | 61 | # Scrapy stuff: 62 | .scrapy 63 | 64 | # Sphinx documentation 65 | docs/_build/ 66 | 67 | # PyBuilder 68 | target/ 69 | 70 | # Jupyter Notebook 71 | .ipynb_checkpoints 72 | 73 | # pyenv 74 | .python-version 75 | 76 | # celery beat schedule file 77 | celerybeat-schedule 78 | 79 | # SageMath parsed files 80 | *.sage.py 81 | 82 | # dotenv 83 | .env 84 | 85 | # virtualenv 86 | .venv 87 | venv/ 88 | ENV/ 89 | 90 | # Spyder project settings 91 | .spyderproject 92 | .spyproject 93 | 94 | # Rope project settings 95 | .ropeproject 96 | 97 | # mkdocs documentation 98 | /site 99 | 100 | # mypy 101 | .mypy_cache/ 102 | .DS_Store 103 | 104 | # gitbook 105 | _book 106 | 107 | # node.js 108 | node_modules 109 | 110 | # windows 111 | Thumbs.db 112 | 113 | # word 114 | ~$*.docx 115 | ~$*.doc 116 | -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/.nojekyll -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | --- 2 | permalink: /404.html 3 | --- 4 | 5 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | stats21.apachecn.org -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # 贡献指南 2 | 3 | > 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科) 4 | 负责人: 5 | 6 | + [飞龙](https://github.com/wizardforcel):562826179 7 | 8 | ## 有用的链接 9 | 10 | + [ApacheCN 文档导航](https://docs.apachecn.org/) 11 | + [谷歌翻译](https://translate.google.cn/) 12 | + [ApacheCN 校对活动参与手册](https://github.com/apachecn/home/blob/master/docs/translate/joining-guide.md) 13 | + [译后编辑](https://www.bing.com/search?q=%E8%AF%91%E5%90%8E%E7%BC%96%E8%BE%91&mkt=zh-CN) 14 | + [当翻译竟然变成了文本编辑——李笑来](https://zhuanlan.zhihu.com/p/465979584) 15 | + [翻译引擎易错术语列表(欢迎补充)](https://github.com/apachecn/home/blob/master/docs/translate/trans-table.md) 16 | + [廖雪峰 Git 教程](https://www.liaoxuefeng.com/wiki/896043488029600) 17 | 18 | ## 流程 19 | 20 | ### 一、认领 21 | 22 | 校对者需要熟练掌握 Markdown 和 Git,以及文档的主题(编程,Web开发,大数据,AI,安全之一)。 23 | 24 | 首先查看[整体进度](https://github.com/apachecn/ds-cmd-line-2e-zh/issues/1),确认没有人认领了你想认领的章节。 25 | 26 | 然后回复 ISSUE,注明“章节 + QQ 号”,便于联系和跟踪进度。 27 | 28 | ### 二、校对 29 | 30 | 需要校对【专业术语】和【格式】。 31 | 32 | 【语法】无需校对因为已经校对完了,并且请最大程度保留原文的语言风格。 33 | 34 | 译文在`docs`目录下,原文请见每个文章开头处的链接。 35 | 36 | **注意**:不要修改译文的文件名,因为它们和章节对应! 37 | 38 | 确保译文符合下方的【Markdown 排版要求】一节。 39 | 40 | 请参考下方的【有用的正则表达式】一节,以及[【翻译引擎易错术语列表】](https://github.com/apachecn/home/blob/master/docs/translate/trans-table.md)来提高效率。 41 | 42 | ### 三、提交 43 | 44 | + `fork` Github 项目 45 | + 在`docs`文件夹下编辑译文 46 | + `add`、`commit`和`push` 47 | + `pull request` 48 | 49 | 请见[廖雪峰 Git 教程](https://www.liaoxuefeng.com/wiki/896043488029600)。 50 | 51 | ## Markdown 排版要求 52 | 53 | 1. 代码块和图片无需校对,并且不计入字数。 54 | 3. 汉字和英文字母,汉字和数字之间空一格。但是中文标点和任何字符之间都不用空格。 55 | 4. 粗体斜体和链接要求同上,中文和英文粗体,英文和中文粗体之间也需要空格。 56 | 5. 任何编程语言中出现的东西,比如变量名,类名,函数名,包名,以及命令行中出现的东西,比如命令,文件名,路径,扩展名,都需要包在内联代码中。内联代码与汉字/标点之间无需空格,但和英文字母或数字之间空一格。 57 | 6. 表格的格式容易乱,保证它们显示正常。 58 | 7. 标题和较短的列表需要特别校对。 59 | 8. 有少量未翻译的段落,使用[谷歌翻译](https://translate.google.cn/)之后再校对。 60 | 61 | ## 有用的正则表达式 62 | 63 | 链接: 64 | 65 | ``` 66 | (? 原文:[Statistical Thinking for the 21st Century](https://statsthinking21.github.io/statsthinking21-core-site/) 4 | > 5 | > 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) 6 | > 7 | > 阶段:机翻(1) 8 | > 9 | > 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 10 | 11 | * [在线阅读](http://stats21.apachecn.org) 12 | * [在线阅读(Gitee)](https://apachecn.gitee.io/stats-thinking-21-zh/) 13 | * [ApacheCN 机器学习交流群 629470233](http://shang.qq.com/wpa/qunwpa?idkey=30e5f1123a79867570f665aa3a483ca404b1c3f77737bc01ec520ed5f078ddef) 14 | * [ApacheCN 学习资源](http://www.apachecn.org/) 15 | 16 | ## 贡献指南 17 | 18 | 为了不断改进翻译质量,我们特此启动了【翻译、校对、笔记整理活动】,开设了多个校对项目。贡献者校对一章之后可以领取千字2\~4元的奖励。进行中的校对活动请见[活动列表](https://home.apachecn.org/#/docs/activity/docs-activity)。更多详情请联系飞龙(Q562826179,V:wizardforcel)。 19 | 20 | ## 联系方式 21 | 22 | ### 负责人 23 | 24 | * [飞龙](https://github.com/wizardforcel): 562826179 25 | 26 | ### 其他 27 | 28 | * 在我们的 [apachecn/stats-thinking-21-zh](https://github.com/apachecn/stats-thinking-21-zh) github 上提 issue. 29 | * 发邮件到 Email: `apachecn@163.com`. 30 | * 在我们的 [组织学习交流群](http://www.apachecn.org/organization/348.html) 中联系群主/管理员即可. 31 | 32 | ## 下载 33 | 34 | ### Docker 35 | 36 | ``` 37 | docker pull apachecn0/stats-thinking-21-zh 38 | docker run -tid -p :80 apachecn0/stats-thinking-21-zh 39 | # 访问 http://localhost:{port} 查看文档 40 | ``` 41 | 42 | ### PYPI 43 | 44 | ``` 45 | pip install stats-thinking-21-zh 46 | stats-thinking-21-zh 47 | # 访问 http://localhost:{port} 查看文档 48 | ``` 49 | 50 | ### NPM 51 | 52 | ``` 53 | npm install -g stats-thinking-eryi-zh 54 | stats-thinking-eryi-zh 55 | # 访问 http://localhost:{port} 查看文档 56 | ``` 57 | 58 | ## 赞助我们 59 | 60 | 本项目由[飞龙](https://github.com/wizardforcel)赞助,扫下面的二维码打赏他来表示感谢: 61 | 62 | ![](asset/flygon_qr_alipay.png) 63 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | + [斯坦福 Stats60 21 世纪的统计思维](README.md) 2 | + [前言](docs/00.md) 3 | + [1 简介](docs/01.md) 4 | + [2 处理数据](docs/02.md) 5 | + [3 汇总数据](docs/03.md) 6 | + [4 数据可视化](docs/04.md) 7 | + [5 根据数据拟合模型](docs/05.md) 8 | + [6 概率](docs/06.md) 9 | + [7 采样](docs/07.md) 10 | + [8 重采样和模拟](docs/08.md) 11 | + [9 假设检验](docs/09.md) 12 | + [10 量化效果和设计研究](docs/10.md) 13 | + [11 贝叶斯统计](docs/11.md) 14 | + [12 建模分类关系](docs/12.md) 15 | + [13 建模连续关系](docs/13.md) 16 | + [14 一般线性模型](docs/14.md) 17 | + [15 比较手段](docs/15.md) 18 | + [16 多元统计](docs/16.md) 19 | + [17 实用统计建模](docs/17.md) 20 | + [18 做可重复的研究](docs/18.md) -------------------------------------------------------------------------------- /asset/docsify-apachecn-footer.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var footer = [ 3 | '
', 4 | '
', 5 | '

我们一直在努力

', 6 | '

apachecn/stats-thinking-21-zh

', 7 | '

', 8 | ' ', 9 | ' ', 10 | ' ML | ApacheCN

', 11 | '

', 12 | '
', 13 | ' ', 17 | '
', 18 | '
' 19 | ].join('\n') 20 | var plugin = function(hook) { 21 | hook.afterEach(function(html) { 22 | return html + footer 23 | }) 24 | hook.doneEach(function() { 25 | (adsbygoogle = window.adsbygoogle || []).push({}) 26 | }) 27 | } 28 | var plugins = window.$docsify.plugins || [] 29 | plugins.push(plugin) 30 | window.$docsify.plugins = plugins 31 | })() -------------------------------------------------------------------------------- /asset/docsify-baidu-push.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var plugin = function(hook) { 3 | hook.doneEach(function() { 4 | new Image().src = 5 | '//api.share.baidu.com/s.gif?r=' + 6 | encodeURIComponent(document.referrer) + 7 | "&l=" + encodeURIComponent(location.href) 8 | }) 9 | } 10 | var plugins = window.$docsify.plugins || [] 11 | plugins.push(plugin) 12 | window.$docsify.plugins = plugins 13 | })() -------------------------------------------------------------------------------- /asset/docsify-baidu-stat.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var plugin = function(hook) { 3 | hook.doneEach(function() { 4 | window._hmt = window._hmt || [] 5 | var hm = document.createElement("script") 6 | hm.src = "https://hm.baidu.com/hm.js?" + window.$docsify.bdStatId 7 | document.querySelector("article").appendChild(hm) 8 | }) 9 | } 10 | var plugins = window.$docsify.plugins || [] 11 | plugins.push(plugin) 12 | window.$docsify.plugins = plugins 13 | })() -------------------------------------------------------------------------------- /asset/docsify-clicker.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var ids = [ 3 | '109577065', '108852955', '102682374', '100520874', '92400861', '90312982', 4 | '109963325', '109323014', '109301511', '108898970', '108590722', '108538676', 5 | '108503526', '108437109', '108402202', '108292691', '108291153', '108268498', 6 | '108030854', '107867070', '107847299', '107827334', '107825454', '107802131', 7 | '107775320', '107752974', '107735139', '107702571', '107598864', '107584507', 8 | '107568311', '107526159', '107452391', '107437455', '107430050', '107395781', 9 | '107325304', '107283210', '107107145', '107085440', '106995421', '106993460', 10 | '106972215', '106959775', '106766787', '106749609', '106745967', '106634313', 11 | '106451602', '106180097', '106095505', '106077010', '106008089', '106002346', 12 | '105653809', '105647855', '105130705', '104837872', '104706815', '104192620', 13 | '104074941', '104040537', '103962171', '103793502', '103783460', '103774572', 14 | '103547748', '103547703', '103547571', '103490757', '103413481', '103341935', 15 | '103330191', '103246597', '103235808', '103204403', '103075981', '103015105', 16 | '103014899', '103014785', '103014702', '103014540', '102993780', '102993754', 17 | '102993680', '102958443', '102913317', '102903382', '102874766', '102870470', 18 | '102864513', '102811179', '102761237', '102711565', '102645443', '102621845', 19 | '102596167', '102593333', '102585262', '102558427', '102537547', '102530610', 20 | '102527017', '102504698', '102489806', '102372981', '102258897', '102257303', 21 | '102056248', '101920097', '101648638', '101516708', '101350577', '101268149', 22 | '101128167', '101107328', '101053939', '101038866', '100977414', '100945061', 23 | '100932401', '100886407', '100797378', '100634918', '100588305', '100572447', 24 | '100192249', '100153559', '100099032', '100061455', '100035392', '100033450', 25 | '99671267', '99624846', '99172551', '98992150', '98989508', '98987516', '98938304', 26 | '98937682', '98725145', '98521688', '98450861', '98306787', '98203342', '98026348', 27 | '97680167', '97492426', '97108940', '96888872', '96568559', '96509100', '96508938', 28 | '96508611', '96508374', '96498314', '96476494', '96333593', '96101522', '95989273', 29 | '95960507', '95771870', '95770611', '95766810', '95727700', '95588929', '95218707', 30 | '95073151', '95054615', '95016540', '94868371', '94839549', '94719281', '94401578', 31 | '93931439', '93853494', '93198026', '92397889', '92063437', '91635930', '91433989', 32 | '91128193', '90915507', '90752423', '90738421', '90725712', '90725083', '90722238', 33 | '90647220', '90604415', '90544478', '90379769', '90288341', '90183695', '90144066', 34 | '90108283', '90021771', '89914471', '89876284', '89852050', '89839033', '89812373', 35 | '89789699', '89786189', '89752620', '89636380', '89632889', '89525811', '89480625', 36 | '89464088', '89464025', '89463984', '89463925', '89445280', '89441793', '89430432', 37 | '89429877', '89416176', '89412750', '89409618', '89409485', '89409365', '89409292', 38 | '89409222', '89399738', '89399674', '89399526', '89355336', '89330241', '89308077', 39 | '89222240', '89140953', '89139942', '89134398', '89069355', '89049266', '89035735', 40 | '89004259', '88925790', '88925049', '88915838', '88912706', '88911548', '88899438', 41 | '88878890', '88837519', '88832555', '88824257', '88777952', '88752158', '88659061', 42 | '88615256', '88551434', '88375675', '88322134', '88322085', '88321996', '88321978', 43 | '88321950', '88321931', '88321919', '88321899', '88321830', '88321756', '88321710', 44 | '88321661', '88321632', '88321566', '88321550', '88321506', '88321475', '88321440', 45 | '88321409', '88321362', '88321321', '88321293', '88321226', '88232699', '88094874', 46 | '88090899', '88090784', '88089091', '88048808', '87938224', '87913318', '87905933', 47 | '87897358', '87856753', '87856461', '87827666', '87822008', '87821456', '87739137', 48 | '87734022', '87643633', '87624617', '87602909', '87548744', '87548689', '87548624', 49 | '87548550', '87548461', '87463201', '87385913', '87344048', '87078109', '87074784', 50 | '87004367', '86997632', '86997466', '86997303', '86997116', '86996474', '86995899', 51 | '86892769', '86892654', '86892569', '86892457', '86892347', '86892239', '86892124', 52 | '86798671', '86777307', '86762845', '86760008', '86759962', '86759944', '86759930', 53 | '86759922', '86759646', '86759638', '86759633', '86759622', '86759611', '86759602', 54 | '86759596', '86759591', '86759580', '86759572', '86759567', '86759558', '86759545', 55 | '86759534', '86749811', '86741502', '86741074', '86741059', '86741020', '86740897', 56 | '86694754', '86670104', '86651882', '86651875', '86651866', '86651828', '86651790', 57 | '86651767', '86651756', '86651735', '86651720', '86651708', '86618534', '86618526', 58 | '86594785', '86590937', '86550497', '86550481', '86550472', '86550453', '86550438', 59 | '86550429', '86550407', '86550381', '86550359', '86536071', '86536035', '86536014', 60 | '86535988', '86535963', '86535953', '86535932', '86535902', '86472491', '86472298', 61 | '86472236', '86472191', '86472108', '86471967', '86471899', '86471822', '86439022', 62 | '86438972', '86438902', '86438887', '86438867', '86438836', '86438818', '85850119', 63 | '85850075', '85850021', '85849945', '85849893', '85849837', '85849790', '85849740', 64 | '85849661', '85849620', '85849550', '85606096', '85564441', '85547709', '85471981', 65 | '85471317', '85471136', '85471073', '85470629', '85470456', '85470169', '85469996', 66 | '85469877', '85469775', '85469651', '85469331', '85469033', '85345768', '85345742', 67 | '85337900', '85337879', '85337860', '85337833', '85337797', '85322822', '85322810', 68 | '85322791', '85322745', '85317667', '85265742', '85265696', '85265618', '85265350', 69 | '85098457', '85057670', '85009890', '84755581', '84637437', '84637431', '84637393', 70 | '84637374', '84637355', '84637338', '84637321', '84637305', '84637283', '84637259', 71 | '84629399', '84629314', '84629233', '84629124', '84629065', '84628997', '84628933', 72 | '84628838', '84628777', '84628690', '84591581', '84591553', '84591511', '84591484', 73 | '84591468', '84591416', '84591386', '84591350', '84591308', '84572155', '84572107', 74 | '84503228', '84500221', '84403516', '84403496', '84403473', '84403442', '84075703', 75 | '84029659', '83933480', '83933459', '83933435', '83903298', '83903274', '83903258', 76 | '83752369', '83345186', '83116487', '83116446', '83116402', '83116334', '83116213', 77 | '82944248', '82941023', '82938777', '82936611', '82932735', '82918102', '82911085', 78 | '82888399', '82884263', '82883507', '82880996', '82875334', '82864060', '82831039', 79 | '82823385', '82795277', '82790832', '82775718', '82752022', '82730437', '82718126', 80 | '82661646', '82588279', '82588267', '82588261', '82588192', '82347066', '82056138', 81 | '81978722', '81211571', '81104145', '81069048', '81006768', '80788365', '80767582', 82 | '80759172', '80759144', '80759129', '80736927', '80661288', '80616304', '80602366', 83 | '80584625', '80561364', '80549878', '80549875', '80541470', '80539726', '80531328', 84 | '80513257', '80469816', '80406810', '80356781', '80334130', '80333252', '80332666', 85 | '80332389', '80311244', '80301070', '80295974', '80292252', '80286963', '80279504', 86 | '80278369', '80274371', '80249825', '80247284', '80223054', '80219559', '80209778', 87 | '80200279', '80164236', '80160900', '80153046', '80149560', '80144670', '80061205', 88 | '80046520', '80025644', '80014721', '80005213', '80004664', '80001653', '79990178', 89 | '79989283', '79947873', '79946002', '79941517', '79938786', '79932755', '79921178', 90 | '79911339', '79897603', '79883931', '79872574', '79846509', '79832150', '79828161', 91 | '79828156', '79828149', '79828146', '79828140', '79828139', '79828135', '79828123', 92 | '79820772', '79776809', '79776801', '79776788', '79776782', '79776772', '79776767', 93 | '79776760', '79776753', '79776736', '79776705', '79676183', '79676171', '79676166', 94 | '79676160', '79658242', '79658137', '79658130', '79658123', '79658119', '79658112', 95 | '79658100', '79658092', '79658089', '79658069', '79658054', '79633508', '79587857', 96 | '79587850', '79587842', '79587831', '79587825', '79587819', '79547908', '79477700', 97 | '79477692', '79440956', '79431176', '79428647', '79416896', '79406699', '79350633', 98 | '79350545', '79344765', '79339391', '79339383', '79339157', '79307345', '79293944', 99 | '79292623', '79274443', '79242798', '79184420', '79184386', '79184355', '79184269', 100 | '79183979', '79100314', '79100206', '79100064', '79090813', '79057834', '78967246', 101 | '78941571', '78927340', '78911467', '78909741', '78848006', '78628917', '78628908', 102 | '78628889', '78571306', '78571273', '78571253', '78508837', '78508791', '78448073', 103 | '78430940', '78408150', '78369548', '78323851', '78314301', '78307417', '78300457', 104 | '78287108', '78278945', '78259349', '78237192', '78231360', '78141031', '78100357', 105 | '78095793', '78084949', '78073873', '78073833', '78067868', '78067811', '78055014', 106 | '78041555', '78039240', '77948804', '77879624', '77837792', '77824937', '77816459', 107 | '77816208', '77801801', '77801767', '77776636', '77776610', '77505676', '77485156', 108 | '77478296', '77460928', '77327521', '77326428', '77278423', '77258908', '77252370', 109 | '77248841', '77239042', '77233843', '77230880', '77200256', '77198140', '77196405', 110 | '77193456', '77186557', '77185568', '77181823', '77170422', '77164604', '77163389', 111 | '77160103', '77159392', '77150721', '77146204', '77141824', '77129604', '77123259', 112 | '77113014', '77103247', '77101924', '77100165', '77098190', '77094986', '77088637', 113 | '77073399', '77062405', '77044198', '77036923', '77017092', '77007016', '76999924', 114 | '76977678', '76944015', '76923087', '76912696', '76890184', '76862282', '76852434', 115 | '76829683', '76794256', '76780755', '76762181', '76732277', '76718569', '76696048', 116 | '76691568', '76689003', '76674746', '76651230', '76640301', '76615315', '76598528', 117 | '76571947', '76551820', '74178127', '74157245', '74090991', '74012309', '74001789', 118 | '73910511', '73613471', '73605647', '73605082', '73503704', '73380636', '73277303', 119 | '73274683', '73252108', '73252085', '73252070', '73252039', '73252025', '73251974', 120 | '73135779', '73087531', '73044025', '73008658', '72998118', '72997953', '72847091', 121 | '72833384', '72830909', '72828999', '72823633', '72793092', '72757626', '71157154', 122 | '71131579', '71128551', '71122253', '71082760', '71078326', '71075369', '71057216', 123 | '70812997', '70384625', '70347260', '70328937', '70313267', '70312950', '70255825', 124 | '70238893', '70237566', '70237072', '70230665', '70228737', '70228729', '70175557', 125 | '70175401', '70173259', '70172591', '70170835', '70140724', '70139606', '70053923', 126 | '69067886', '69063732', '69055974', '69055708', '69031254', '68960022', '68957926', 127 | '68957556', '68953383', '68952755', '68946828', '68483371', '68120861', '68065606', 128 | '68064545', '68064493', '67646436', '67637525', '67632961', '66984317', '66968934', 129 | '66968328', '66491589', '66475786', '66473308', '65946462', '65635220', '65632553', 130 | '65443309', '65437683', '63260222', '63253665', '63253636', '63253628', '63253610', 131 | '63253572', '63252767', '63252672', '63252636', '63252537', '63252440', '63252329', 132 | '63252155', '62888876', '62238064', '62039365', '62038016', '61925813', '60957024', 133 | '60146286', '59523598', '59489460', '59480461', '59160354', '59109234', '59089006', 134 | '58595549', '57406062', '56678797', '55001342', '55001340', '55001336', '55001330', 135 | '55001328', '55001325', '55001311', '55001305', '55001298', '55001290', '55001283', 136 | '55001278', '55001272', '55001265', '55001262', '55001253', '55001246', '55001242', 137 | '55001236', '54907997', '54798827', '54782693', '54782689', '54782688', '54782676', 138 | '54782673', '54782671', '54782662', '54782649', '54782636', '54782630', '54782628', 139 | '54782627', '54782624', '54782621', '54782620', '54782615', '54782613', '54782608', 140 | '54782604', '54782600', '54767237', '54766779', '54755814', '54755674', '54730253', 141 | '54709338', '54667667', '54667657', '54667639', '54646201', '54407212', '54236114', 142 | '54234220', '54233181', '54232788', '54232407', '54177960', '53991319', '53932970', 143 | '53888106', '53887128', '53885944', '53885094', '53884497', '53819985', '53812640', 144 | '53811866', '53790628', '53785053', '53782838', '53768406', '53763191', '53763163', 145 | '53763148', '53763104', '53763092', '53576302', '53576157', '53573472', '53560183', 146 | '53523648', '53516634', '53514474', '53510917', '53502297', '53492224', '53467240', 147 | '53467122', '53437115', '53436579', '53435710', '53415115', '53377875', '53365337', 148 | '53350165', '53337979', '53332925', '53321283', '53318758', '53307049', '53301773', 149 | '53289364', '53286367', '53259948', '53242892', '53239518', '53230890', '53218625', 150 | '53184121', '53148662', '53129280', '53116507', '53116486', '52980893', '52980652', 151 | '52971002', '52950276', '52950259', '52944714', '52934397', '52932994', '52924939', 152 | '52887083', '52877145', '52858258', '52858046', '52840214', '52829673', '52818774', 153 | '52814054', '52805448', '52798019', '52794801', '52786111', '52774750', '52748816', 154 | '52745187', '52739313', '52738109', '52734410', '52734406', '52734401', '52515005', 155 | '52056818', '52039757', '52034057', '50899381', '50738883', '50726018', '50695984', 156 | '50695978', '50695961', '50695931', '50695913', '50695902', '50695898', '50695896', 157 | '50695885', '50695852', '50695843', '50695829', '50643222', '50591997', '50561827', 158 | '50550829', '50541472', '50527581', '50527317', '50527206', '50527094', '50526976', 159 | '50525931', '50525764', '50518363', '50498312', '50493019', '50492927', '50492881', 160 | '50492863', '50492772', '50492741', '50492688', '50492454', '50491686', '50491675', 161 | '50491602', '50491550', '50491467', '50488409', '50485177', '48683433', '48679853', 162 | '48678381', '48626023', '48623059', '48603183', '48599041', '48595555', '48576507', 163 | '48574581', '48574425', '48547849', '48542371', '48518705', '48494395', '48493321', 164 | '48491545', '48471207', '48471161', '48471085', '48468239', '48416035', '48415577', 165 | '48415515', '48297597', '48225865', '48224037', '48223553', '48213383', '48211439', 166 | '48206757', '48195685', '48193981', '48154955', '48128811', '48105995', '48105727', 167 | '48105441', '48105085', '48101717', '48101691', '48101637', '48101569', '48101543', 168 | '48085839', '48085821', '48085797', '48085785', '48085775', '48085765', '48085749', 169 | '48085717', '48085687', '48085377', '48085189', '48085119', '48085043', '48084991', 170 | '48084747', '48084139', '48084075', '48055511', '48055403', '48054259', '48053917', 171 | '47378253', '47359989', '47344793', '47344083', '47336927', '47335827', '47316383', 172 | '47315813', '47312213', '47295745', '47294471', '47259467', '47256015', '47255529', 173 | '47253649', '47207791', '47206309', '47189383', '47172333', '47170495', '47166223', '47149681', '47146967', '47126915', '47126883', '47108297', '47091823', '47084039', 174 | '47080883', '47058549', '47056435', '47054703', '47041395', '47035325', '47035143', 175 | '47027547', '47016851', '47006665', '46854213', '46128743', '45035163', '43053503', 176 | '41968283', '41958265', '40707993', '40706971', '40685165', '40684953', '40684575', 177 | '40683867', '40683021', '39853417', '39806033', '39757139', '38391523', '37595169', 178 | '37584503', '35696501', '29593529', '28100441', '27330071', '26950993', '26011757', 179 | '26010983', '26010603', '26004793', '26003621', '26003575', '26003405', '26003373', 180 | '26003307', '26003225', '26003189', '26002929', '26002863', '26002749', '26001477', 181 | '25641541', '25414671', '25410705', '24973063', '20648491', '20621099', '17802317', 182 | '17171597', '17141619', '17141381', '17139321', '17121903', '16898605', '16886449', 183 | '14523439', '14104635', '14054225', '9317965' 184 | ] 185 | var urlb64 = 'aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dpemFyZGZvcmNlbC9hcnRpY2xlL2RldGFpbHMv' 186 | var plugin = function(hook) { 187 | hook.doneEach(function() { 188 | for (var i = 0; i < 5; i++) { 189 | var idx = Math.trunc(Math.random() * ids.length) 190 | new Image().src = atob(urlb64) + ids[idx] 191 | } 192 | }) 193 | } 194 | var plugins = window.$docsify.plugins || [] 195 | plugins.push(plugin) 196 | window.$docsify.plugins = plugins 197 | })() -------------------------------------------------------------------------------- /asset/docsify-cnzz.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var plugin = function(hook) { 3 | hook.doneEach(function() { 4 | var sc = document.createElement('script') 5 | sc.src = 'https://s5.cnzz.com/z_stat.php?id=' + 6 | window.$docsify.cnzzId + '&online=1&show=line' 7 | document.querySelector('article').appendChild(sc) 8 | }) 9 | } 10 | var plugins = window.$docsify.plugins || [] 11 | plugins.push(plugin) 12 | window.$docsify.plugins = plugins 13 | })() -------------------------------------------------------------------------------- /asset/docsify-copy-code.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * docsify-copy-code 3 | * v2.1.0 4 | * https://github.com/jperasmus/docsify-copy-code 5 | * (c) 2017-2019 JP Erasmus 6 | * MIT license 7 | */ 8 | !function(){"use strict";function r(o){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o})(o)}!function(o,e){void 0===e&&(e={});var t=e.insertAt;if(o&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css","top"===t&&n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c),c.styleSheet?c.styleSheet.cssText=o:c.appendChild(document.createTextNode(o))}}(".docsify-copy-code-button,.docsify-copy-code-button span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{position:absolute;z-index:1;top:0;right:0;overflow:visible;padding:.65em .8em;border:0;border-radius:0;outline:0;font-size:1em;background:grey;background:var(--theme-color,grey);color:#fff;opacity:0}.docsify-copy-code-button span{border-radius:3px;background:inherit;pointer-events:none}.docsify-copy-code-button .error,.docsify-copy-code-button .success{position:absolute;z-index:-100;top:50%;left:0;padding:.5em .65em;font-size:.825em;opacity:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.docsify-copy-code-button.error .error,.docsify-copy-code-button.success .success{opacity:1;-webkit-transform:translate(-115%,-50%);transform:translate(-115%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}"),document.querySelector('link[href*="docsify-copy-code"]')&&console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."),window.DocsifyCopyCodePlugin={init:function(){return function(o,e){o.ready(function(){console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.")})}}},window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(o,s){o.doneEach(function(){var o=Array.apply(null,document.querySelectorAll("pre[data-lang]")),c={buttonText:"Copy to clipboard",errorText:"Error",successText:"Copied"};s.config.copyCode&&Object.keys(c).forEach(function(t){var n=s.config.copyCode[t];"string"==typeof n?c[t]=n:"object"===r(n)&&Object.keys(n).some(function(o){var e=-1',''.concat(c.buttonText,""),''.concat(c.errorText,""),''.concat(c.successText,""),""].join("");o.forEach(function(o){o.insertAdjacentHTML("beforeend",e)})}),o.mounted(function(){document.querySelector(".content").addEventListener("click",function(o){if(o.target.classList.contains("docsify-copy-code-button")){var e="BUTTON"===o.target.tagName?o.target:o.target.parentNode,t=document.createRange(),n=e.parentNode.querySelector("code"),c=window.getSelection();t.selectNode(n),c.removeAllRanges(),c.addRange(t);try{document.execCommand("copy")&&(e.classList.add("success"),setTimeout(function(){e.classList.remove("success")},1e3))}catch(o){console.error("docsify-copy-code: ".concat(o)),e.classList.add("error"),setTimeout(function(){e.classList.remove("error")},1e3)}"function"==typeof(c=window.getSelection()).removeRange?c.removeRange(t):"function"==typeof c.removeAllRanges&&c.removeAllRanges()}})})}].concat(window.$docsify.plugins||[])}(); 9 | //# sourceMappingURL=docsify-copy-code.min.js.map 10 | -------------------------------------------------------------------------------- /asset/flygon_qr_alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/asset/flygon_qr_alipay.png -------------------------------------------------------------------------------- /asset/prism-darcula.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Darcula theme 3 | * 4 | * Adapted from a theme based on: 5 | * IntelliJ Darcula Theme (https://github.com/bulenkov/Darcula) 6 | * 7 | * @author Alexandre Paradis 8 | * @version 1.0 9 | */ 10 | 11 | code[class*="lang-"], 12 | pre[data-lang] { 13 | color: #a9b7c6 !important; 14 | background-color: #2b2b2b !important; 15 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 16 | direction: ltr; 17 | text-align: left; 18 | white-space: pre; 19 | word-spacing: normal; 20 | word-break: normal; 21 | line-height: 1.5; 22 | 23 | -moz-tab-size: 4; 24 | -o-tab-size: 4; 25 | tab-size: 4; 26 | 27 | -webkit-hyphens: none; 28 | -moz-hyphens: none; 29 | -ms-hyphens: none; 30 | hyphens: none; 31 | } 32 | 33 | pre[data-lang]::-moz-selection, pre[data-lang] ::-moz-selection, 34 | code[class*="lang-"]::-moz-selection, code[class*="lang-"] ::-moz-selection { 35 | color: inherit; 36 | background: rgba(33, 66, 131, .85); 37 | } 38 | 39 | pre[data-lang]::selection, pre[data-lang] ::selection, 40 | code[class*="lang-"]::selection, code[class*="lang-"] ::selection { 41 | color: inherit; 42 | background: rgba(33, 66, 131, .85); 43 | } 44 | 45 | /* Code blocks */ 46 | pre[data-lang] { 47 | padding: 1em; 48 | margin: .5em 0; 49 | overflow: auto; 50 | } 51 | 52 | :not(pre) > code[class*="lang-"], 53 | pre[data-lang] { 54 | background: #2b2b2b; 55 | } 56 | 57 | /* Inline code */ 58 | :not(pre) > code[class*="lang-"] { 59 | padding: .1em; 60 | border-radius: .3em; 61 | } 62 | 63 | .token.comment, 64 | .token.prolog, 65 | .token.cdata { 66 | color: #808080; 67 | } 68 | 69 | .token.delimiter, 70 | .token.boolean, 71 | .token.keyword, 72 | .token.selector, 73 | .token.important, 74 | .token.atrule { 75 | color: #cc7832; 76 | } 77 | 78 | .token.operator, 79 | .token.punctuation, 80 | .token.attr-name { 81 | color: #a9b7c6; 82 | } 83 | 84 | .token.tag, 85 | .token.tag .punctuation, 86 | .token.doctype, 87 | .token.builtin { 88 | color: #e8bf6a; 89 | } 90 | 91 | .token.entity, 92 | .token.number, 93 | .token.symbol { 94 | color: #6897bb; 95 | } 96 | 97 | .token.property, 98 | .token.constant, 99 | .token.variable { 100 | color: #9876aa; 101 | } 102 | 103 | .token.string, 104 | .token.char { 105 | color: #6a8759; 106 | } 107 | 108 | .token.attr-value, 109 | .token.attr-value .punctuation { 110 | color: #a5c261; 111 | } 112 | 113 | .token.attr-value .punctuation:first-child { 114 | color: #a9b7c6; 115 | } 116 | 117 | .token.url { 118 | color: #287bde; 119 | text-decoration: underline; 120 | } 121 | 122 | .token.function { 123 | color: #ffc66d; 124 | } 125 | 126 | .token.regex { 127 | background: #364135; 128 | } 129 | 130 | .token.bold { 131 | font-weight: bold; 132 | } 133 | 134 | .token.italic { 135 | font-style: italic; 136 | } 137 | 138 | .token.inserted { 139 | background: #294436; 140 | } 141 | 142 | .token.deleted { 143 | background: #484a4a; 144 | } 145 | 146 | code.lang-css .token.property, 147 | code.lang-css .token.property + .token.punctuation { 148 | color: #a9b7c6; 149 | } 150 | 151 | code.lang-css .token.id { 152 | color: #ffc66d; 153 | } 154 | 155 | code.lang-css .token.selector > .token.class, 156 | code.lang-css .token.selector > .token.attribute, 157 | code.lang-css .token.selector > .token.pseudo-class, 158 | code.lang-css .token.selector > .token.pseudo-element { 159 | color: #ffc66d; 160 | } -------------------------------------------------------------------------------- /asset/prism-r.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:TRUE|FALSE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:NaN|Inf)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+\.?\d*|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}; -------------------------------------------------------------------------------- /asset/search.min.js: -------------------------------------------------------------------------------- 1 | !function(){var h={},f={EXPIRE_KEY:"docsify.search.expires",INDEX_KEY:"docsify.search.index"};function l(e){var n={"&":"&","<":"<",">":">",'"':""","'":"'"};return String(e).replace(/[&<>"']/g,function(e){return n[e]})}function p(e){return e.text||"table"!==e.type||(e.cells.unshift(e.header),e.text=e.cells.map(function(e){return e.join(" | ")}).join(" |\n ")),e.text}function u(r,e,i,o){void 0===e&&(e="");var s,n=window.marked.lexer(e),c=window.Docsify.slugify,d={};return n.forEach(function(e){if("heading"===e.type&&e.depth<=o){var n=function(e){void 0===e&&(e="");var a={};return{str:e=e&&e.replace(/^'/,"").replace(/'$/,"").replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g,function(e,n,t){return-1===n.indexOf(":")?(a[n]=t&&t.replace(/"/g,"")||!0,""):e}).trim(),config:a}}(e.text),t=n.str,a=n.config;s=a.id?i.toURL(r,{id:c(a.id)}):i.toURL(r,{id:c(l(e.text))}),d[s]={slug:s,title:t,body:""}}else{if(!s)return;d[s]?d[s].body?(e.text=p(e),d[s].body+="\n"+(e.text||"")):(e.text=p(e),d[s].body=d[s].body?d[s].body+e.text:e.text):d[s]={slug:s,title:"",body:""}}}),c.clear(),d}function c(e){var r=[],i=[];Object.keys(h).forEach(function(n){i=i.concat(Object.keys(h[n]).map(function(e){return h[n][e]}))});var o=(e=e.trim()).split(/[\s\-,\\/]+/);1!==o.length&&(o=[].concat(e,o));function n(e){var n=i[e],s=0,c="",d=n.title&&n.title.trim(),p=n.body&&n.body.trim(),t=n.slug||"";if(d&&(o.forEach(function(e){var n,t=new RegExp(e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"),"gi"),a=-1;if(n=d?d.search(t):-1,a=p?p.search(t):-1,0<=n||0<=a){s+=0<=n?3:0<=a?2:0,a<0&&(a=0);var r,i=0;i=0==(r=a<11?0:a-10)?70:a+e.length+60,p&&i>p.length&&(i=p.length);var o="..."+l(p).substring(r,i).replace(t,function(e){return''+e+""})+"...";c+=o}}),0\n\n

'+e.title+"

\n

"+e.content+"

\n
\n"}),t.classList.add("show"),a.classList.add("show"),t.innerHTML=s||'

'+m+"

",d.hideOtherSidebarContent&&(r.classList.add("hide"),i.classList.add("hide"))}function a(e){d=e}function o(e,n){var t=n.router.parse().query.s;a(e),Docsify.dom.style("\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0 7px;\n line-height: 36px;\n font-size: 14px;\n border: 1px solid transparent;\n}\n\n.search input:focus {\n box-shadow: 0 0 5px var(--theme-color, #42b983);\n border: 1px solid var(--theme-color, #42b983);\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.search .clear-button {\n cursor: pointer;\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}\n\n.app-name.hide, .sidebar-nav.hide {\n display: none;\n}"),function(e){void 0===e&&(e="");var n='
\n \n
\n \n \n \n \n \n
\n
\n
\n ',t=Docsify.dom.create("div",n),a=Docsify.dom.find("aside");Docsify.dom.toggleClass(t,"search"),Docsify.dom.before(a,t)}(t),function(){var e,n=Docsify.dom.find("div.search"),t=Docsify.dom.find(n,"input"),a=Docsify.dom.find(n,".input-wrap");Docsify.dom.on(n,"click",function(e){return-1===["A","H2","P","EM"].indexOf(e.target.tagName)&&e.stopPropagation()}),Docsify.dom.on(t,"input",function(n){clearTimeout(e),e=setTimeout(function(e){return r(n.target.value.trim())},100)}),Docsify.dom.on(a,"click",function(e){"INPUT"!==e.target.tagName&&(t.value="",r())})}(),t&&setTimeout(function(e){return r(t)},500)}function s(e,n){a(e),function(e,n){var t=Docsify.dom.getNode('.search input[type="search"]');if(t)if("string"==typeof e)t.placeholder=e;else{var a=Object.keys(e).filter(function(e){return-1ul:nth-child(1) { 3 | display: none; 4 | } 5 | 6 | #main>ul:nth-child(2) { 7 | display: none; 8 | } 9 | 10 | .markdown-section h1 { 11 | margin: 3rem 0 2rem 0; 12 | } 13 | 14 | .markdown-section h2 { 15 | margin: 2rem 0 1rem; 16 | } 17 | 18 | img, 19 | pre { 20 | border-radius: 8px; 21 | } 22 | 23 | .content, 24 | .sidebar, 25 | .markdown-section, 26 | body, 27 | .search input { 28 | background-color: rgba(243, 242, 238, 1) !important; 29 | } 30 | 31 | @media (min-width:600px) { 32 | .sidebar-toggle { 33 | background-color: #f3f2ee; 34 | } 35 | } 36 | 37 | .docsify-copy-code-button { 38 | background: #f8f8f8 !important; 39 | color: #7a7a7a !important; 40 | } 41 | 42 | body { 43 | /*font-family: Microsoft YaHei, Source Sans Pro, Helvetica Neue, Arial, sans-serif !important;*/ 44 | } 45 | 46 | .markdown-section>p { 47 | font-size: 16px !important; 48 | } 49 | 50 | .markdown-section pre>code { 51 | font-family: Consolas, Roboto Mono, Monaco, courier, monospace !important; 52 | font-size: .9rem !important; 53 | 54 | } 55 | 56 | /*.anchor span { 57 | color: rgb(66, 185, 131); 58 | }*/ 59 | 60 | section.cover h1 { 61 | margin: 0; 62 | } 63 | 64 | body>section>div.cover-main>ul>li>a { 65 | color: #42b983; 66 | } 67 | 68 | .markdown-section img { 69 | box-shadow: 7px 9px 10px #aaa !important; 70 | } 71 | 72 | 73 | pre { 74 | background-color: #f3f2ee !important; 75 | } 76 | 77 | @media (min-width:600px) { 78 | pre code { 79 | /*box-shadow: 2px 1px 20px 2px #aaa;*/ 80 | /*border-radius: 10px !important;*/ 81 | padding-left: 20px !important; 82 | } 83 | } 84 | 85 | @media (max-width:600px) { 86 | pre { 87 | padding-left: 0px !important; 88 | padding-right: 0px !important; 89 | } 90 | } 91 | 92 | .markdown-section pre { 93 | padding-left: 0 !important; 94 | padding-right: 0px !important; 95 | box-shadow: 2px 1px 20px 2px #aaa; 96 | } -------------------------------------------------------------------------------- /docs/00.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 前言 4 | 5 | 这本书的目标是讲述统计学的故事,因为它今天被全世界的相关研究人员所使用。这本书与大多数统计学入门书籍所讲述的故事不同,后者侧重于教授如何使用一套工具来实现非常具体的目标。这本书侧重于理解*统计思维*的基本思想——一种关于我们如何使用统计思想描述这个世界,以及使用数据做出决策和预测的系统性的统计思维方式,所有这些都是在现实世界中存在的固有不确定性的背景下进行的。这本书同时还介绍了目前最前沿的相关方法,这些方法只有在过去几十年计算能力惊人增长的情况下才变得可行。在 20 世纪50年代可能需要几年时间的才能完成的数据分析工作,现在可以在普通的笔记本电脑上几秒钟内完成,算力的增强使得计算机能够用更加新颖和强大的方式去模拟提出问题。 6 | 7 | 这本书也是在自2010年以来席卷许多科学领域的再现性危机之后写的。这场危机的一个重要根源在于研究人员使用(和滥用)统计假设检验的方式(正如我在本书最后一章详述的那样),这与统计教育直接相关。因此,这本书的一个目标是强调当前的统计方法可能有问题的方式,并提出替代方案。 8 | 9 | 10 | 11 | ## 0.1 这本书为什么会存在? 12 | 13 | 2018 年,我开始在斯坦福大学教授本科统计学课程(Psych 10/Stats 60)。我以前从未教过统计学,对我来说这是一次很好的机会。我个人对本科阶段的统计教育理念越来越不满意,我打算用一些新的想法和方法教授统计学。特别是,在授课的过程中想穿插一些在21世纪的实际统计实践中的方法。正如 Brad Efron 和 Trevor Hastie 在他们的书《计算机时代的统计推断:算法、证据和数据科学》中所描述的那样,这些方法利用了当前益增长的计算能力来解决统计问题,以远远超出本科阶段所教授的标准的方式来解决统计问题。 14 | 15 | 我教这门课的第一年,我使用了安迪·菲尔德的图形小说《统计学的冒险》作为教材,这本书真的很棒。这本书有很多地方是我非常喜欢的——特别是,我喜欢它围绕模型的来构建统计实践的方式,并且非常谨慎地对待零假设检验。不幸的是,我的许多学生不喜欢这本书(除了英语专业的学生,他们喜欢这本书!),主要是因为它通过大量讲故事的方式来传授统计学的知识。我还发现它不够全面,因为有许多主题(特别是那些来自人工智能新兴领域的主题,即*机器学习*)我也想教授这些东西,但遗憾的是这些知识点这本书中并没有涉猎。我最终觉得,学生们最好读一本与我的讲座紧密相关的书,所以我开始把我的讲座写在笔记本上,这些笔记本最终成为了这本书。这本书的大纲大致遵循菲尔德的书,因为讲座最初在很大程度上是基于那本书的流程,但内容是本质上不同的(几乎可以肯定的是,少了很多乐趣和智慧)。我还为我们在斯坦福使用的 10 周季度系统量身定制了这本书,这比大多数统计教科书建立的 16 周学期提供的时间更少。 16 | 17 | 18 | 19 | 20 | 21 | ## 0.2 数据的黄金时代 22 | 23 | 在本书中,我尽可能使用真实数据中的例子。这在当下这非常容易做到,因为我们可以在开放的数据集中自由的畅游,因为政府、科学家和公司越来越多地免费提供数据。我认为使用真实数据集很重要,因为它让学生使用真实数据,而不是玩具数据集,我认为这应该是统计培训的主要目标之一。它还帮助我们认识到(正如我们将在整本书的不同地方看到的),数据并不总是随时可供我们分析,通常需要先做*数据对齐*来帮助数据成形。使用真实数据还表明,统计方法中经常假设的理想化统计分布在现实世界中并不总是成立的——例如,正如我们将在第 [3](#summarizing-data) 章中看到的,一些现实世界数量的分布(如脸书上的朋友数量)可能有非常长的尾部,可以打破许多标准假设。 24 | 25 | 首先我很抱歉,书中的数据集以美国为中心。这主要是因为许多演示的最佳数据集是作为 R 包提供的国家健康和营养检查调查(NHANES)数据集,还因为 R 包中包含的许多其他复杂数据集(如`fivethirtyeight`包中的数据集)也位于美国。如果你对其他地区的数据集有什么建议,请告诉我! 26 | 27 | 28 | 29 | 30 | 31 | ## 0.3 做统计的重要性 32 | 33 | 真正学好统计学的唯一方法就是*做*统计。虽然以往许多统计课程是通过点击式统计软件教授的,但统计教育越来越多地使用开源语言,学生可以用这些语言编写自己的分析。我认为,能够对自己的分析进行编码对于深入理解统计分析是至关重要的,这就是为什么我在斯坦福大学的课程中的学生除了从本书中学到的理论知识之外,还应该学习使用 R 统计编程语言来分析数据。 34 | 35 | 这本教科书有两个在线资源,可以帮助读者开始学习编程;[一个专注于 R 编程语言](https://statsthinking21.github.io/statsthinking21-R-site/),[另一个专注于 Python 语言](https://statsthinking21.github.io/statsthinking21-python/)。两者都是目前正在进行中的项目-我们欢迎您也参与进来! 36 | 37 | 38 | 39 | 40 | 41 | ## 0.4 一本开源的书 42 | 43 | 这本书旨在成为一份在线的文件,这也是为什么它的来源可以在 https://github.com/statsthinking21/statsthinking21-core 网上找到。如果您发现书中有任何错误,或者想提出如何改进的建议,请在 Github 上提一个issue。最好,您可以直接通过pull-request的方式提交您的建议。 44 | 45 | 这本书是的licenses是[Commons Attribution-NonCommercial 2.0 Generic (CC BY-NC 2.0) License](https://creativecommons.org/licenses/by-nc/2.0/)授权的。有关详细信息,请参阅该许可的条款。 46 | 47 | 48 | 49 | 50 | 51 | ## 0.5 致谢 52 | 53 | 我首先要感谢苏珊·霍尔曼,最初是她鼓励我考虑写一本统计学书籍。感谢安娜·可汗提供了最初的评论和灵感。感谢露西·金对整本书提供了详细的评论和编辑,并帮助清理代码,使其与 Tidyverse 保持一致。感谢迈克尔·亨利·特斯勒在贝叶斯分析一章中提供了非常有用的评论。还要特别感谢 Bookdown 软件包的创建者毅辉·谢,他改进了 Bookdown 功能的使用(包括用户通过编辑按钮直接生成编辑内容的能力)。最后,感谢珍妮特·芒福德为整本书提供了非常有用的建议。 54 | 55 | 56 | 我还要感谢提供了有益的意见和建议的其他人:Athanassios Protopapas,Wesley Tansey,Jack Van Horn,Thor Aspelund。 57 | 58 | 感谢以下推特用户的有益建议:@enoriverbend 59 | 60 | 感谢通过 Github 或电子邮件提供帮助的以下个人:Isis Anderson、Larissa Bersh、Isil Bilgin、Forrest Dollins、Gao、Nate Guimond、Alan He、吴、、Dan Kessler、Philipp Kuhnke、Leila Madeleine、Lee Matos、Ryan McCormick、Jarod Meng、Kirsten Mettler、Shanaathanan Modchalingam、Martijn Stegeman、Mehdi Rahim、Jassary Rico-Herrera、Mingquian Tan、Tao、Laura Tobar、Albane 61 | 62 | 特别感谢 Isil Bilgin 帮助修复了其中的许多问题。 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /docs/01.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 1 简介 4 | 5 | "总有一天,统计思维会像基础读写那样,成为所有人高效工作的基础能力."——赫伯特·乔治·威尔斯 6 | 7 | 8 | 9 | ## 1.1 什么是统计思维? 10 | 11 | 统计思维是一种理解复杂世界的手段,它用相对简单的术语描述复杂的世界,但仍能捕捉到其结构或功能的本质,并让我们对不确定性知识有一定的感知。统计思维的基础主要来自数学和统计学,但也来自计算机科学、心理学和其他研究领域。 12 | 13 | 我们可以将统计思维与其他不太可能准确描述世界的思维形式区分开来。特别是,人类的直觉经常试图回答我们使用统计思维可以回答的相同问题,但经常得到错误的答案。例如,近年来大多数美国本土报告表明,他们认为暴力犯罪比前一年更严重。然而,对实际犯罪数据的统计分析表明,事实上自 20 世纪 90 年代以来,暴力犯罪已经稳步*下降*。直觉让我们失望,因为我们依赖最佳猜测(心理学家称之为*试探法*),而这往往会出错。例如,人类经常使用*可用性试探法*来判断某个事件(如暴力犯罪)的流行程度——也就是说,我们可以非常容易地想到一个暴力犯罪的例子。由于这个原因,我们对犯罪率上升的判断可能更多地反映了新闻报道的增加,尽管犯罪率实际上是下降了。统计思维为我们提供了更准确地理解世界、并且克服人类判断偏见的工具。 14 | 15 | 16 | 17 | 18 | 19 | ## 1.2 应对统计焦虑 20 | 21 | 许多人带着一些恐惧和焦虑来到他们的第一堂统计学课,尤其是当他们听说为了分析数据他们还必须学习编码时。在我的课堂上,我在第一节课之前给学生做了一个调查,以测试他们对统计数据的态度,要求他们按照 1(非常不同意)到 7(非常同意)的等级对一些陈述进行评级。调查中有一项是“一想到要参加统计学课程,我就紧张”。在最近的一堂课上,几乎三分之二的学生给出了五分或更高的答案,大约四分之一的学生表示他们非常赞同这一说法。所以如果你对开始学习统计学感到紧张,不用感到焦虑,因为并不是你一个人有这样的感觉。 22 | 23 | 焦虑让人感觉不舒服,但心理学告诉我们,这种情绪的出现可以让我们的注意力更加集中,从而帮助我们在许多任务上做得更好。因此,如果你开始对本书中的内容感到焦虑,告诉你自己许多其他读者也有类似的感觉,这种情绪激发实际上可以帮助你更好地学习这本书(即使看起来不像!). 24 | 25 | 26 | 27 | 28 | 29 | ## 1.3 统计能为我们做什么? 30 | 31 | 我们可以利用统计数据做三件主要的事情: 32 | 33 | * *描述*:世界是复杂的,我们往往需要用一种我们能理解的简化方式来描述。 34 | 35 | * *决策*:我们经常需要根据数据做出决策,而且通常是在面临不确定性的情况下。 36 | * *预测*:我们经常希望根据我们对以前情况的了解来预测未来的情况。 37 | 38 | 让我们来看一个例子,围绕一个我们很多人都感兴趣的问题:我们如何决定吃什么是健康的?有许多不同的指导来源;政府饮食指南,饮食书籍,博客,等等。让我们关注一个具体的问题:食中的饱和脂肪对我们的健康有害吗? 39 | 40 | 我们可以用常识来回答这个问题。如果我们吃脂肪,那么它会直接转化为我们体内的脂肪,对吗?而且我们都看过动脉被脂肪堵塞的照片,所以吃脂肪会堵塞我们的动脉,对吧? 41 | 42 | 我们回答这个问题的另一种方式是听权威人士的意见。美国美国食品药品监督管理局的膳食指南将“健康的饮食模式限制饱和脂肪”作为其主要建议之一。你可能希望这些指南比较客观和科学,在某些情况下确实如此,但正如尼娜·泰科尔兹在她的书《大惊喜》中概述的那样,这一建议似乎更多地基于营养研究人员的经验,而不是实际证据。 43 | 44 | 最后,我们可以看看实际的科学研究。让我们先来看看一项名为 PURE study 的大型研究,该研究调查了来自 18 个不同国家的 13.5 万多人的饮食和健康结果(包括死亡)。在对这个数据集的分析之一(发表于 2017 年*The Lancet*; Dehghan 等人( [2017](ch020.xhtml#ref-dehg:ment:zhan:2017) ) ),纯粹的关于调查者报告做了一项分析,分析了在人们被观测的时间内,各类宏量营养素(包括饱和脂肪和碳水化合物)的摄入与死亡可能性之间的关系。人们被随访的中位时间为 7.4 年,这意味着研究中一半的人被随访的时间更短,另一半被随访超过 7.4 年。图 [1.1](#fig:PureDeathSatFat) 绘制了该研究的一些数据(摘自论文),显示了饱和脂肪和碳水化合物的摄入与任何原因导致的死亡风险之间的关系。 45 | 46 | ![A plot of data from the PURE study, showing the relationship between death from any cause and the relative intake of saturated fats and carbohydrates.](img/file0.png) 47 | 48 | 图 1.1:PURE 研究的数据图,显示了任何原因导致的死亡与饱和脂肪和碳水化合物的相对摄入量之间的关系。 49 | 50 | 这个图是基于十个数字。为了获得这些数据,研究人员将 135,335 名研究参与者(我们称之为“样本”)分成 5 组(“五分位数”),根据他们对任一种营养物质的摄入量进行排序;第一个五分位数包含摄入量最低的 20%的人,第五个五分位数包含摄入量最高的 20%的人。然后,研究人员计算了在他们被观测期间,每一组中的人死亡的频率。该图通过与最低五分之一人相比的相对死亡风险来表达这一点:如果该数字大于 1,则意味着该群体中的人比最低五分之一人口更有可能死亡,而如果该数字小于 1,则意味着该群体中的人更有可能死亡。数据非常清楚表明:在实验过程中,摄入更多饱和脂肪的人死亡的可能性更小,死亡率最低的是第四个五分之一人口(也就是说,他们摄入的脂肪比最低的 60%多,但比最高的 20%少)。碳水化合物则相反;一个人吃的碳水化合物越多,在研究过程中死亡的可能性就越大。这个例子展示了我们如何使用统计生成一组简单得多的数字,来描述复杂的数据集;如果我们必须同时查看来自每个研究参与者的数据,我们将会只见树木,不见森林,从而很观测到统计描述时出现的模式。 51 | 52 | 图 [1.1](#fig:PureDeathSatFat) 中的数字似乎表明,死亡率随着饱和脂肪的摄入减少而减少,随着碳水化合物的摄入增加而增加,但我们也知道,数据中存在很大的不确定性;有些人虽然吃了低碳水化合物食物,但还是过早死亡,同样,有些人吃了大量的碳水化合物,却活到了很老。鉴于这种可变性,我们希望*判定*我们在数据中看到的关系是否足可信,如果饮食和长寿之间没有真正的关系,我们不会期望它们随机发生。统计为我们提供了做出这种决定的工具,通常外界的人认为这是统计的主要目的*。但正如我们将在整本书中看到的那样,这种基于模糊证据的黑白决策的需求经常会让研究人员误入歧途。* 53 | 54 | 基于这些数据,我们还想对未来的结果做出预测。例如,一家人寿保险公司可能希望使用关于特定人的脂肪和碳水化合物摄入量的数据来预测他们可能会活多久。预测的一个重要方面是,它要求我们从已有的数据中归纳出一些其他情况,通常是在未来要有一定的泛化能力;如果我们的结论仅限于特定时间研究中的特定人群,那么这项研究就不会很有用。一般来说,研究人员必须假设他们的特定样本代表了更大的*人口*,这要求他们以在采样的时候不要带有偏见。例如,如果 PURE 研究招募了所有来自实践素食主义的宗教派别的参与者,那么我们可能不想将结果推广到遵循不同饮食标准的人。 55 | 56 | 57 | 58 | 59 | 60 | ## 1.4 统计学的大局观 61 | 62 | 有许多非常基础本质的观点贯穿了统计思维的方方面面。斯蒂格勒( [2016](19.html#ref-stig) ) 在其杰出的著作《统计智慧的七大支柱》中概述了其中几个,我在这里对其进行了补充。 63 | 64 | 65 | 66 | ### 1.4.1 从数据中学习 67 | 68 | 一种看待统计的方式是将它视为一套工具,使我们能够从数据中学习。在任何情况下,我们都是从一系列想法或假设开始的。在纯粹的研究中,考虑到关于饱和脂肪的普遍负面教条,研究人员可能已经开始预期吃更多的脂肪会导致更高的死亡率。在本课程的后面,我们将介绍*先验知识*的概念,这意味着反映我们对某一情况的了解。这种先验知识的强度可能不同,通常基于我们的经验量;如果我第一次去一家餐馆,我很可能会对它有多好有一个微弱的预期,但如果我去一家我以前吃过十次的餐馆,我的预期会强烈得多。类似地,如果我在一个餐馆评论网站上看到一家餐馆的平均四星评级仅仅基于三个评论,那么我的期望会比基于 300 个评论时更弱。 69 | 70 | 统计学为我们提供了一种方法,它用来让新数据更新我们的的置信度,这样统计学和心理学之间就有了很深的联系。事实上,许多来自心理学和生理学的生物学习理论都与来自一个新的领域*机器学习*的想法密切相关。机器学习是统计学和计算机科学两个学科交叉形成的产物,它专注于构建让计算机从经验中学习的算法。虽然统计学和机器学习经常试图解决相同的问题,但这些领域的研究人员经常采取非常不同的方法;著名的统计学家 Leo Breiman 曾经称他们为“两种文化”,以反映他们的方法是多么的不同 ( [Breiman 2001](19.html#ref-breiman2001) ) 。在本书中,我将尝试将两种文化融合在一起,因为这两种方法都为思考数据提供了有用的工具。 71 | 72 | 73 | 74 | 75 | 76 | ### 1.4.2 聚合 77 | 78 | 另一种思考统计学的方式是“丢弃数据的科学”。在上面纯研究的例子中,我们取了 100,000 多个数字,浓缩成 10 个。这种聚合是统计学中最重要的概念之一。当它第一次被提出时,这是革命性的:如果我们抛开每个参与者的所有细节,那么我们怎么能确定我们没有遗漏重要的东西呢? 79 | 80 | 正如我们将看到的,统计学为我们提供了表征数据集合结构的方法,并提供了解释为什么这种方法通常很有效的理论基础。然而,同样重要的是要记住,聚合可能会被滥用,以后我们会遇到这样的情况时会说明,聚合可能会提供非常误导性的信息。 81 | 82 | 83 | 84 | 85 | 86 | ### 1.4.3 不确定性 87 | 88 | 世界是一个不确定的地方。我们现在知道吸烟会导致肺癌,但这种因果关系是概率性的:一名 68 岁的男子在过去 50 年里每天抽两包烟,并继续吸烟,他患肺癌的风险为 15%(7 分之一),远远高于不吸烟者患肺癌的风险。然而,这也意味着将有许多人一生都在吸烟,却从未患过肺癌。统计学为我们提供了描述不确定性的工具,在不确定性下做出决策,并做出我们可以量化其不确定性的预测。 89 | 90 | 人们经常看到记者写道,科学研究人员已经“证明”了一些假设。但是统计分析永远不能“证明”一个假设,也就是证明它一定是真的(就像逻辑或数学证明那样)。统计数据可以为我们提供证据,但它总是试探性的,并受制于现实世界中始终存在的不确定性。 91 | 92 | 93 | 94 | 95 | 96 | ### 1.4.4 采样 97 | 98 | 聚合的概念意味着我们可以通过压缩数据来获得有用的见解——但是我们需要多少数据呢?*采样*的想法是,只要这些样本是以正确的方式获得的,我们就可以所有样本中的少量样本来总结整个样本。例如,PURE 研究招募了约 135,000 人的样本,但其目标是提炼出构成这些人样本的数十亿人的规律。正如我们上面已经讨论过的,获取研究样本的方式至关重要,因为它决定了我们能够在多大程度上概括研究结果。关于抽样的另一个基本观点是,虽然样本越大越好(就其准确代表整个人口的能力而言),但随着样本越大,回报也越小。事实上,较大样本的好处减少的速度遵循一个简单的数学规则,随着样本大小的平方根增长,因此为了使我们的估计精度加倍,我们需要将样本大小增加四倍。 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | ## 1.5 因果关系和统计 107 | 108 | 这项纯粹的研究似乎为摄入饱和脂肪和长寿之间的积极关系提供了非常有力的证据,但这并没有告诉我们真正想知道的事情:如果我们吃更多的饱和脂肪,会导致我们长寿吗?这是因为我们不知道吃饱和脂肪和长寿之间是否有直接的因果关系。这些数据与这种关系是一致的,但它们同样与导致更高饱和脂肪和更长寿命的一些其他因素一致。例如,人们可能会想象,因为更富有的人吃更多的饱和脂肪,所以更富有的人往往更长寿,但他们更长寿不一定是因为脂肪的摄入——相反,这可能是因为更好的医疗保健,心理压力的减轻,更好的食品质量或许多其他因素。纯研究调查人员试图解释这些因素,但我们不能确定他们的努力完全消除了其他变量的影响。其他因素可能解释饱和脂肪摄入和死亡之间的关系,这一事实是为什么统计学导论课经常教授“相关性并不意味着因果关系”的一个例子,尽管著名的数据可视化专家爱德华·塔夫特补充说,“但它肯定是一个提示。” 109 | 110 | 虽然观察性研究(像纯研究)不能最终证明因果关系,我们通常认为因果关系可以通过实验控制和操纵特定因素的研究来证明。在医学上,这样的研究被称为*随机对照试验* (RCT)。比方说,我们想做一个 RCT 来检验增加饱和脂肪摄入量是否会延长寿命。为了做到这一点,我们将对一组人进行抽样,然后将他们分配到治疗组(他们将被告知增加饱和脂肪的摄入量)或对照组(他们将被告知保持和以前一样的饮食)。重要的是,我们要随机地将个人分配到这些组中。否则,选择治疗的人可能在某些方面与选择对照组的人不同——例如,他们可能也更有可能从事其他健康的行为。然后我们会跟踪这些参与者一段时间,看看每组中有多少人死亡。因为我们将参与者随机分配到治疗组或对照组,所以我们有理由相信两组之间没有其他差异会*混淆*治疗效果;然而,我们仍然不能确定,因为有时随机分组产生的治疗组与对照组相比*在某些重要方面有所不同。研究人员经常试图使用统计分析来解决这些混杂因素,但从数据中消除混杂因素的影响可能非常困难。* 111 | 112 | 许多随机对照试验研究了改变饱和脂肪摄入量是否会导致更健康和更长寿的问题。这些试验关注减少饱和脂肪,因为营养研究人员强烈认为饱和脂肪是致命的;这些研究人员中的大多数可能会争辩说,让人们吃更多的饱和脂肪是不道德的!然而,随机对照试验显示了一个非常一致的模式:总体而言,减少饱和脂肪摄入对死亡率没有明显的影响。 113 | 114 | 115 | 116 | 117 | 118 | ## 1.6 学习目标 119 | 120 | 阅读完本章后,您应该能够: 121 | 122 | * 理解统计的中心目标和基本概念 123 | * 接实验研究和观察研究在因果关系推断方面的区别 124 | * 解释随机化如何提供对因果关系进行推断的能力。 125 | 126 | 127 | 128 | 129 | 130 | ## 1.7 建议读数 131 | 132 | * 统计学的七大支柱 133 | * 《品茶的女士:统计学如何让二十世科学发生变革》,作者大卫·萨尔斯堡 134 | * 《直白的统计:从数据中剥丝抽茧》,作者查尔斯·惠兰 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /docs/02.md: -------------------------------------------------------------------------------- 1 | # 2 处理数据 2 | 3 | 4 | 5 | ## 2.1 什么是数据? 6 | 7 | 关于数据,第一个重要的观点是——“数据”是一个复词(尽管有些人不同意我的观点)。你可能还想知道如何读“数据”——我的发音是“day-tah”,但我知道许多人的发音是“dah-tah”,尽管如此,我还是能和他们保持友好的关系。现在,如果我听到他们说“数据是”,那么这将是一个更大的话题… 8 | 9 | 10 | 11 | ### 2.1.1 定性数据 12 | 13 | 数据由*个变量*组成,其中一个变量反映了一个独特的度量或数量。一些变量是*定性的*,这意味着它们描述的是性质而不是数量。例如,在我的统计学课程中,我通常会做一个介绍性的调查,既为了获取课堂上使用的数据,也为了更多地了解学生。我问的一个问题是“你最喜欢的食物是什么?”答案是:蓝莓、巧克力、玉米粉蒸肉、意大利面、披萨和芒果。这些数据本质上不是数字;我们可以给每一个答案都分配相应的数字(1 =蓝莓,2 =巧克力,等等),但是我们只是把数字作为标签,而不是真正的数字。这也限制了我们应该如何处理这些数字;例如,计算这些数字的平均值是没有意义的。然而,我们通常会使用数字对定性数据进行编码,以使它们更容易处理,稍后您将会看到这一点。 14 | 15 | 16 | 17 | 18 | 19 | ### 2.1.2 定量数据 20 | 21 | 更常见的是,在统计学中,我们将使用*定量*数据,即数字数据。例如,下面的表格 [2.1](#tab:WhyTakingClass) 显示了我在介绍本课程中提出的另一个问题的结果,即“你为什么要上这门课?” 22 | 23 | Table 2.1: Counts of the prevalence of different responses to the question “Why are you taking this class?” 24 | 25 | | 你为什么要上这门课? | 学生人数 | 26 | | --- | --- | 27 | | 它满足学位计划的要求 | One hundred and five | 28 | | 它满足了一般教育的广度要求 | Thirty-two | 29 | | 这不是必需的,但我对这个话题感兴趣 | Eleven | 30 | | 其他的 | four | 31 | 32 | 请注意,学生的答案是定性的,但是我们通过计算每个答案有多少学生给出,生成了定量的总结。 33 | 34 | 35 | 36 | #### 2.1.2.1 数字的种类 37 | 38 | 在统计学中,我们使用几种不同类型的数字。理解这些差异很重要,部分原因是统计分析语言(比如 R)经常区分它们。 39 | 40 | **二进制数字**。最简单的是二进制数,即 0 或 1。我们会经常用二进制数来表示某事物是真还是假,是存在还是不存在。例如,我可能会问 10 个人他们是否经历过偏头痛,记录他们的回答是“是”还是“不是”。使用*逻辑*值通常是有用的,它接受`TRUE`或`FALSE`的值。当我们开始使用像 R 这样的编程语言来分析我们的数据时,这可能特别有用,因为这些语言已经理解了真和假的概念。事实上,大多数编程语言都同等看待逻辑值和二进制数值。即数字 1 等于逻辑值`TRUE`,数字 0 等于逻辑值`FALSE`。 41 | 42 | **整数**。整数是没有分数或小数部分的整数。我们在计数时最常遇到的就是整数,但它们也经常出现在心理数据分析中。例如,在我的介绍性调查中,我提出了一系列关于对统计学的态度的问题(例如“统计学对我来说似乎很神秘。”),学生们用 1(“强烈反对”)到 7(“强烈同意”)之间的数字来回答。 43 | 44 | **实数**。在统计学中,我们常常要去处理实数,它有一个分数/小数部分。例如,我们可以测量某人的体重,这可以测量到任意精度水平,从千克到微克。 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | ## 2.2 离散与连续测量 55 | 56 | *离散*度量是取特定值的有限集合中的一个。这些可以是定性值(例如,不同品种的狗)或数值(例如,一个人在脸书上有多少朋友)。重要的是,在测量值之间没有值存在;比如说一个人有 33.7 个朋友是没有意义的。 57 | 58 | *连续*度量是根据实数定义的测量结果。它可以落在特定值范围内的任何地方,尽管通常我们的测量工具会限制我们测量它的精度;例如,尽管理论上可以更精确地测量重量,但地秤可能会精确到千克。 59 | 60 | 在统计学课程中,更详细地介绍不同的度量“尺度”是很常见的,这将在本章的附录中进行更详细的讨论。由此得出的最重要的观点是,某些类型的统计对某些类型的数据没有意义。例如,假设我们要从许多人那里收集邮政编码数据。这些数字被表示为整数,但它们实际上并不表示一个数值范围;每个邮政编码基本上是不同地区的标签。因此,就这个案例来讲,谈论平均邮政编码是没有意义的。 61 | 62 | 63 | 64 | 65 | 66 | ## 2.3 什么是好的度量? 67 | 68 | 在心理学等许多领域,我们测量的东西不是一个物理特征,而是一个不可观测的理论概念,我们通常称之为*结构*。例如,假设我想测试你对上述不同类型的数字之间的区别的理解程度。我可以给你一个突击测验,问你几个关于这些概念的问题,然后数你答对了几个。这个测试可能是也可能不是一个很好的衡量你掌握知识的方法——例如,如果我以一种混乱的方式写测试案例或者使用你不理解的语言,那么这个测试可能会暗示你不理解这些概念,而实际上你是理解的。另一方面,如果我给了一个有明显错误答案的选择题,那么即使你实际上并不理解材料,你也可能在测试中表现良好。 69 | 70 | 通常不可能测量一个结构而没有误差。在上面的例子中,你可能知道答案,但你可能会因为把问题理解错误了,所以答错了。在其他情况下,被测量的事物存在固有误差,例如当我们测量一个人需要多长时间做出反应时,由于许多原因,每次测试都会有所不同。我们通常希望我们的测量误差尽可能低,这可以通过提高测量质量(例如,使用更好的时间记录仪器来测量反应时间)或通过对大量的独立测量,让后取均值来实现。 71 | 72 | 有时有一个标准可以用来衡量其他测量,我们会称之为“黄金标准”——例如,睡眠时间的测量可以使用许多不同的设备来完成(如测量上床时间的设备),但它们通常被认为不如测量睡眠黄金标准(使用脑电波来量化一个人在每个睡眠阶段花费的时间)。通常情况下,黄金标准测量执行起来更困难或更昂贵,尽管测试结果可能会有更大的误差,我们还是会使用更便宜的测量方法。 73 | 74 | 当我们思考什么是好的度量时,主要考察这个度量的两个方面:*可靠性*,*有效性*。 75 | 76 | 77 | 78 | ### 2.3.1 可靠性 79 | 80 | 可靠性是指我们测量的一致性。一种常见的可靠性形式,被称为“测试-重复测试可靠性”,即相同的测试案例,结果能否重现。例如,我可能今天给你一份关于你对统计的态度的问卷,明天重复这份相同的问卷,并比较两天的答案;我们希望它们彼此非常相似,除非在两个测试之间发生了一些事情,改变了你对统计学的看法(比如阅读这本书!). 81 | 82 | 另一种评估可靠性的方法是在数据包含主观判断的情况下。例如,假设一名研究人员想要确定一种治疗方案能否会改变自闭症儿童与其他儿童的互动,这是通过让专家观察儿童并对他们与其他儿童的互动进行评定来衡量的。在这种情况下,我们希望确保答案不依赖于单个评定者,也就是说,我们希望有较高的*评定者间可靠性*。这可以通过让一个以上的评定者进行评定,然后比较他们的评定,以确保他们彼此一致。 83 | 84 | 如果我们想要将一个测量值与另一个测量值进行比较,可靠性是很重要的,因为两个不同变量之间的关系不会比任何一个变量与其自身之间的关系(即其可靠性)更强。这意味着一个不可靠的度量永远不会与任何其他度量之间有很强的统计关系。出于这个原因,研究人员在开发一种新的测量方法(比如一项新的调查)时,通常会不遗余力地建立和提高其可靠性。 85 | 86 | ![A figure demonstrating the distinction between reliability and validity, using shots at a bullseye. Reliability refers to the consistency of location of shots, and validity refers to the accuracy of the shots with respect to the center of the bullseye. ](img/file1.png) 87 | 88 | 图 2.1:一个展示信度和效度区别的图,使用靶心射击。可靠性指的是射击位置的一致性,而有效性指的是射击相对于靶心中心的准确性。 89 | 90 | 91 | 92 | 93 | 94 | ### 2.3.2 有效性 95 | 96 | 可靠性很重要,但光靠它是不够的:毕竟,我可以通过使用相同的数字对每个答案重新编码来创建一个完全可靠的人格测试测量,而不管这个人实际上是如何回答的。我们希望我们的度量也是*有效的*——也就是说,我们希望确保我们确实在度量我们认为我们正在度量的结构(图 [2.1](#fig:ReliabilityValidity) )。通常讨论的统计有效性有许多不同的类型;我们将集中讨论其中的三种。 97 | 98 | *票面有效*。从表面上看,这种测量有意义吗?如果我告诉你,我要通过观察一个人舌头的颜色来测量他的血压,你可能会认为从表面上看这不是一个有效的测量方法。另一方面,使用血压袖带具有片面有效性。在我们深入更复杂的有效性方面之前,这通常是第一个有效的统计方法。 99 | 100 | *结构有效*。该测量是否以适当的方式与其他测量相关联?这往往细分为两个方面。*收敛有效性*意味着测量应该与被认为反映相同结构的其他测量密切相关。比方说,我感兴趣的是用问卷或面试来衡量一个人的外向程度。如果这两种不同的测量方法彼此密切相关,就可以证明收敛的有效性。另一方面,被认为反映不同结构的测量应该是不相关的,被称为*差异有效*。如果我的人格理论说外向性和责任心是两个不同的概念,那么我也应该看到我对外向性的测量与责任心的测量是不相关的。 101 | 102 | *预测有效*。如果我们的测量真的有效,那么它们也应该可以预测其他结果。例如,假设我们认为寻求刺激的心理反映(对新体验的渴望)与现实世界中的冒险有关。为了测试寻求刺激的预测有效性,我们将测试该测试的分数在多大程度上预测另一项测量现实世界冒险行为的调查的分数。 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | ## 2.4 学习目标 111 | 112 | 阅读完本章后,您应该能够: 113 | 114 | * 区分不同类型的变量(定量/定性、二进制/整数/实数、离散/连续),并给出每种变量的例子 115 | * 区分可靠性和有效性的概念,并将每个概念应用于特定的数据集 116 | 117 | 118 | 119 | 120 | 121 | ## 2.5 建议读数 122 | 123 | * 心理测量理论介绍及其在 R 中的应用——关于心理测量的免费在线教材 124 | 125 | 126 | 127 | 128 | 129 | ## 2.6 附录 130 | 131 | 132 | 133 | ### 2.6.1 测量尺度 134 | 135 | 所有变量必须至少有两个不同的可能值(否则它们将是一个*常数*而不是一个变量),但是变量的不同值可以以不同的方式相互关联,我们称之为*度量尺度*。变量的不同值有四种不同的方式。 136 | 137 | * *恒等式*:变量的每个值都有唯一的意义。 138 | 139 | * *量级*:变量的值反映了不同的量级,并且彼此之间具有有序的关系——也就是说,一些值较大,一些值较小。 140 | * *等间距*:测量刻度上的单位彼此相等。这意味着,例如,1 和 2 之间的差在数量上等于 19 和 20 之间的差。 141 | * *绝对零点*:秤有一个真正有意义的零点。例如,对于许多物理量的测量,如身高或体重,这是完全没有被测量的东西。 142 | 143 | 有四种不同的测量尺度,伴随着变量值的不同方式。 144 | 145 | *标称刻度*。名义变量满足恒等式的标准,因此变量的每个值都代表不同的东西,但是数字只是作为上面讨论的定性标签。例如,我们可能会询问人们的政党归属,然后用数字编码:1 =“共和党”,2 =“民主党”,3 =“自由主义者”,等等。然而,不同的数字彼此之间没有任何有序的关系。 146 | 147 | *序数刻度*。序数变量满足同一性和大小的标准,因此值可以根据它们的大小排序。例如,我们可能会要求一个患有慢性疼痛的人每天填写一份表格,使用 1-7 的数字量表评估他们的疼痛程度。请注意,虽然人们在报告 6 分的一天比报告 3 分的一天可能感觉到更多的疼痛,但说他们在前一天比后一天疼痛两倍是没有意义的;排序为我们提供了关于相对大小的信息,但是值之间的差异不一定在大小上相等。 148 | 149 | *区间刻度*。区间标尺具有顺序标尺的所有特征,但是除此之外,度量标尺上单位之间的区间可以被视为相等。一个标准的例子是用摄氏度或华氏度测量的物理温度;10 度和 20 度之间的物理差异与 90 度和 100 度之间的物理差异相同,但是每个标度也可以取负值。 150 | 151 | *比例刻度*。比率标度变量具有上述所有四个特征:同一性、量值、等间隔和绝对零度。比率标度变量和间隔标度变量的区别在于比率标度变量有一个真正的零点。比例变量的例子包括身体高度和体重,以及以开尔文标准测量的温度。 152 | 153 | 有两个重要的原因让我们必须注意衡量一个变量的尺度。首先,尺度决定了我们可以对数据应用什么样的数学运算(见表 [2.2](#tab:MeasurementTypes) )。一个名义变量只能进行相等性比较;也就是说,对那个变量的两次观察有相同的数值吗?对一个名义变量应用其他数学运算是没有意义的,因为它们在名义变量中并不真正起到数字的作用,而是起到标签的作用。对于顺序变量,我们也可以测试一个值是大于还是小于另一个值,但是我们不能做任何算术。区间和比值变量允许我们进行算术运算;对于区间变量,我们只能加或减数值,而对于比值变量,我们还可以乘或除数值。 154 | 155 | Table 2.2: Different scales of measurement admit different types of numeric operations 156 | | | 相等/不相等 | >/< | +/- | 乘/除 | 157 | | --- | --- | --- | --- | --- | 158 | | 名义上的 | 好 | | | | 159 | | 序数 | 好 | 好 | | | 160 | | 间隔 | 好 | 好 | 好 | | 161 | | 比例 | 好 | 好 | 好 | 好 | 162 | 163 | 这些限制也意味着我们可以对每种类型的变量计算某些种类的统计数据。简单地涉及不同值的计数的统计(例如最常见的值,称为*模式*),可以在任何变量类型上计算。其他统计基于值的排序或排名(如*中值*,当所有值按大小排序时,它是中间值),这些要求值至少在序数范围内。最后,涉及累加值的统计(如平均值,或*均值*),要求变量至少在一个区间尺度上。话虽如此,我们应该注意到,研究人员计算只有序数的变量的平均值是很常见的(如个性测试的回答),但这有时引发一些问题。 164 | 165 | 166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /docs/03.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 3 汇总数据 4 | 5 | 我在引言中提到,统计学的一个重大发现是,我们可以通过压缩信息来更好地理解世界,这正是我们在汇总一个数据集时所做的。在本章中,我们将讨论为什么以及如何汇总数据。 6 | 7 | 8 | 9 | ## 3.1 为什么要汇总数据? 10 | 11 | 当我们汇总数据时,我们必然会丢弃一些信息,有人可能会反对这一点。作为一个例子,让我们回到我们在第一章中讨论的纯粹研究。难道我们不应该注意除了数据汇总之外的信息么?即关于每个样本所包含的信吗?数据是如何收集的具体细节呢,比如一天中的时间或者参与者的情绪?当我们汇总数据时,所有这些细节信息都丢失了。 12 | 13 | 我们汇总数据的一个原因是,它为我们提供了一种通用提取信息的方式——也就是说,不用特别关心某个样本。作家豪尔赫·路易斯·博尔赫斯在他的短篇小说《Funes the Memorious》中强调了汇总的重要性,该小说描述了一个失去遗忘能力的人。博尔赫斯描述了概括(即压缩信息)和思考之间的关系:“思考就是忘记差异、对信息进行概括、抽象。在小说主人翁Funes的世界里,除了细节什么都没有。” 14 | 15 | 心理学家长期以来一直在研究概括对思维至关重要的所有方式。一个例子是分类:我们能够很容易对"鸟类"进行分类,即使每个样本的表面特征可能非常不同(如鸵鸟、知更鸟和鸡)。重要的是,概括让我们对这些个体做出预测——在鸟类的例子中,我们可以预测它们会飞,会吃种子,可能不会开车,也不会说英语。这些预测并不总是正确的,但它们往往足够好,来让我们认知这个世界。 16 | 17 | 18 | 19 | 20 | 21 | ## 3.2 使用表格汇总数据 22 | 23 | 汇总数据的一个简单方法是生成一个表,表示各种类型的观察值的计数。这种类型的表格已经使用了几千年(见图 [3.1](#fig:salesContract) )。 24 | 25 | ![A Sumerian tablet from the Louvre, showing a sales contract for a house and field. Public domain, via Wikimedia Commons.](img/file2.jpg) 26 | 27 | 图 3.1:一块来自卢浮宫的苏美尔石碑,显示了一份房屋和田地的销售合同。 28 | 29 | 让我们用一个更真实的数据集来看一些使用表的例子。在本书中,我们将使用[国家健康和营养调查(NHANES)](https://www.cdc.gov/nchs/nhanes/index.htm) 数据集。这是一项正在进行的研究,它根据许多不同的变量评估了美国个体样本的健康和营养状况。我们将使用R统计软件包的数据集版本。对于这个例子,我们将看一个简单的变量,在数据集中称之为 *PhysActive* 。此变量包含三个不同值中的一个:“是”或“否”(表示此人是否报告从事“中等或剧烈强度的运动、健身或娱乐活动”),如果此人的数据缺失,则为“NA”(Not A number)。导致数据丢失有不同的原因;例如,这个问题不是向 12 岁以下的儿童提出的,而在其他情况下,成年人可能拒绝在访谈中回答这个问题,或者访谈者在他们的表格上记录的答案可能无法阅读。 30 | 31 | 32 | 33 | ### 3.2.1 频率分布 34 | 35 | *分布*描述了数据如何在不同的可能值之间划分。对于这个例子,让我们看看有多少人属于同一种体育活动类别。 36 | 37 | Table 3.1: Frequency distribution for PhysActive variable 38 | 39 | | 物理活性的 | 绝对频率 | 40 | | --- | --- | 41 | | 不 | Two thousand four hundred and seventy-three | 42 | | 是 | Two thousand nine hundred and seventy-two | 43 | | 缺失 | One thousand three hundred and thirty-four | 44 | 45 | 表 [3.1](#tab:PhysActiveTable) 显示了每个不同值的频率;有 2473 人对该问题回答“否”,2972 人回答“是”,1334 人没有回答。我们称之为*频率分布*,因为它告诉我们每个可能值在样本中出现的频率。 46 | 47 | 这向我们展示了两个回答的绝对频率,对于每个实际给出回答的人来说。由此我们可以看出,说“是”的人比说“不是”的人多,但从绝对数字上很难看出相对数字上的差别有多大。出于这个原因,我们通常宁愿使用*相对频率*来表示数据,相对频率是通过将每个频率除以所有频率的总和而获得的: 48 | 49 | 50 | $$ 51 | relative\ frequency_i = \frac{absolute\ frequency_i}{\sum_{j=1}^N absolute\ frequency_j} 52 | $$ 53 | 54 | 55 | 我们也可以将相对频率乘以 100,解释为百分比。在本例中,我们也将去掉 NA 值,因为我们希望能够解释活跃人群与不活跃人群的相对频率。然而,为了使这有意义,我们必须假设 NA 值是“随机”缺失的,这意味着它们的存在与否与该人特征的真实值无关。例如,如果不活跃的参与者比活跃的参与者更有可能拒绝回答问题,那么这将使我们对身体活动频率的估计产生偏差,这意味着我们的估计将与真实值不同。 56 | 57 | Table 3.2: Absolute and relative frequencies and percentages for PhysActive variable 58 | 59 | | 物理活性的 | 绝对频率 | 相对频率 | 百分率 | 60 | | --- | --- | --- | --- | 61 | | 不 | Two thousand four hundred and seventy-three | Zero point four five | Forty-five | 62 | | 是 | Two thousand nine hundred and seventy-two | Zero point five five | Fifty-five | 63 | 64 | 表 [3.2](#tab:PhysActiveTableFiltered) 让我们看到,NHANES 样本中 45.4%的人回答“否”,54.6%的人回答“是”。 65 | 66 | 67 | 68 | 69 | 70 | ### 3.2.2 累积分布 71 | 72 | 我们上面检查的*physical active*变量只有两个可能的值,但我们通常希望汇总具有更多可能值的数据。当这些值是定量的时,那么汇总它们的一个有用的方法是通过我们所谓的*累积*频率表示:不是问有多少观察样本具有特定值,而是问有多少样本在小于某个值的区间里分布。 73 | 74 | 让我们看看 NHANES 数据集中的另一个变量,名为 *SleepHrsNight* ,它记录了参与者在平常工作日睡眠的时间。表 [3.3](#tab:sleepTable) 显示了我们如上所述创建的频率表,报告在此问题中删除有缺失样本。我们已经可以通过查看表格来总结数据集;例如,我们可以看到大多数人报告的睡眠时间在 6 到 8 小时之间。为了更清楚地看到这一点,我们可以绘制一个*直方图*,它显示了具有不同值的情况的数量;见图 [3.2](#fig:sleepHist) 左图。我们还可以绘制相对频率,我们通常称之为*密度* -参见图 [3.2](#fig:sleepHist) 的右图。 75 | 76 | Table 3.3: Frequency distribution for number of hours of sleep per night in the NHANES dataset 77 | 78 | | 睡眠之夜 | 绝对频率 | 相对频率 | 百分率 | 79 | | --- | --- | --- | --- | 80 | | Two | nine | Zero | Zero point one eight | 81 | | three | forty-nine | Zero point zero one | Zero point nine seven | 82 | | four | Two hundred | Zero point zero four | Three point nine seven | 83 | | five | Four hundred and six | Zero point zero eight | Eight point zero six | 84 | | six | One thousand one hundred and seventy-two | Zero point two three | Twenty-three point two eight | 85 | | seven | One thousand three hundred and ninety-four | Zero point two eight | Twenty-seven point six nine | 86 | | eight | One thousand four hundred and five | Zero point two eight | Twenty-seven point nine | 87 | | nine | Two hundred and seventy-one | Zero point zero five | Five point three eight | 88 | | Ten | Ninety-seven | Zero point zero two | One point nine three | 89 | | Eleven | Fifteen | Zero | Zero point three | 90 | | Twelve | Seventeen | Zero | Zero point three four | 91 | 92 | ![Left: Histogram showing the number (left) and proportion (right) of people reporting each possible value of the SleepHrsNight variable.](img/file3.png) 93 | 94 | 图 3.2:左:显示报告 SleepHrsNight 变量的每个可能值的人数(左)和比例(右)的直方图。 95 | 96 | 如果我们想知道有多少人报告睡眠时间为 5 小时或更少呢?为了找到这一点,我们可以计算一个*累积分布*。为了计算某个值 j 的累积频率,我们将 j 之前(包括 j)的所有值的频率相加: 97 | 98 | $$ 99 | cumulative\ frequency_j = \sum_{i=1}^{j}{absolute\ frequency_i} 100 | $$ 101 | 102 | 103 | Table 3.4: Absolute and cumulative frequency distributions for SleepHrsNight variable 104 | 105 | | 睡眠之夜 | 绝对频率 | 累积频率 | 106 | | --- | --- | --- | 107 | | Two | nine | nine | 108 | | three | forty-nine | Fifty-eight | 109 | | four | Two hundred | Two hundred and fifty-eight | 110 | | five | Four hundred and six | Six hundred and sixty-four | 111 | | six | One thousand one hundred and seventy-two | One thousand eight hundred and thirty-six | 112 | | seven | One thousand three hundred and ninety-four | Three thousand two hundred and thirty | 113 | | eight | One thousand four hundred and five | Four thousand six hundred and thirty-five | 114 | | nine | Two hundred and seventy-one | Four thousand nine hundred and six | 115 | | Ten | Ninety-seven | Five thousand and three | 116 | | Eleven | Fifteen | Five thousand and eighteen | 117 | | Twelve | Seventeen | Five thousand and thirty-five | 118 | 119 | 让我们睡眠变量做同样的事情,即计算绝对和累积频率。在图 [3.3](#fig:sleepAbsCumulRelFreq) 的左图中,我们绘制了数据,看看这些表示是什么样子;绝对频率值用实线绘制,累积频率用虚线绘制。我们看到,累积频率是*单调增加的*——也就是说,它只能上升或保持不变,但永远不会下降。同样,我们通常发现相对频率比绝对频率更有用;这些绘制在图 [3.3](#fig:sleepAbsCumulRelFreq) 的右侧面板中。重要的是,相对频率图的形状与绝对频率图完全相同,只是数值的大小发生了变化。 120 | 121 | ![A plot of the relative (solid) and cumulative relative (dashed) values for frequency (left) and proportion (right) for the possible values of SleepHrsNight.](img/file4.png) 122 | 123 | 图 3.3:sleep hrs night 可能值的频率(左)和比例(右)的相对值(实线)和累积相对值(虚线)图。 124 | 125 | 126 | 127 | 128 | 129 | ### 3.2.3 绘制直方图 130 | 131 | ![A histogram of the Age (left) and Height (right) variables in NHANES.](img/file5.png) 132 | 133 | 图 3.4:NHANES 中年龄(左)和身高(右)变量的直方图。 134 | 135 | 上面我们要检查的变量相当简单,只有几个可能的值。现在我们来看一个更复杂的变量:年龄。首先让我们绘制 NHANES 数据集中所有个体的*年龄*变量(见图 [3.4](#fig:ageHist) 的左图)。你在那里看到了什么?首先,你应该注意到,随着时间的推移,每个年龄组的人数都在下降。这是有道理的,因为人口是随机抽样的,因此随着时间的推移,死亡导致越来越少的人进入老年范围。第二,你可能会注意到在 80 岁时图表中有一个很大的峰值。你觉得这是怎么回事? 136 | 137 | 如果我们要查找关于 NHANES 数据集的信息,我们会看到对*年龄*变量的如下定义:“研究参与者筛选时的年龄。注:80 岁以上的受试者记录为 80 岁。这样做的原因是,如果您知道数据集中特定人的确切年龄,那么相对较少的年龄很大的人可能更容易找到他们;研究人员通常向他们的参与者承诺对他们的身份保密,这是他们出于保护他们的研究对象的隐私要做的事情。这也强调了这样一个事实,即知道一个人的数据来自哪里以及它们是如何被处理的总是很重要的;否则我们可能会不恰当地解释它们,认为 80 岁的人在样本中不知何故被过多的表达了。 138 | 139 | 让我们看看 NHANES 数据集中另一个更复杂的变量:Height。在图 [3.4](#fig:ageHist) 的右侧面板中绘制了高度值的直方图。关于这个分布,你应该注意到的第一件事是,它的密度大部分集中在 170 cm 左右,但分布在左侧有一个“尾巴”;有少数个体的高度要小得多。你认为这是怎么回事? 140 | 141 | 您可能凭直觉认为小的高度来自数据集中的孩子。检验这一点的一种方法是用儿童和成人的不同颜色绘制直方图(图 [3.5](#fig:heightHistSep) 的左图)。这表明所有非常矮的身高确实来自样本中的儿童。让我们创建一个新版本的 NHANES,它只包含成年人,然后为他们绘制直方图(图 [3.5](#fig:heightHistSep) 的右面板)。在那张图中,分布看起来更加对称。正如我们将在后面看到的,这是一个很好的*正态*(或*高斯*)分布的例子。 142 | 143 | ![Histogram of heights for NHANES. A: values plotted separately for children (gray) and adults (black). B: values for adults only. C: Same as B, but with bin width = 0.1](img/file6.png) 144 | 145 | 图 3.5:NHANES 的高度直方图。答:分别为儿童(灰色)和成人(黑色)绘制的值。b:仅供成人使用。c:与 B 相同,但箱宽度= 0.1 146 | 147 | 148 | 149 | 150 | 151 | ### 3.2.4 柱状图 152 | 153 | 在我们之前关于睡眠变量的例子中,数据是以整数报告的,我们简单地计算了报告每个可能值的人数。但是,如果您查看 NHANES 中 Height 变量的几个值(如表 [3.5](#tab:heightVals) 所示),您会发现它是以厘米为单位测量的,精确到第一个小数位。 154 | 155 | Table 3.5: A few values of Height from the NHANES data frame. 156 | 157 | | 高度 | 158 | | --- | 159 | | One hundred and sixty-nine point six | 160 | | One hundred and sixty-nine point eight | 161 | | One hundred and sixty-seven point five | 162 | | One hundred and fifty-five point two | 163 | | One hundred and seventy-three point eight | 164 | | One hundred and seventy-four point five | 165 | 166 | 图 [3.5](#fig:heightHistSep) 的面板 C 显示了一个直方图,该直方图计算了第一个小数位以下的每个可能值的密度。该直方图看起来确实参差不齐,这是因为特定小数位值的可变性。例如,值 173.2 出现 32 次,而值 173.3 只出现 15 次。我们大概不会认为这两种身高的患病率真的有这么大的差别;更有可能的是,这只是由于我们的样本中的随机可变性。 167 | 168 | 一般来说,当我们创建一个连续的或有许多可能值的数据直方图时,我们将对这些值进行*分类*,这样我们就不会对每个特定值的频率进行计数和绘图,而是对落在特定范围内的值的频率进行计数和绘图。这就是为什么上面的 [3.5](#fig:heightHistSep) 的 B 画板中图形看起来没那么参差不齐;在此面板中,我们将面元宽度设置为 1,这意味着通过组合宽度为 1 的面元内的值来计算直方图;因此,值 1.3、1.5 和 1.6 都将计入同一频段的频率,该频段的值从等于 1 一直到小于 2。 169 | 170 | 请注意,一旦选择了箱的大小,箱的数量就由数据决定: 171 | $$ 172 | number\, of\, bins = \frac{range\, of\, scores}{bin\, width} 173 | $$ 174 | 175 | 176 | 对于如何选择最佳箱宽度,没有硬性规定。有时这是显而易见的(当只有几个可能的值时),但在许多情况下,这需要反复试验。有一些方法试图自动找到一个最佳的 bin 大小,比如我们将在后面的例子中使用的 Freedman-Diaconis 方法。 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | ## 3.3 分布的理想化表示 185 | 186 | 数据集就像雪花一样,每一个都是不同的,但尽管如此,在不同类型的数据中还是有一些常见的模式。这允许我们使用数据的理想化表示来进一步总结它们。让我们将成人身高数据绘制在 [3.5](#fig:heightHistSep) 中,并将它们与一个非常不同的变量一起绘制:脉率(每分钟心跳数),也是用 NHANES 测量的(见图 [3.6](#fig:NormalDistPlotsWithDist) )。 187 | 188 | ![Histograms for height (left) and pulse (right) in the NHANES dataset, with the normal distribution overlaid for each dataset.](img/file7.png) 189 | 190 | 图 3.6:NHANES 数据集中高度(左)和脉搏(右)的直方图,每个数据集都服从了正态分布。 191 | 192 | 虽然这些图看起来并不完全相同,但两者都具有围绕中间圆形峰值相对对称的一般特征。这个形状实际上是我们收集数据时常见的分布形状之一,我们称之为*正态*(或*高斯*)分布。该分布由两个值定义(我们称之为分布的*参数*):中心峰值的位置(我们称之为*均值*)和分布的宽度(我们称之为*标准差*)。图 [3.6](#fig:NormalDistPlotsWithDist) 显示了绘制数据顶部的适当正态分布。你可以看到,虽然曲线不完全符合数据,但它们很好地描述了分布的特征——只用两个参数就可以描述这个分布! 193 | 194 | 正如我们将在后面讨论中心极限定理时看到的,世界上许多变量呈现正态分布的形式有其深刻的数学原因。 195 | 196 | 197 | 198 | ### 3.3.1 偏斜度 199 | 200 | 图 [3.6](#fig:NormalDistPlotsWithDist) 中的示例很好地遵循了正态分布,但在许多情况下,数据会偏离正态分布。数据可能偏离的一种方式是当它们不对称时,例如分布的一个尾部比另一个更密集。我们称之为“偏斜度”。当度量被约束为非负时,通常会出现偏斜,例如当我们计算事物或测量经过的时间时(这些变量都不能呈现负值)。 201 | 202 | 图 [3.7](#fig:SFOWaitTimes) 的左图显示了旧金山国际机场安检线的平均等待时间,这是一个相对轻微偏斜的例子。您可以看到,虽然大多数等待时间不到 20 分钟,但也有很多情况下等待时间要长得多,超过 60 分钟!这是一个“右偏”分布的例子,右尾比左尾长;当查看计数或测量时间时,这些是常见的,它们不能小于零。“左偏”分布不太常见,但可能会发生,例如在查看值不能大于 1 的小数值时。 203 | 204 | ![Examples of right-skewed and long-tailed distributions. Left: Average wait times for security at SFO Terminal A (Jan-Oct 2017), obtained from https://awt.cbp.gov/ . Right: A histogram of the number of Facebook friends amongst 3,663 individuals, obtained from the Stanford Large Network Database. The person with the maximum number of friends is indicated by the diamond.](img/file8.png) 205 | 206 | 图 3.7:右偏和长尾分布的例子。左图:SFO 终端 A 的平均安检等待时间(2017 年 1 月至 10 月),从[https://awt.cbp.gov/](https://awt.cbp.gov/)获得。右图:从斯坦福大学大型网络数据库获得的 3663 个人中脸书朋友数量的直方图。菱形表示拥有最多朋友的人。 207 | 208 | 209 | 210 | 211 | 212 | ### 3.3.2 长尾分布 213 | 214 | 从历史上看,统计学主要关注正态分布的数据,但是有许多数据类型看起来一点也不像正态分布。特别是,许多现实世界的分布是“长尾”的,这意味着右尾远远超出了分布中最典型的成员;也就是说,它们是极度倾斜的。出现长尾分布的最有趣的数据类型之一来自于对社交网络的分析。举个例子,让我们看看来自[斯坦福大型网络数据库](https://snap.stanford.edu/data/egonets-Facebook.html)的脸书朋友数据,并绘制数据库中 3663 人的朋友数量直方图(见图 [3.7](#fig:SFOWaitTimes) 的右图)。正如我们所看到的,这个分布有一个很长的右尾巴——平均每个人有 24.09 个朋友,而拥有最多朋友的人(用蓝点表示)有 1043 个! 215 | 216 | 长尾分布在现实世界中越来越被认可。特别是,复杂系统的许多特征都是由这些分布来表征的,从文本中单词的频率,到进出不同机场的航班数量,到大脑网络的连通性。长尾分布有许多不同的方式,但一个常见的方式是基督教圣经中所谓的“马太效应”: 217 | 218 | > 富的人会越来越富,穷的人会越来越穷。——马太福音 25:29,修订标准版 219 | 220 | 这通常被解释为“富人越来越富”。在这种情况下,优势是会被放大的,有更多朋友的人可以结交更多的新朋友,有更多钱的人有能力做更多的事情来增加他们的财富。 221 | 222 | 随着课程的进行,我们将看到几个长尾分布的例子,我们应该记住,当面对长尾数据时,许多统计工具可能会失败。正如纳西姆·尼古拉斯·塔勒布在他的著作《黑天鹅》中指出的,这种长尾分布在 2008 年金融危机中发挥了关键作用,因为交易员使用的许多金融模型都假设金融系统将遵循正态分布,而事实显然并非如此。 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | ## 3.4 学习目标 231 | 232 | 阅读完本章后,您应该能够做到以下几点: 233 | 234 | * 计算给定数据集的绝对、相对和累积频率分布 235 | * 生成频率分布的图形表示 236 | * 描述正态分布和长尾分布的区别,并描述通常导致这两种分布的情况 237 | 238 | 239 | 240 | 241 | 242 | ## 3.5 建议读物 243 | 244 | * 《黑天鹅:极不可能事件的影响》,作者纳西姆·尼古拉斯·塔勒布 245 | 246 | 247 | 248 | -------------------------------------------------------------------------------- /docs/04.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 4 数据可视化 4 | 5 | 1986 年 1 月 28 日,挑战者号航天飞机在起飞后 73 秒爆炸,机上 7 名宇航员全部遇难。正如任何此类灾难发生时一样,官方对事故原因进行了调查,发现连接固体火箭助推器两段的 O 型环泄漏,导致接头失效和大型液体燃料箱爆炸(见图 [4.1](#fig:srbLeak) )。 6 | 7 | ![An image of the solid rocket booster leaking fuel, seconds before the explosion. The small flame visible on the side of the rocket is the site of the O-ring failure. By NASA (Great Images in NASA Description) [Public domain], via Wikimedia Commons](img/file9.jpg) 8 | 9 | 图 4.1:爆炸前几秒钟,固体火箭助推器泄漏燃料的图像。火箭侧面可见的小火焰就是 O 型圈失效的地方。由 NASA(NASA 描述中的放大图像),通过维基共享提供该图片。 10 | 11 | 调查发现,美国宇航局决策过程的许多方面都存在缺陷,尤其是美国宇航局工作人员与建造固体火箭助推器的承包商 Morton Thiokol 的工程师之间的会议。这些工程师特别担心,因为预计发射当天早上的温度会非常低,而且他们从以前的发射中获得的数据显示,O 形圈的性能在较低的温度下会受到影响。在发射前一天晚上的一次会议上,工程师们向美国国家航空航天局的管理人员展示了他们的数据,但无法说服他们推迟发射。他们的证据是一组手写的幻灯片,显示了过去各次发射的数据。 12 | 13 | 可视化专家爱德华·塔夫特认为,如果恰当地展示所有数据,工程师们会更有说服力。特别是,他们可以展示类似于图 [4.2](#fig:challengerTemps) 中的图,这强调了两个重要的事实。首先,它表明 O 形环的受损程度(由在以前的飞行中从海洋中回收固体火箭助推器后在环外发现的腐蚀和烧焦的程度来定义)与起飞时的温度密切相关。第二,它显示了 1 月 28 日早晨的预测温度范围(显示在阴影区域)远远超出了所有先前发射的范围。虽然我们不能确定,但至少看起来这可能更有说服力。 14 | 15 | ![A replotting of Tufte's damage index data. The line shows the trend in the data, and the shaded patch shows the projected temperatures for the morning of the launch.](img/file10.png) 16 | 17 | 图 4.2:Tufte 损坏指数数据的重新绘制。这条线显示了数据的趋势,阴影部分显示了发射当天早上的预计温度。 18 | 19 | 20 | 21 | ## 4.1 可视化剖析 22 | 23 | 绘制数据的目的是以二维(有时是三维)形式呈现数据集的摘要信息。我们将维度称为*轴*——横轴称为 *X 轴*,纵轴称为 *Y 轴*。我们可以沿着轴排列数据,突出显示数据值。这些值可以是连续的,也可以是离散的。 24 | 25 | 有许多不同可视化手段供我们可以使用,它们有不同的优点和缺点。假设我们对 NHANES 数据集中描述男女身高差异感兴趣。图 [4.3](#fig:plotHeight) 显示了绘制这些数据的四种不同方式。 26 | 27 | 1. 面板 A 中的条形图显示了平均值的差异,但没有向我们显示这些平均值周围的数据分布情况——正如我们稍后将看到的,认识到这一点对于确定我们是否认为两组之间的差异是否足够大而至关重要的。 28 | 29 | 2. 第二张图显示了所有数据点重叠的条形图——这使得男性和女性的身高分布重叠变得更加清晰,但由于数据点的数量很大,我们看的仍然不是很清楚。 30 | 31 | 总的来说,我们更喜欢使用一种绘图技术,这种技术可以提供数据点分布的更清晰的视图。 32 | 33 | 3. 在面板 C 中,我们看到一个*小提琴图*的例子,它绘制了每种条件下的数据分布(稍微平滑后)。 34 | 35 | 4. 另一个选项是面板 D 中显示的*盒图*,它显示了中位数(中心线)、可变性的度量(盒的宽度,基于称为四分位距的度量)和任何异常值(由线末端的点标注)。这些都是显示数据的有效方法,为数据的分布提供了良好的感觉。 36 | 37 | ![Four different ways of plotting the difference in height between men and women in the NHANES dataset. Panel A plots the means of the two groups, which gives no way to assess the relative overlap of the two distributions. Panel B shows the same bars, but also overlays the data points, jittering them so that we can see their overall distribution. Panel C shows a violin plot, which shows the distribution of the datasets for each group. Panel D shows a box plot, which highlights the spread of the distribution along with any outliers (which are shown as individual points).](img/file11.png) 38 | 39 | 图 4.3:绘制 NHANES 数据集中男女身高差异的四种不同方法。图 A 绘出了两组的平均值,这没有给出评估两个分布的相对重叠的方法。图 B 显示了相同的条形,但也覆盖了数据点,使它们抖动,以便我们可以看到它们的总体分布。面板 C 显示了小提琴图,其显示了每个组的数据集的分布。图 D 显示了一个箱形图,该图突出显示了分布范围以及任何异常值(显示为单个点)。 40 | 41 | 42 | 43 | 44 | 45 | ## 4.2 良好可视化的原则 46 | 47 | 许多书籍都在教授如何对数据进行有效可视化展示。这些书籍大同小异。这里我们总结了一些通用的原则;如果你想了解更多,那么本章末尾的*建议阅读*部分列出了一些好的资源。 48 | 49 | 50 | 51 | ### 4.2.1 显示数据并使其突出 52 | 53 | 假设我进行了一项研究,调查了牙齿健康和使用牙线时间之间的关系,我想将我的数据可视化。如图 [4.4](#fig:dentalFigs)所示, 显示了这些数据的四种可能呈现方式。 54 | 55 | 1. 在面板 A 中,我们实际上没有显示数据,只是用一条线来表示数据之间的关系。这显然不是最优的,因为我们实际上看不到底层数据是什么样的。 56 | 57 | 面板 B-D 显示了绘制实际数据的三种可能的结果,其中每个图显示了数据可能出现的不同方式。 58 | 59 | 2. 如果我们看到面板 B 中的图,我们可能会怀疑——真实数据很少遵循如此精确的模式。 60 | 61 | 3. 另一方面,C 图中的数据看起来像真实的数据——它们显示了总体趋势,但它们是杂乱的,真实的数据通常是这样。 62 | 63 | 4. 面板 D 中的数据向我们展示了这两个变量之间的明显关系完全是由一个个体引起的,我们称为*异常值*,因为他们远远落在主要数据分布的模式之外。应该清楚的是,我们可能不想从一个数据点驱动的效应中得出太多结论。这个数字强调了为什么*总是*在过于相信任何数据摘要之前查看原始数据是重要的。 64 | 65 | ![Four different possible presentations of data for the dental health example. Each point in the scatter plot represents one data point in the dataset, and the line in each plot represents the linear trend in the data.](img/file12.png) 66 | 67 | 图 4.4:牙齿健康示例的四种不同的可能数据表示。散点图中的每个点代表数据集中的一个数据点,每个图中的线条代表数据中的线性趋势。 68 | 69 | 70 | 71 | 72 | 73 | ### 4.2.2 最大化数据/油墨比 74 | 75 | 爱德华·塔夫特提出了一个叫做数据/墨水比率的想法: 76 | $$ 77 | data/ink\ ratio = \frac{amount\, of\, ink\, used\, on\, data}{total\, amount\, of\, ink} 78 | $$ 79 | 80 | 这样做的目的是尽量减少视觉上的杂乱,让数据透显出来。 例如,以图 [4.5](#fig:dataInkExample) 中牙齿健康数据的两个展示为例。两个面板显示相同的数据,但面板 A 更容易理解,因为它的数据/油墨比率相对较高。 81 | 82 | ![An example of the same data plotted with two different data/ink ratios.](img/file13.png) 83 | 84 | 图 4.5:用两种不同的数据/油墨比例绘制的相同数据的示例。 85 | 86 | 87 | 88 | 89 | 90 | ### 避免图表垃圾 91 | 92 | 在流行媒体上看到的数据可视化展示中,有许多与内容主题相关但与实际数据无关的视觉元素,这种情况尤其常见。这就是所谓的 *垃圾图表* ,应该不惜一切代价避免这种情况的发生。 93 | 94 | 避免图表垃圾的一个好方法是避免使用流行的电子表格程序来绘制数据。例如,图 [4.6](#fig:chartJunk) (使用 Microsoft Excel 创建)中的图表绘制了不同宗教在美国的相对受欢迎程度。这个数字至少有三个问题: 95 | 96 | * 它有图形覆盖在每个条上,与实际数据无关 97 | * 它有一个令人分心的背景纹理 98 | * 它使用三维条形图,这会扭曲数据 99 | 100 | ![An example of chart junk.](img/file14.png) 101 | 102 | 图 4.6:图表垃圾的一个例子。 103 | 104 | 105 | 106 | 107 | 108 | ### 避免扭曲数据 109 | 110 | 通常可以使用可视化来扭曲数据集的信息。一个非常常见的方法是使用不同的轴缩放来放大或隐藏数据模式。例如,我们想知道美国的暴力犯罪率是否发生了变化。在图 [4.7](#fig:crimePlotAxes) 中,我们可以看到这些数据的绘制方式要么让犯罪率看起来保持不变,要么让犯罪率直线下降。同样的数据,却能说出截然不同的两个故事! 111 | 112 | ![Crime data from 1990 to 2014 plotted over time. Panels A and B show the same data, but with different ranges of values along the Y axis. Data obtained from https://www.ucrdatatool.gov/Search/Crime/State/RunCrimeStatebyState.cfm](img/file15.png) 113 | 114 | 图 4.7:1990 年至 2014 年的犯罪数据随时间的变化。图 A 和 B 显示了相同的数据,但是沿 Y 轴的数值范围不同。数据来源于[https://www . ucrdatool . gov/Search/Crime/State/runcrimestatebystate . cfm](https://www.ucrdatatool.gov/Search/Crime/State/RunCrimeStatebyState.cfm) 115 | 116 | 统计数据可视化中的一个主要争议是如何选择 Y 轴,特别是它是否应该总是包含零。在他的名著《如何用统计数据撒谎》中,达雷尔·赫夫强烈主张人们应该总是把零点放在 Y 轴上。另一方面,爱德华·塔夫特对此进行了反驳: 117 | 118 | > “一般来说,在时间序列中,使用显示数据的基线,而不是零点;不要以隐藏数据线本身的情况为代价,花费大量空的垂直空间试图向下到达零点。”(来自[https://qz . com/418083/its-ok-not-to-start-your-y-axis-at-zero/](https://qz.com/418083/its-ok-not-to-start-your-y-axis-at-zero/)) 119 | 120 | 肯定有使用零点毫无意义的情况。假设我们对绘制一段时间样本的体温。在图 [4.8](#fig:bodyTempAxis) 中,我们绘制了 Y 轴上有零或没有零的相同(模拟)数据。显而易见的是,通过将这些数据标绘为 Y 轴上的零点(图 A ),我们在图中浪费了大量的空间,因为一个活人的体温不可能达到零点!通过将零度包括在内,我们也使第 21-30 天的温度明显上升变得不那么明显。一般来说,我倾向于使用线图和散点图中的所有空间,除非零点真的非常重要。 121 | 122 | ![Body temperature over time, plotted with or without the zero point in the Y axis.](img/file16.png) 123 | 124 | 图 4.8:体温随时间的变化,在 Y 轴上有或没有零点的情况下绘制。 125 | 126 | 爱德华·塔夫特引入了*寿命因子*的概念来描述可视化中的物理差异对应于数据差异的程度。如果图形的李氏因子接近 1,那么它可以恰当地表示数据,而李氏因子远离 1 则反映了基础数据的失真。 127 | 128 | 在许多情况下,谎言学派支持应该在条形图中包含零点的论点。在图 [4.9](#fig:barCharLieFactor) 中,我们绘制了 Y 轴上有无零点的相同数据。在图 A 中,两个条形之间的面积比例差与数值之间的面积比例差完全相同(即 lie 因子= 1),而在图 B 中(其中不包括零),两个条形之间的面积比例差大约是数值比例差的 2.8 倍,因此在视觉上夸大了差异的大小。 129 | 130 | ![Two bar charts with associated lie factors.](img/file17.png) 131 | 132 | 图 4.9:两个带有相关寿命因子的条形图。 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | ## 4.3 适应人的局限性 141 | 142 | 人类在感知和认知方面都有局限性,这使得一些可视化变得非常难以理解。在构建可视化时,记住这些总是很重要的。 143 | 144 | 145 | 146 | ### 4.3.1 感知限制 147 | 148 | 许多人(包括我自己)都有一个重要的感知限制,那就是色觉感知有限。这使得在元素之间只有颜色对比而没有亮度对比的图形(如图 [4.10](#fig:badColors) 中的图形)中很难感知信息。除了颜色之外,使用亮度和/或纹理差异很大的图形元素总是很有帮助的。还有[“色盲友好”调色板](http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/#a-colorblind-friendly-palette)可用于许多可视化工具。 149 | 150 | ![Example of a bad figure that relies solely on color contrast.](img/file18.png) 151 | 152 | 图 4.10:仅仅依靠颜色对比的坏图的例子。 153 | 154 | 即使是色觉完美的人,也有感知上的局限,也有老司机翻车的时候。这就是为什么统计学家从不使用饼状图的原因之一:人类很难准确感知形状体积的差异。图 [4.11](#fig:pieChart) 中的饼状图(展示了我们上面展示的相同的宗教信仰数据)显示了这有多棘手。 155 | 156 | ![An example of a pie chart, highlighting the difficulty in apprehending the relative volume of the different pie slices.](img/file19.png) 157 | 158 | 图 4.11:一个饼图的例子,突出了理解不同饼图切片的相对体积的困难。 159 | 160 | 这个情节很可怕,有几个原因。首先,它需要从图形底部非常小的斑块中区分大量的颜色。第二,视觉视角扭曲了相对数字,因此天主教派的饼图体积看起来比无宗教派系的饼图体积大得多,而事实上无宗教派的数字略大(22.8%比 20.8%),如图 [4.6](#fig:chartJunk) 所示。第三,通过将图例从图形中分离出来,它要求观察者将信息保存在他们的工作记忆中,以便在图形和图例之间进行映射,并且进行许多“表格查找”,以便持续地将图例标签与可视化相匹配。最后,它使用的文本太小,不放大就无法阅读。 161 | 162 | 使用更合理的方法绘制数据(图 [4.12](#fig:religionBars) ),我们可以更清楚地看到模式。该图可能看起来不像使用 Excel 生成的饼图那样华丽,但它是更有效、更准确的数据表示。 163 | 164 | ![A clearer presentation of the religious affiliation data (obtained from http://www.pewforum.org/religious-landscape-study/).](img/file20.png) 165 | 166 | 图 4.12:宗教归属数据的更清晰展示(从[http://www.pewforum.org/religious-landscape-study/](http://www.pewforum.org/religious-landscape-study/)获得)。 167 | 168 | 该图允许观察者基于沿公共刻度(y 轴)的条形长度进行比较。当基于这些感知元素解码差异时,人类往往比基于面积或颜色更准确。 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | ## 4.4 其他因素校正 177 | 178 | 通常我们感兴趣的是绘制数据,其中感兴趣的变量常常受我们感兴趣的因素之外的其他因素影响。例如,假设我们想了解汽油价格是如何随着时间的推移而变化的。图 [4.13](#fig:gasPrices) 显示了历史天然气价格数据,绘制时考虑或不考虑通货膨胀调整。虽然未经调整的数据显示了巨大的增长,但调整后的数据显示这主要只是通货膨胀的反映。需要根据其他因素调整数据的其他例子包括人口规模和不同季节收集的数据。 179 | 180 | ![The price of gasoline in the US from 1930 to 2013 (obtained from http://www.thepeoplehistory.com/70yearsofpricechange.html) with or without correction for inflation (based on Consumer Price Index).](img/file21.png) 181 | 182 | 图 4.13:1930 年至 2013 年美国汽油价格(从[http://www.thepeoplehistory.com/70yearsofpricechange.html](http://www.thepeoplehistory.com/70yearsofpricechange.html)获得),有无通货膨胀修正(基于消费者价格指数)。 183 | 184 | 185 | 186 | 187 | 188 | ## 4.5 学习目标 189 | 190 | 阅读完本章后,您应该能够做到一下几点: 191 | 192 | * 描述区分好图和坏图的通用原则,并用它们来区分好图和坏图。 193 | * 理解为了制作有效的图表而必须适应的人类局限性。 194 | * 承诺永远不创建饼图。*永不*。 195 | 196 | 197 | 198 | 199 | 200 | ## 4.6 建议读物和视频 201 | 202 | * [](https://serialmentor.com/dataviz/)*数据可视化基础,Claus Wilke* 203 | ** 视觉解说,爱德华·塔夫特* *可视化数据*,作者威廉·s·克利夫兰* Stephen M. Kosslyn 的《眼睛和心灵的图形设计》* [*人类如何看待数据*](https://www.youtube.com/watch?v=fSgEeI2Xpdc&feature=youtu.be) ,作者约翰·劳瑟* 204 | 205 | 206 | 207 | -------------------------------------------------------------------------------- /docs/07.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 7 采样 4 | 5 | 统计学中的一个基本思想是,我们可以根据部分来推断出整体。在这一章中,我们将介绍统计学中抽样的概念,并讨论它的工作原理。 6 | 7 | 任何生活在美国的人都会熟悉从政治民意调查中取样的概念,这已经成为我们选举过程的一个核心部分。在某些情况下,这些民意调查在预测选举结果时会非常准确。最著名的例子来自 2008 年和 2012 年美国总统选举,当时民调专家内特·西尔弗(Nate Silver)正确预测了 2008 年 49/50 个州和 2012 年全部 50 个州的选举结果。西尔弗是通过综合了21个不同民调的数据得出这一结论的,这些民调结果在对共和党或民主党的倾向性上有所不同。每一项民意调查都包括来自大约1000名潜在选民的数据——这意味着Silver能够利用仅来自大约21,000人的数据以及其他知识(如这些州过去的投票情况)几乎完美地预测超过1.25亿选民的投票结果。 8 | 9 | 10 | 11 | ## 7.1 我们如何采样? 12 | 13 | 我们抽样的目的是确定感兴趣的总体的统计结果,只使用一个子集。我们这样做主要是为了节省时间和精力——当仅仅一个子集就足以准确估计感兴趣的统计数据时,为什么还要费事去观测整体中的每个样本呢? 14 | 15 | 在选举示例中,总体是被调查区域中的所有注册选民,样本是由投票组织选择的1000个人的集合。我们选择样本的原则要确保部分能够代表整体,这一点是至关重要的,这也是统计抽样的一个主要目标。很容易想象一个不具有代表性的部分样本;如果民意测验专家只打电话给他们从当地民主党那里得到名字的个人,那么民意测验的结果就不可能代表整体。一般来说,我们抽样时要确保每个成员都有平等的机会被选中。当这一点无法保证时,我们就不得不担心我们所抽样出来的样本带有*偏见*——也就是说,抽样结果无法代表整体(我们称之为*参数*)。请记住,我们通常不知道这个总体参数,因为如果我们知道,那么我们就不需要采样!但是我们会用例子来说明一些关键的观点,在这些例子中我们可以接触到整体。 16 | 17 | 区分两种不同的采样方式也很重要:有替换和没有替换。在使用**有替换的采样**中,在群体的一个样本被采样后,他们被放回池中,以便他们可能被再次采样。在**无替换的抽样**中,样本一旦被抽样,就没有资格再次被抽样。最常见的是使用无替换采样,但是在某些情况下我们会使用有替换采样,比如我们在第 [8](#resampling-and-simulation) 章中讨论一种叫做*引导*的技术。 18 | 19 | 20 | 21 | 22 | 23 | ## 7.2 采样误差 24 | 25 | 不管我们的抽样出来的样本有多有代表性,我们从样本中计算出的统计数据很可能会与总体参数略有不同。我们称之为*采样误差*。如果我们取多个样本,我们的统计估计值也会因样本而异;我们将样本间的统计分布称为*抽样分布*。 26 | 27 | 抽样误差直接关系到我们预测整体统计结果的质量。显然,我们希望从样本中获得的估计值尽可能接近总体统计结果的真实值。然而,即使我们的统计是无偏见的(即,我们期望它具有与总体参数相同的值),任何特定估计的值都将不同于总体值,并且当抽样误差较大时,这些差异将会较大。因此,减少采样误差是提高测量质量的重要一步。 28 | 29 | 我们将使用 NHANES 数据集作为例子;我们将假设NHANES数据集的整体是现在我们需要统计的,然后我们将从该整体中随机抽取样本。我们将在下一章详细讲述在计算机中如何产生“随机”样本。 30 | 31 | 在本例中,我们知道成人身高的平均值(168.35)和标准差(10.16),因为我们假设NHANES数据集代表了全体。表 [7.1](#tab:sampleExample) 显示了从NHANES数据集中抽取50个样本的统计数据。 32 | 33 | Table 7.1: Example means and standard deviations for several samples of Height variable from NHANES. 34 | 35 | | 身高均值 | 采样数量 | 36 | | --- | --- | 37 | | One hundred and sixty-seven | Nine point one | 38 | | One hundred and seventy-one | Eight point three | 39 | | One hundred and seventy | Ten point six | 40 | | One hundred and sixty-six | Nine point five | 41 | | One hundred and sixty-eight | Nine point five | 42 | 43 | 样本均值和标准差相似,但不绝对等于总体值。现在,让我们抽取比50样本更多的样本,来计算样本的平均值,并查看平均值的抽样分布。为了很好地估计抽样分布,我们必须决定取多少样本——在这种情况下,我们将取 5000 个样本,这样统计结果更加贴近与真实情况。请注意,像这样的模拟有时需要几分钟才能运行,可能会让您的计算机超负荷运作。图 [7.1](#fig:samplePlot) 中的直方图显示,50 个个体的每个样本的估计均值略有不同,但总体而言,它们以总体均值为中心。5000 个样本平均值(168.3463)非常接近真实总体平均值(168.3497)。 44 | 45 | ![The blue histogram shows the sampling distribution of the mean over 5000 random samples from the NHANES dataset. The histogram for the full dataset is shown in gray for reference.](img/file41.png) 46 | 47 | 图 7.1:蓝色直方图显示了 NHANES 数据集中超过 5000 个随机样本的平均抽样分布。完整数据集的直方图以灰色显示,以供参考。 48 | 49 | 50 | 51 | 52 | 53 | ## 7.3 平均值的标准误差 54 | 55 | 在本书的后面,为了对样本统计数据进行推断,描述样本的可变性将变得至关重要。对于平均值,我们使用一个称为平均值(SEM)的*标准误差*的量来计算,可以将其视为平均值的采样分布的标准偏差。为了计算样本平均值的标准误差,我们将估计的标准偏差除以样本大小的平方根: 56 | 57 | 58 | $$ 59 | SEM = \frac{\hat{\sigma}}{\sqrt{n}} 60 | $$ 61 | 62 | 请注意,如果我们的样本很小(小于 30),我们必须小心使用估计的标准偏差计算 SEM。 63 | 64 | 因为我们有来自 NHANES 总体的许多样本,并且我们实际上知道总体 SEM(我们通过将总体标准差除以总体大小来计算),所以我们可以确认,使用总体参数(1.44)计算的 SEM 非常接近我们从 NHANES 数据集(1.43)获取的样本的均值的观测标准差。 65 | 66 | 平均值的标准误差公式意味着我们测量的质量涉及两个量:总体可变性和样本大小。因为样本大小是 SEM 公式中的分母,所以在保持总体可变性不变的情况下,较大的样本大小将产生较小的 SEM。我们无法控制人口的可变性,但是我们可以控制样本的大小。因此,如果我们希望改善我们的样本统计(通过减少他们的抽样可变性),那么我们应该使用更多的样本。然而,这个公式也告诉我们一些关于统计抽样的非常基本的东西——也就是说,较大样本的效用随着样本大小的平方根而减少。这意味着加倍样本量将*而不是*加倍统计数据的质量;而是将其提高了根号2倍。在第 [10.3](#statistical-power) 节中,我们将讨论统计效率,它与这一概念密切相关。 67 | 68 | 69 | 70 | 71 | 72 | ## 7.4 中心极限定理 73 | 74 | 中心极限定理告诉我们,随着样本量变大,均值的抽样分布将变成正态分布,*即使每个样本内的数据不是正态分布*。 75 | 76 | 首先,我们来简单介绍一下正态分布。它也被称为*高斯*分布,以卡尔·弗里德里希·高斯的名字命名,虽然不是他发明的,但是高斯在推广正态分布的时候发挥了重要的作用。正态分布用两个参数来描述:平均值(可以认为是峰值的位置)和标准差(指定分布的宽度)。分布的钟形形状永远不会改变,只有它的位置和宽度会改变。正如我们已经在第 3 章中看到的,正态分布在现实世界中收集的数据中是常见的,中心极限定理解释了为什么会发生这种情况。 77 | 78 | 为了查看中心极限定理的作用,让我们使用NHANES数据集中的变量AlcoholYear,它是高度偏斜的,如图 [7.2](#fig:alcDist50) 的左图所示。由于没有更好的词来形容,暂且叫做时髦分布吧——可以肯定不是正态分布。现在让我们看看这个变量的均值的抽样分布。图 [7.2](#fig:alcDist50) 显示了该变量的抽样分布,通过从 NHANES 数据集中重复抽取 50 个样本并取平均值获得。尽管原始数据显然是非正态的,但抽样分布非常接近正态。 79 | 80 | ![Left: Distribution of the variable AlcoholYear in the NHANES dataset, which reflects the number of days that the individual drank in a year. Right: The sampling distribution of the mean for AlcoholYear in the NHANES dataset, obtained by drawing repeated samples of size 50, in blue. The normal distribution with the same mean and standard deviation is shown in red.](img/file42.png) 81 | 82 | 图 7.2:左:NHANES 数据集中变量 AlcoholYear 的分布,它反映了个人一年中饮酒的天数。右图:NHANES 数据集中酒精年份平均值的抽样分布,通过绘制 50 个蓝色重复样本获得。具有相同平均值和标准偏差的正态分布显示为红色。 83 | 84 | 中心极限定理对统计学很重要,因为它允许我们安全地假设在大多数情况下均值的抽样分布将是正态的。这意味着我们可以利用假设正态分布的统计技术,我们将在下一节中看到。它也很重要,因为它告诉我们为什么正态分布在现实世界中如此普遍;任何时候我们把许多不同的因素结合成一个单一的数字,结果很可能是一个正态分布。例如,任何成年人的身高都取决于他们的基因和经历的复杂混合;即使这些单独的影响可能不是正态分布的,当我们将它们组合起来时,结果也是正态分布的。 85 | 86 | 87 | 88 | 89 | 90 | ## 7.5 学习目标 91 | 92 | 阅读完本章后,您应该能够: 93 | 94 | * 区分总体和样本,以及总体参数和样本统计 95 | * 描述抽样误差和抽样分布的概念 96 | * 计算平均值的标准误差 97 | * 描述中心极限定理如何决定均值的抽样分布的性质 98 | 99 | 100 | 101 | 102 | 103 | ## 7.6 建议书籍 104 | 105 | * Nate Silver 的《信号与噪音:为什么预测错多对少》 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /docs/08.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 8 重采样和模拟 4 | 5 | 使用计算机的模拟能力已经成为现代统计学的一个重要方面。例如,在实用计算机科学中最重要的一本书,叫做**与数字共舞**,这样写道: 6 | 7 | > “如果让我们在精通五英尺厚的分析统计学书籍和中等水平的统计蒙特卡罗模拟能力之间做出选择,我们肯定会选择后者。” 8 | 9 | 在本章中,我们将介绍蒙特卡罗模拟的概念,并讨论如何用它来进行统计分析。 10 | 11 | 12 | 13 | ## 8.1 蒙特卡洛模拟 14 | 15 | 蒙特卡洛模拟的概念是由数学家斯坦·乌拉姆和尼古拉斯·大都会提出的,作为曼哈顿计划的一部分,他们正在为美国开发一种原子武器。他们需要计算一个中子在与原子核碰撞之前在物质中传播的平均距离,但是他们不能用标准数学来计算。乌兰意识到这些计算可以用随机数来模拟,就像赌场游戏一样。在诸如轮盘赌之类的娱乐场游戏中,数字是随机产生的;为了估计一个特定结果的概率,一个人可以玩这个游戏几百次。乌兰的叔叔曾在摩纳哥的蒙特卡洛赌场赌博,这显然是这种新技术的名称来源。 16 | 17 | 执行蒙特卡洛模拟有四个步骤: 18 | 19 | 1. 定义一个可能值的域 20 | 2. 从概率分布生成该域内随机数 21 | 3. 使用随机数执行计算 22 | 4. 合并多次重复的结果 23 | 24 | 举个例子,假设我想算出课堂测验的时间。我们将假设我们知道测验完成时间的分布是正态分布,平均值为 5 分钟,标准差为 1 分钟。考虑到这一点,我们希望所有学生在 99%的时间内完成考试需要多长时间?有两种方法可以解决这个问题。第一种是用一种叫做极值统计学的数学理论来计算答案。然而,这涉及到复杂的数学。或者,我们可以使用蒙特卡罗模拟。为此,我们需要从正态分布中生成随机样本。 25 | 26 | 27 | 28 | 29 | 30 | ## 8.2 统计学中的随机性 31 | 32 | 术语“随机”通常在口语中用来指难以琢磨或意想不到的事情,但在统计学中,该术语有一个非常具体的含义:如果一个过程不可预测,它就是*随机的*。例如,如果我掷一枚普通硬币 10 次,一次掷的结果值并不能为我提供任何信息来预测下一次掷的结果。重要的是要注意,某件事不可预测的事实并不一定意味着它不是确定的。例如,当我们抛硬币时,抛硬币的结果是由物理定律决定的;如果我们足够详细地了解所有的条件,我们应该能够预测翻转的结果。然而,许多因素结合在一起,使得掷硬币的结果在实际过程中不可预测。 33 | 34 | 心理学家表明,人类实际上有相当糟糕的随机感。首先,我们倾向于看到不存在的模式。在极端情况下,这导致了 *pareidolia* 现象,在这种现象中,人们会在随机模式中感知熟悉的物体(例如将一朵云感知为人脸或在一片烤面包中看到圣母玛利亚)。第二,人类倾向于认为随机过程是自我修正的,这导致我们在一场概率游戏中输掉许多回合后,认为自己“应该赢”,这种现象被称为“赌徒心理”。 35 | 36 | 37 | 38 | 39 | 40 | ## 8.3 生成随机数 41 | 42 | 运行蒙特卡罗模拟需要我们生成随机数。产生真正的随机数(即完全不可预测的数字)只有通过物理过程才有可能,如原子衰变或掷骰子,这些过程或者因为很难获得,或者因为太慢而无法用于计算机模拟(尽管它们可以从 [NIST 随机性信标](https://www.nist.gov/programs-projects/nist-randomness-beacon%5D)中获得)。 43 | 44 | 一般来说,我们使用通过计算机算法产生的*伪随机数*,而不是真正的随机数;从很难预测的意义上来说,这些数字看起来是随机的,但实际上这一系列数字会在某个时候重复出现。例如,R语言中使用的随机数生成器会在$2^{19937} - 1$次后重复。这远远超过了宇宙的生命周期(以秒为单位),我们通常认为这对于以统计分析为目的的业务场景来应用是没问题的。 45 | 46 | 大多数统计软件都包括为每个主要概率分布生成随机数的功能,例如均匀分布(0 到 1 之间的所有值相等)、正态分布和二项式分布(例如掷骰子、掷硬币)。图 [8.1](#fig:rngExamples) 显示了从均匀分布函数和正态分布函数生成的数字示例。 47 | 48 | ![Examples of random numbers generated from a uniform (left) or normal (right) distribution.](img/file43.png) 49 | 50 | 图 8.1:从均匀分布(左)或正态分布(右)生成的随机数示例。 51 | 52 | 也可以使用分布的分位数函数为任何分布生成随机数。这是累积分布函数的倒数;分位数函数不是标识一组值的累积概率,而是标识一组累积概率的值。使用分位数函数,我们可以从均匀分布中生成随机数,然后通过分位数函数将它们映射到感兴趣的分布中。 53 | 54 | 默认情况下,统计软件中的随机数生成器每次运行时都会生成一组不同的随机数。然而,通过将所谓的*随机种子*设置为特定值,也可以生成完全相同的一组随机数。如果您要查看生成这些图的代码,我们将在本书的许多示例中这样做,以确保这些示例是可重复的。 55 | 56 | 57 | 58 | 59 | 60 | ## 8.4 使用蒙特卡罗模拟 61 | 62 | 让我们回到课堂测试时间的例子。假设我观测三次测验,并记录每个学生每次考试的完成时间,这可能看起来像图 [8.2](#fig:finishingTimes) 中呈现的分布。 63 | 64 | ![Simulated finishing time distributions.](img/file44.png) 65 | 66 | 图 8.2:模拟的结束时间分布。 67 | 68 | 现在想想我们想要回答的问题,我们真正想知道的不是完成时间的分布是什么样的,而是每次测验的最长完成时间的分布是什么样的。为了做到这一点,我们可以模拟一个测验的结束时间,假设结束时间是正态分布的,如上所述;对于每个模拟测验,我们会记录最长的完成时间。我们大量重复这种模拟(5000 次应该足够了)并记录完成次数的分布,如图 [8.3](#fig:finishTimeSim) 所示。 69 | 70 | ![Distribution of maximum finishing times across simulations.](img/file45.png) 71 | 72 | 图 8.3:模拟中最大完成时间的分布。 73 | 74 | 这表明完成时间分布的第 99 个百分位数为 8.74,这意味着如果我们给测验那么多时间,那么每个人都应该完成 99%的时间。记住我们的假设很重要,这一点很重要——如果假设是错误的,那么模拟的结果就是无用的。在这种情况下,我们假设结束时间分布正态分布,具有特定的平均值和标准偏差;如果这些假设是不正确的(它们几乎肯定是不正确的,因为运行时间很少是正态分布的),那么真实的答案可能会非常不同。 75 | 76 | 77 | 78 | 79 | 80 | ## 8.5 使用模拟进行统计:引导 81 | 82 | 到目前为止,我们已经使用模拟来演示统计原理,但我们也可以使用模拟来回答真正的统计问题。在这一节中,我们将介绍一个被称为 *bootstrap* 的概念,它让我们可以使用模拟来量化统计估计的不确定性。在本课程的后半部分,我们将会看到其他一些例子,说明如何经常使用模拟来回答统计问题,特别是当理论统计方法不可用或当它们的假设太难满足时。 83 | 84 | 85 | 86 | ### 8.5.1 计算bootstrap 87 | 88 | 在前一章中,我们使用了均值的抽样分布知识来计算均值的标准误差。但是如果我们不能假设估计值是正态分布的,或者我们不知道它们的分布,那该怎么办呢?bootstrap 的想法是使用数据本身来估计答案。这个名字来源于自我提升的想法,表达了我们没有任何外部杠杆来源,所以我们必须依赖数据本身的想法。自举法是由斯坦福大学统计系的布拉德利·埃夫隆提出的,他是世界上最有影响力的统计学家之一。 89 | 90 | bootstrap 背后的想法是我们从实际的数据集中重复采样;重要的是,我们用替换的对进行采样,这样同一个数据点通常会在一个样本中出现多次。然后,我们计算每个 bootstrap 样本的感兴趣的统计量,并使用这些估计值的分布作为我们的采样分布。在某种意义上,我们将特定的样本视为整个总体,然后用替换重复采样,以生成我们的分析样本。这使得我们的特定样本是总体的准确反映的假设,这对于较大的样本可能是合理的,但是当样本较小时可能会失效。 91 | 92 | 让我们从使用 bootstrap 估计 NHANES 数据集中成人身高平均值的抽样分布开始,这样我们就可以将结果与我们之前讨论的平均值的标准误差(SEM)进行比较。 93 | 94 | ![An example of bootstrapping to compute the standard error of the mean adult height in the NHANES dataset. The histogram shows the distribution of means across bootstrap samples, while the red line shows the normal distribution based on the sample mean and standard deviation.](img/file46.png) 95 | 96 | 图 8.4:计算 NHANES 数据集中成人平均身高标准误差的自举示例。直方图显示了 bootstrap 样本的均值分布,而红线显示了基于样本均值和标准差的正态分布。 97 | 98 | 图 [8.4](#fig:bootstrapSEM) 显示自助样本的均值分布非常接近基于正态假设的理论估计值。我们通常不会使用 bootstrap 来计算均值的置信区间(因为我们通常可以假设正态分布适用于均值的抽样分布,只要我们的样本足够大),但这个示例显示了该方法如何给出与基于正态分布的标准方法大致相同的结果。在我们知道或怀疑正态分布不合适的情况下,bootstrap 通常用于生成其他统计估计的标准误差。此外,在后面的章节中,你将看到我们如何使用 bootstrap 样本来生成样本统计中不确定性的估计。 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | ## 8.6 学习目标 107 | 108 | 阅读本章后,您应该能够: 109 | 110 | * 描述蒙特卡罗模拟的概念。 111 | * 描述统计学中随机性的含义 112 | * 描述伪随机数是如何产生的 113 | * 描述bootstrap法的概念 114 | 115 | 116 | 117 | 118 | 119 | ## 8.7 建议书籍 120 | 121 | * Bradley Efron and Trevor Hastie写的:《计算机时代的统计推断:算法、证据和数据科学》 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /docs/10.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 10 量化效果和设计研究 4 | 5 | 在前一章中,我们讨论了如何利用数据来检验假设。这些方法让我们在两个答案中二选一:我们要么拒绝零假设,要么同意零假设。然而,这种策略忽略了几个重要的问题。首先,我们想知道我们对答案有多不确定(不管最终是哪个答案)。此外,有时我们没有明确的零假设,所以我们希望看到什么范围的估计与数据一致。第二,我们想知道这种影响实际上有多大,因为正如我们在前一章的减肥例子中所看到的,在统计上效果明显的在实际情况中效果不一定明显。 6 | 7 | 在这一章中,我们将讨论解决这两个问题的方法:置信区间为我们提供了对不确定性的一种度量,效应大小提供了一种理解效应有多大的标准化方法。我们还将讨论统计功效的概念,它告诉我们有多大可能找到真实存在的效应。 8 | 9 | 10 | 11 | ## 10.1 置信区间 12 | 13 | 到目前为止,在本书中,我们一直专注于估计单值统计。例如,假设我们想要估计 NHANES 数据集中成年人的平均体重,那么我们从数据集中抽取一个样本并估计平均值。在这个样本中,平均重量是 79.92 千克。我们称之为*点估计*,因为它为我们提供了一个数字来描述我们对总体参数的估计。然而,从我们先前对抽样误差的讨论中我们知道,这个估计值有一些不确定性,用标准误差来描述。您还应该记住,标准误差由两个部分决定:总体标准偏差(分子)和样本大小的平方根(分母)。总体标准差是一个通常未知但固定的参数,不在我们的控制之下,而样本量*是*在我们的控制之下。因此,我们可以通过增加样本量来降低估计值的不确定性——直到达到整个人口规模的极限,此时根本不存在不确定性,因为我们可以直接从整个人口的数据中计算人口参数。 14 | 15 | 我们经常希望有一种方法可以更直接地描述统计估计的不确定性,这可以通过使用*置信区间*来实现。大多数人通过政治民意测验的“误差幅度”概念来熟悉置信区间。这些民意调查通常试图提供一个精确度在+/-3%以内的答案。例如,当候选人被估计以 9 个百分点的优势赢得选举,误差幅度为 3 时,他们将赢得的百分比被估计在 6-12 个百分点之内。在统计学中,我们将这种数值范围称为置信区间,它为我们的参数估计提供了一个与样本数据一致的数值范围,而不仅仅是基于数据给出一个估计值。置信区间越宽,我们对参数估计的不确定性就越大。 16 | 17 | 众所周知,置信区间令人困惑,主要是因为它们并不意味着我们直觉上认为它们意味着什么。如果我告诉你,我已经为我的统计量计算了一个“95%的置信区间”,那么很自然地认为我们可以有 95%的信心认为真实的参数值落在这个区间内。然而,正如我们将在整个课程中看到的,统计学中的概念通常并不意味着我们认为它们应该意味着什么。在置信区间的情况下,我们不能以这种方式解释它们,因为总体参数有一个固定的值——它要么在区间内,要么不在区间内,所以谈论发生的概率是没有意义的。置信区间的发明者杰吉·内曼说: 18 | 19 | > "这个参数是一个未知的常数,不可能对它的值作出概率陈述." ( [J .内曼 1937](19.html#ref-Neyman37) ) 20 | 21 | 相反,我们必须从我们看待假设检验的同一立场来看待置信区间过程:从长远来看,这一过程将允许我们以特定的概率做出正确的陈述。因此,对 95%置信区间的正确解释是,它是一个包含 95%时间的真实总体均值的区间,事实上,我们可以使用模拟来证实这一点,如下文所示。 22 | 23 | 平均值的置信区间计算方式为: 24 | 置信区间 = 点估计 ± 临界值*标准差 25 | 26 | 其中临界值由估计值的抽样分布决定。那么,重要问题是,我们如何获得抽样分布的估计值。 27 | 28 | 29 | 30 | ### 10.1.1 使用正态分布的置信区间 31 | 32 | 如果我们知道总体标准偏差,那么我们可以使用正态分布来计算置信区间。我们通常不这样做,但是在 NHANES 数据集的例子中,我们这样做了,因为我们将整个数据集视为总体(权重为 21.3)。 33 | 34 | 假设我们想要计算平均值的 95%置信区间。临界值将是标准正态分布的值,该值占分布的 95%;这些只是分布的第 2.5 百分位和第 97.5 百分位,我们可以使用我们的统计软件进行计算,得出 35 | 36 | $$ 37 | CI = \text{point estimate} \pm \text{critical value} * \text{standard error} 38 | $$ 39 | 40 | 41 | 使用样本的估计平均值(79.92)和已知的总体标准差,我们可以计算出置信区间为[77.28,82.56]。 42 | 43 | 44 | 45 | 46 | 47 | ### 10.1.2 使用 t 分布的置信区间 48 | 49 | 如上所述,如果我们知道总体标准偏差,那么我们可以使用正态分布来计算我们的置信区间。然而,一般来说我们不会这样做, 因为*t* 分布更适合作为抽样分布。请记住,t分布比正态分布略宽,尤其是对于较小的样本,这意味着置信区间将比使用正态分布时略宽。这包含了当我们基于小样本估计参数时产生的额外不确定性。 50 | 51 | 我们可以以类似于上述正态分布示例的方式计算 95%的置信区间,但临界值由具有适当自由度的 *t* 分布的 2.5%和 97.5%决定。因此,均值x的置信区间为: 52 | 53 | 54 | $$ 55 | CI = \bar{X} \pm 1.96*SE 56 | $$ 57 | 58 | 其中t_crit为临界t值。对于 NHANES砝码示例(样本量为250),置信区间为 79.92 +/- 1.97 * 1.41 [77.15 - 82.69]。 59 | 60 | 请记住,这并不能告诉我们任何关于真实总体值落在该区间内的概率,因为它是一个固定参数(我们知道它是 81.77,因为在这种情况下我们有整个总体),并且它要么落在这个特定区间内,要么不落在这个特定区间内(在这种情况下,它落在这个特定区间内)。相反,它告诉我们,从长远来看,如果我们使用这个过程计算置信区间,95%的时间置信区间将捕获真实的总体参数。 61 | 62 | 我们用 NHANES 的数据作为我们的整体可以看到这一点;在这种情况下,我们知道总体参数的真实值,因此我们可以看到置信区间在许多不同样本中捕获该值的频率。图 [10.1](#fig:CIcoverage) 显示了 NHANES 数据集中 100 个样本的估计平均重量的置信区间。其中,95 个获得了真实的人口平均体重,表明置信区间程序的表现,因为它应该。 63 | 64 | ![Samples were repeatedly taken from the NHANES dataset, and the 95% confidence interval of the mean was computed for each sample. Intervals shown in red did not capture the true population mean (shown as the dotted line).](img/file55.png) 65 | 66 | 图 10.1:从 NHANES 数据集中重复提取样本,并计算每个样本平均值的 95%置信区间。以红色显示的区间没有捕捉到真实的总体平均值(如虚线所示)。 67 | 68 | 69 | 70 | 71 | 72 | ### 10.1.3 置信区间和样本量 73 | 74 | 因为标准误差随着样本量的增加而减小,所以置信区间应该随着样本量的增加而变窄,从而为我们的估计提供越来越窄的界限。图 [10.2](#fig:CISampSize) 显示了置信区间是如何作为权重示例的样本大小的变化而变化的示例。从图中可以明显看出,随着样本量的增加,置信区间变得越来越窄,但样本量的增加会带来收益递减,这与置信区间项的分母与样本量的平方根成比例的事实相一致。 75 | 76 | ![An example of the effect of sample size on the width of the confidence interval for the mean.](img/file56.png) 77 | 78 | 图 10.2:样本大小对均值置信区间宽度影响的例子。 79 | 80 | 81 | 82 | 83 | 84 | ### 10.1.4 使用自举计算置信区间 85 | 86 | 在某些情况下,我们不能假设正态分布,或者我们不知道统计的抽样分布。在这些情况下,我们可以使用 bootstrap(我们在第 [8](#resampling-and-simulation) 章中介绍过)。提醒一下,bootstrap 包括用替换数据重复重新采样数据,然后使用在这些样本上计算的统计分布作为统计抽样分布的替代。当我们使用 R 中内置的 bootstrapping 函数来计算 NHANES 样本中权重的置信区间时,结果如下: 87 | 88 | ``` 89 | ## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS 90 | ## Based on 1000 bootstrap replicates 91 | ## 92 | ## CALL : 93 | ## boot.ci(boot.out = bs, type = "perc") 94 | ## 95 | ## Intervals : 96 | ## Level Percentile 97 | ## 95% (78, 84 ) 98 | ## Calculations and Intervals on Original Scale 99 | ``` 100 | 101 | 这些值非常接近使用上述 t 分布获得的值,尽管不完全相同。 102 | 103 | 104 | 105 | 106 | 107 | ### 10.1.5 置信区间与假设检验的关系 108 | 109 | 置信区间和假设检验之间有密切的关系。特别是,如果置信区间不包括零假设,那么相关的统计检验将具有统计显著性。例如,如果您使用α=0.05\α= 0.05来测试样本的平均值是否大于零,您可以简单地检查零是否包含在平均值的 95%置信区间内。 110 | 111 | 如果我们想要比较两个条件的平均值 ( [申克尔和绅士 2001](ch020.xhtml#ref-sche:gent:2001) ) ,事情就变得更棘手了。有几种情况很明显。首先,如果每个平均值都包含在另一个平均值的置信区间内,那么在选定的置信水平上肯定没有显著差异。第二,如果置信区间之间没有重叠,那么在选定的水平上肯定有显著差异;事实上,这个测试基本上是*保守的*,这样实际的错误率将低于选择的水平。但是,如果置信区间彼此重叠,但不包含另一组的均值,该怎么办呢?在这种情况下,答案取决于两个变量的相对可变性,没有通用的答案。然而,人们通常应该避免使用重叠置信区间的“眼球测试”。 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | ## 10.2 效应大小 120 | 121 | > “统计显著性是结果中最无聊的地方。你应该用数量级来描述结果——不仅仅看疗效,而是它对人们的影响有多大。”吉恩·格拉斯,引自 ( [沙利文和费恩 2012](ch020.xhtml#ref-Sullivan:2012ta) ) 122 | 123 | 在前一章,我们讨论了统计意义不一定反映实际意义的观点。为了讨论实际意义,我们需要一种标准的方法来描述实际数据中效应的大小,我们称之为*效应大小*。在本节中,我们将介绍这一概念,并讨论计算效应大小的各种方法。 124 | 125 | 效应大小是一种标准化的度量,它将某些统计效应的大小与参考量(如统计的可变性)进行比较。在一些科学和工程领域,这种想法被称为“信噪比”。有许多不同的方法可以量化影响大小,这取决于数据的性质。 126 | 127 | 128 | 129 | ### 10.2.1 科恩医生 130 | 131 | 最常见的效应大小测量方法之一被称为*科恩的 d* ,以统计学家雅各布·科恩(Jacob Cohen)的名字命名(他因 1994 年题为“地球是圆的(p < .05)”的论文而闻名)。它用于量化两个平均值之间的差异,即它们的标准偏差: 132 | 133 | $$ 134 | d = \frac{\bar{X}_1 - \bar{X}_2}{s} 135 | $$ 136 | 137 | 其中 X̄1 和 X̄2 是两个组的均值,s 是池化的标准差(是两个样本,按样本大小加权) 138 | 139 | Table 10.1: Interpetation of Cohen’s D 140 | 141 | | D | 解释 | 142 | | --- | --- | 143 | | 0.0 - 0.2 | 微不足道的 | 144 | | 0.2 - 0.5 | 小的 | 145 | | 0.5 - 0.8 | 媒介 | 146 | | 0.8 - | 大的 | 147 | 148 | 根据 Cohen's d,有一个解释效果大小的常用尺度,如表 [10.1](#tab:dInterp) 所示。查看基础的判定规则有助于理解这些解释。例如,参照我们上面的表格,成人身高性别差异的影响大小(d = 2.05)非常大。我们也可以通过观察 NHANES 数据集样本中男性和女性身高的分布来了解这一点。图 [10.3](#fig:genderHist) 显示这两种分布很好地分开,尽管仍然重叠,这突出了一个事实,即使两组之间的差异有很大的影响大小,每个组中也会有更像另一组的个体。 149 | 150 | ![Smoothed histogram plots for male and female heights in the NHANES dataset, showing clearly distinct but also clearly overlapping distributions.](img/file57.png) 151 | 152 | 图 10.3:NHANES 数据集中男性和女性身高的平滑直方图,显示了明显不同但也明显重叠的分布。 153 | 154 | 同样值得注意的是,我们很少在科学中遇到这种量级的影响,部分原因是它们的影响如此明显,以至于我们不需要科学研究来发现它们。正如我们将在关于再现性的第 [18](#doing-reproducible-research) 章中看到的,科学研究中报道的非常大的效应通常反映了可疑研究实践的使用,而不是自然界中真正巨大的效应。同样值得注意的是,即使是如此巨大的影响,两种分布仍然重叠——会有一些女性比一般男性高,反之亦然。对于大多数有趣的科学效应来说,重叠的程度要大得多,所以我们不应该根据一个很大的效应大小就立即对来自不同人群的个体做出主观性很强的结论。 155 | 156 | 157 | 158 | 159 | 160 | ### 10.2.2 皮尔森的 r 161 | 162 | 皮尔逊的 *r* ,也被称为*相关系数*,是衡量两个连续变量之间线性关系强度的指标。我们将在第 13 章[中更详细地讨论相关性,所以我们将把细节留到那一章;这里,我们简单地引入 *r* 作为一种量化两个变量之间关系的方法。](#modeling-continuous-relationships) 163 | 164 | *r* 是一个从-1 到 1 变化的测度,其中值 1 代表变量之间完全正相关,0 代表不相关,-1 代表完全负相关。图 [10.4](#fig:corrFig) 显示了使用随机生成数据的各种相关水平的示例。 165 | 166 | ![Examples of various levels of Pearson's r.](img/file58.png) 167 | 168 | 图 10.4:不同等级皮尔逊风险比的例子。 169 | 170 | 171 | 172 | 173 | 174 | ### 10.2.3 赔率 175 | 176 | 在我们之前关于概率的讨论中,我们讨论了几率的概念,即某个事件发生与不发生的相对可能性: 177 | 178 | $$ 179 | odds\ of\ A = \frac{P(A)}{P(\neg A)} 180 | $$ 181 | 182 | 183 | 我们还讨论了*赔率*,简单来说就是两个赔率的比值。比值比是描述二元变量效应大小的一种有用方法。 184 | 185 | 例如,让我们以吸烟导致肺癌为例。2012 年发表在《国际癌症杂志》上的一项研究 ( [Pesch et al. 2012](ch020.xhtml#ref-pesc:kend:gust:2012) ) 综合了许多不同研究中关于吸烟者和从不吸烟者肺癌发生率的数据。请注意,这些数据来自病例对照研究,这意味着这些研究的参与者是因为他们患有或未患有癌症而被招募的;然后检查他们的吸烟状况。因此,这些数字(如表 [10.2](#tab:smokingData) 所示)并不代表普通人群中吸烟者的癌症患病率——但它们可以告诉我们癌症和吸烟之间的关系。 186 | 187 | Table 10.2: Lung cancer occurrence separately for current smokers and those who have never smoked 188 | 189 | | 状态 | 从不吸烟 | 正在吸烟者 | 190 | | --- | --- | --- | 191 | | 没有肺癌 | 2883| 3829| 192 | | 患有肺癌 | 220| 6784| 193 | 194 | 我们可以将这些数字转换成每一组的优势比。不吸烟者患肺癌的几率为 0.08,而当前吸烟者患肺癌的几率为 1.77。这些比值比告诉我们两组之间患癌的相对可能性:比值比 23.22 告诉我们,吸烟者患肺癌的几率大约比不吸烟者高 23 倍。 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | ## 10.3 统计的力量 203 | 204 | 请记住上一章的内容,在奈曼-皮尔森假设检验方法下,我们必须指定我们对两种错误的容忍度:假阳性(他们称之为*第一类错误*)和假阴性(他们称之为*第二类错误*)。人们经常把注意力集中在第一类错误上,因为做出一个错误的被认为是一件非常糟糕的事情;例如,韦克菲尔德( [1999](ch020.xhtml#ref-wake:1999) ) 声称自闭症与疫苗接种有关,这一不可信的说法导致了反疫苗情绪,导致麻疹等儿童疾病大幅增加。同样,我们也不想声称一种药物可以治愈一种疾病,但它实际又不能治愈疾病。这也是为什么 I 类误差的容差一般设置的相当低,通常为α=0.05\α= 0.05。但是第二类错误又是什么情况呢? 205 | 206 | *统计功效*的概念是第二类错误的补充——也就是说,它是在假设存在的情况下找到阳性结果的可能性: 207 | $$ 208 | power = 1 - \beta 209 | $$ 210 | 211 | 奈曼-皮尔逊模型我们之前没有讨论的另一个重要的模型,除了规定第一类和第二类错误的可接受水平,我们还必须描述一个具体的替代假设——即,我们希望检测的影响大小是多少?否则,我们无法解读β——发现大效应的可能性总是会高于发现小效应的可能性,因此【β会因我们试图检测的效应大小而有所不同。 212 | 213 | 有三个因素会影响统计能力: 214 | 215 | * 样本量:样本越大,统计能力越强 216 | * 效果大小:一个给定的设计总是比一个小的效果有更大的力量去发现大的效果(因为发现大的效果更容易) 217 | * I 型误差率:I 型误差和效果之间存在一种关系,即(在其他条件相同的情况下)降低 I 型误差也会降低效果。 218 | 219 | 我们可以通过模拟看到这一点。首先让我们模拟一个实验,在这个实验中,我们使用标准的 t 检验来比较两组的平均值。我们将改变影响的大小(根据 Cohen's d )、I 型错误率和样本大小,对于其中的每一项,我们将检查显著结果(即功效)的比例是如何受到影响的。图 [10.5](#fig:plotPowerSim) 显示了功率作为这些因素的函数如何变化的示例。 220 | 221 | ![Results from power simulation, showing power as a function of sample size, with effect sizes shown as different colors, and alpha shown as line type. The standard criterion of 80 percent power is shown by the dotted black line.](img/file59.png) 222 | 223 | 图 10.5:功率模拟的结果,显示功率作为样本大小的函数,效果大小显示为不同的颜色,alpha 显示为线型。80%功率的标准标准由黑色虚线表示。 224 | 225 | 这个模拟向我们表明,即使样本大小为 96,我们也只弱弱的来找到一个不明显效果(d=0.2d = 0.2)与α=0.005\α= 0.005 这意味着一项为此而设计的研究将是徒劳的——也就是说,即使这种规模的效应确实存在,但我们无法找到。 226 | 227 | 关注统计能力至少有两个重要原因。首先,如果你是一名研究人员,你可能不想把时间花在徒劳的实验上。进行一项驱动力不足的研究基本上是徒劳的,因为这意味着即使存在效果,人们发现效果的可能性也非常低。第二,事实证明,与有力的研究相比,来自力度不足的研究的任何积极发现更有可能是错误的,这一点我们将在第 [18](#doing-reproducible-research) 章中更详细地讨论。 228 | 229 | 230 | 231 | ### 10.3.1 功率分析 232 | 233 | 幸运的是,有工具可以让我们确定实验的统计能力。这些工具最常见的用途是在计划一个实验时,当我们想要确定我们的样本需要多大,以便有足够的能力找到我们感兴趣的效果。 234 | 235 | 比方说,我们有兴趣开展一项研究,探讨 iOS 设备用户和 Android 设备用户之间的特定个性特征有何不同。我们的计划是收集两组人,测量他们的个性特征,然后用 t 检验比较两组人。在这种情况下,我们会认为一个中等效应(【d】=0.5d = 0.5)是有科学意义的,因此我们将使用那个水平来进行我们的功率分析。为了确定必要的样本量,我们可以使用统计软件中的幂函数: 236 | 237 | ``` 238 | ## 239 | ## Two-sample t test power calculation 240 | ## 241 | ## n = 64 242 | ## delta = 0.5 243 | ## sd = 1 244 | ## sig.level = 0.05 245 | ## power = 0.8 246 | ## alternative = two.sided 247 | ## 248 | ## NOTE: n is number in *each* group 249 | ``` 250 | 251 | 这告诉我们,每组至少需要 64 名受试者,才能有足够的力量发现中等大小的效应。在开始新的研究之前,进行功效分析总是很重要的,以确保研究不会因为样本太小而无效。 252 | 253 | 你可能会想到,如果效应大小足够大,那么所需的样本就会非常小。例如,如果我们运行相同的功效分析,效果大小为 d=2,那么我们将看到,我们只需要每组约 5 名受试者就有足够的功效来发现差异。 254 | 255 | ``` 256 | ## 257 | ## Two-sample t test power calculation 258 | ## 259 | ## n = 5.1 260 | ## d = 2 261 | ## sig.level = 0.05 262 | ## power = 0.8 263 | ## alternative = two.sided 264 | ## 265 | ## NOTE: n is number in *each* group 266 | ``` 267 | 268 | 然而,在科学界,我们很少会在实验中发现如此大的影响——就像我们不需要统计数据来告诉我们 16 岁的孩子比 6 岁的孩子高一样。当我们进行功效分析时,我们需要指定一个对我们的研究看似合理,而且科学上有趣的效应大小,这通常来自以前的研究。然而,在第 [18](#doing-reproducible-research) 章中,我们将讨论一种被称为“赢家的诅咒”的现象,这种现象可能会导致发现的效果尺寸大于真实的效果尺寸,因此这一点也应该记住。 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | ## 10.4 学习目标 277 | 278 | 阅读完本章后,您应该能够: 279 | 280 | * 正确的阐释置信区间的概念,并计算给定数据集平均值的置信区间。 281 | * 定义效应大小的概念,并计算给定测试的效应大小。 282 | * 描述统计能力的概念以及它对研究的重要性。 283 | 284 | 285 | 286 | 287 | 288 | ## 10.5 建议读物 289 | 290 | * [Hoekstra 等人对置信区间的错误理解](http://www.ejwagenmakers.com/inpress/HoekstraEtAlPBR.pdf) 291 | 292 | 293 | 294 | -------------------------------------------------------------------------------- /docs/12.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 12 分类关系模型 4 | 5 | 到目前为止,我们已经讨论了统计建模和假设检验的基础概念,并将其应用于一些简单的分析;现在我们将转向如何在我们的数据中对特定类型的关系建模的问题。在本章中,我们将重点关注*分类*关系的建模,我们指的是定性测量的变量之间的关系。这些数据通常用计数来表示;也就是说,对于变量的每个值(或多个变量的值的组合),有多少个观测值取该值?例如,当我们计算我们班每个专业有多少人时,我们是在为数据拟合一个分类模型。 6 | 7 | 8 | 9 | ## 12.1 示例:糖果色 10 | 11 | 比方说,我购买了一袋 100 颗糖果,标签上标明有 1/3 巧克力、1/3 巧克力糖和 1/3 口香糖。当我数袋子里的糖果时,我们得到了下面的数字:30 块巧克力,33 块巧克力糖和 37 块口香糖。因为比起巧克力糖或口香糖,我更喜欢巧克力,所以我觉得有点被骗了,我想知道这是否只是一个偶然事件。要回答这个问题,我需要知道:如果每种糖果类型的真实概率是每种糖果的 1/3 的平均比例,那么计数结果是这样的可能性有多大? 12 | 13 | 14 | 15 | 16 | 17 | ## 12.2 皮尔森卡方检验 18 | 19 | 皮尔森卡方检验为我们提供了一种方法来检验一组观察计数是否不同于定义零假设的某些特定期望值: 20 | 21 | $$ 22 | \chi^2 = \sum_i\frac{(observed_i - expected_i)^2}{expected_i} 23 | $$ 24 | 25 | 26 | 在我们的糖果例子中,零假设是每种糖果的比例相等。为了计算卡方统计量,我们首先需要在零假设下得出我们的预期计数:因为零假设是它们都是相同的,那么这就是跨三个类别的总计数(如表 [12.1](#tab:candyDf) 所示)。然后,我们取每个计数与其在零假设下的期望值之间的差,将它们平方,除以零期望值,然后将它们相加,得到卡方统计量。 27 | 28 | Table 12.1: Observed counts, expectations under the null hypothesis, and squared differences in the candy data 29 | 30 | | 糖果型 | 实际数量 | 期望数量 | 平方差 | 31 | | --- | --- | --- | --- | 32 | | 巧克力 | Thirty | Thirty-three | Eleven point one one | 33 | | 巧克力糖 | Thirty-three | Thirty-three | Zero point one one | 34 | | 口香糖 | Thirty-seven | Thirty-three | Thirteen point four four | 35 | 36 | 此分析的卡方统计结果为 0.74,这本身是不可解释的,因为它取决于不同值相加的数量。但是,我们可以利用卡方统计量是根据零假设下的特定分布分布的这一事实,这种分布称为*卡方*分布。这个分布被定义为一组标准正态随机变量的平方和;它的自由度数量等于变量相加的数量。分布的形状取决于自由度的数量。图 [12.1](#fig:chisqDist) 的左图显示了几个不同自由度的分布示例。 37 | 38 | ![Left: Examples of the chi-squared distribution for various degrees of freedom. Right: Simulation of sum of squared random normal variables. The histogram is based on the sum of squares of 50,000 sets of 8 random normal variables; the dotted line shows the values of the theoretical chi-squared distribution with 8 degrees of freedom.](img/file66.png) 39 | 40 | 图 12.1:左图:不同自由度的卡方分布示例。右图:随机正态变量平方和的模拟。直方图基于 5 万组 8 个随机正态变量的平方和;虚线显示了具有 8 个自由度的理论卡方分布的值。 41 | 42 | 让我们使用模拟来验证卡方分布是否准确描述了一组标准正态随机变量的平方和。为了做到这一点,我们反复抽取 8 个随机数的集合,并在平方每个值后将每个集合相加。图 [12.1](#fig:chisqDist) 的右图显示,理论分布与一组随机正态变量的平方反复相加的模拟结果非常匹配。 43 | 44 | 以糖果为例,在所有糖果频率相等的零假设下,我们可以计算观察到的卡方值为 0.74 的可能性。我们使用自由度等于 k - 1(其中 k =类别数)的卡方分布,因为我们在计算平均值以生成期望值时损失了一个自由度。得到的 P 值(P(卡方)> 0.74 = 0.691)表明,根据糖果袋上印刷的比例,观察到的糖果数量并不特别令人惊讶,我们不会拒绝相等比例的无效假设。 45 | 46 | 47 | 48 | 49 | 50 | ## 12.3 列联表和双向检验 51 | 52 | 我们经常使用卡方检验的另一种方法是询问两个分类变量是否彼此相关。作为一个更现实的例子,让我们来看看这样一个问题:与白人司机相比,黑人司机在被警察拦下时是否更容易被搜查。斯坦福开放警务项目([https://openpolicing.stanford.edu/](https://openpolicing.stanford.edu/))对此进行了研究,并提供了我们可以用来分析这个问题的数据。我们将使用康涅狄格州的数据,因为它们相对较小,因此更容易分析。 53 | 54 | 表示分类分析数据的标准方式是通过*列联表*,该表显示了落入每个变量的每个可能值组合中的观察值的数量或比例。下表 [12.2](#tab:policeCT) 显示了警方搜索数据的列联表。使用比例而不是原始数字来查看列联表也是有用的,因为它们更容易直观地比较,所以我们在这里包括绝对数字和相对数字。 55 | 56 | Table 12.2: Contingency table for police search data 57 | 58 | | 搜查 | 黑色 | 白色的 | 黑色(相对) | 白色(相对) | 59 | | --- | --- | --- | --- | --- | 60 | | 错误的 | Thirty-six thousand two hundred and forty-four | Two hundred and thirty-nine thousand two hundred and forty-one | Zero point one three | Zero point eight six | 61 | | 真实的 | One thousand two hundred and nineteen | Three thousand one hundred and eight | Zero | Zero point zero one | 62 | 63 | 皮尔逊卡方检验允许我们测试观察到的频率是否与预期的频率不同,因此我们需要确定如果搜索和种族不相关,我们在每个单元格中预期的频率是多少——我们可以定义为*独立。*记住概率一章,如果 X 和 Y 是独立的,那么: 64 | 65 | P(XY)=P()*P边际概率就是不管其他事件如何,每个事件发生的概率。我们可以计算出那些边际概率,然后把它们相乘得到独立情况下的期望比例。 66 | 67 | ![bw.png](img/bw.png) 68 | 69 | 然后,我们计算卡方统计,得出 828.3。要计算 p 值,我们需要将其与零卡方分布进行比较,以确定我们的卡方值与零假设下的预期值相比有多极端。这种分布的自由度是 70 | $df = (nRows - 1) * (nColumns - 1)$ 71 | 72 | 这里的直觉是,计算预期频率需要我们使用三个值:观察的总数和两个变量的边际概率。因此,一旦计算出这些值,只有一个数字可以自由变化,因此有一个自由度。考虑到这一点,我们可以计算卡方统计的 p 值,它几乎接近于零:3.79×101823.79 \次 10^{-182}这表明,如果种族和警察搜查之间真的没有关系,观察到的数据将是极不可能的,因此我们应该拒绝独立性的零假设。 73 | 74 | 我们还可以使用我们的统计软件轻松执行该测试: 75 | 76 | ``` 77 | ## 78 | ## Pearson's Chi-squared test 79 | ## 80 | ## data: summaryDf2wayTable and 1 81 | ## X-squared = 828, df = 1, p-value <2e-16 82 | ``` 83 | 84 | 85 | 86 | 87 | 88 | ## 12.4 标准化残差 89 | 90 | 当我们发现卡方检验有显著影响时,这告诉我们数据在零假设下不太可能,但它没有告诉我们*数据如何*不同。为了更深入地了解数据与我们在零假设下的预期有何不同,我们可以检查模型的残差,它反映了每个数据(即观察到的频率)与模型(即预期的频率)的偏差。与其查看原始残差(其变化仅取决于数据中的观测值数量),不如查看*标准化残差*(有时也称为*皮尔逊残差*),其计算方法如下: 91 | 92 | $$ 93 | standardized\ residual_{ij} = \frac{observed_{ij} - expected_{ij}}{\sqrt{expected_{ij}}} 94 | $$ 95 | w 96 | 97 | 表 [12.3](#tab:stdRes) 显示了这些警察停车数据。这些标准化的残差可以解释为 Z 分数——在这种情况下,我们看到黑人个体的搜索次数大大高于基于独立性的预期,白人个体的搜索次数大大低于预期。这为我们提供了解释显著的卡方检验结果所需的背景。 98 | 99 | Table 12.3: Summary of standardized residuals for police stop data 100 | 101 | ![search](img/search.png) 102 | 103 | 104 | 105 | 106 | ## 12.5 优势比 107 | 108 | 为了更好地理解影响的大小,我们还可以在列联表中用我们前面介绍的比值比来表示不同结果的相对可能性。首先,我们表示每场比赛被停止的几率,然后我们计算它们的比率: 109 | 110 | $$ 111 | odds_{searched|black} = \frac{N_{searched\cap black}}{N_{not\ searched\cap black}} = \frac{1219}{36244} = 0.034 112 | $$ 113 | 114 | $$ 115 | odds_{searched|white} = \frac{N_{searched\cap white}}{N_{not\ searched\cap white}} = \frac{3108}{239241} = 0.013 116 | $$ 117 | $$ 118 | odds\ ratio = \frac{odds_{searched|black}}{odds_{searched|white}} = 2.59 119 | $$ 120 | 121 | 根据这个数据集,赔率显示,黑人司机被搜索的几率是白人司机的 2.59 倍。 122 | 123 | 124 | 125 | 126 | 127 | ## 12.6 贝叶斯因子 128 | 129 | 我们在前面关于贝叶斯统计的章节中讨论过贝叶斯因子——你可能记得它代表了两种假设下数据的可能性的比率: 130 | $$ 131 | K = \frac{P(data|H_A)}{P(data|H_0)} = \frac{P(H_A|data)*P(H_A)}{P(H_0|data)*P(H_0)} 132 | $$ 133 | 我们可以使用我们的统计软件计算警方搜索数据的贝叶斯因子: 134 | 135 | ``` 136 | ## Bayes factor analysis 137 | ## -------------- 138 | ## [1] Non-indep. (a=1) : 1.8e+142 ±0% 139 | ## 140 | ## Against denominator: 141 | ## Null, independence, a = 1 142 | ## --- 143 | ## Bayes factor type: BFcontingencyTable, independent multinomial 144 | ``` 145 | 146 | 这表明,在这个数据集中,有利于司机种族和警察搜索之间关系的证据非常有力——1.8*101421.8 * 10^{142}大约是我们在统计中可以想象得到的接近无穷大。 147 | 148 | 149 | 150 | 151 | 152 | ## 12.7 超出 2 X 2 表格的分类分析 153 | 154 | 类别分析也可以应用于列联表,其中每个变量有两个以上的类别。 155 | 156 | 例如,让我们看看 NHANES 的数据,并比较变量*抑郁*,它表示“参与者自我报告中感到情绪低落、抑郁或绝望的天数”。该变量编码为`None`、`Several`或`Most`。让我们来测试这个变量是否与 *SleepTrouble* 变量相关,后者表示个人是否向医生报告了睡眠问题。 157 | 158 | Table 12.4: Relationship between depression and sleep problems in the NHANES dataset 159 | 160 | | 情绪情况 | 无睡眠问题 | 有睡眠问题 | 161 | | --- | --- | --- | 162 | | 情绪低落 | Two thousand six hundred and fourteen | Six hundred and seventy-six | 163 | | 抑郁 | Four hundred and eighteen | Two hundred and forty-nine | 164 | | 绝望 | One hundred and thirty-eight | One hundred and forty-five | 165 | 166 | 仅仅通过查看这些数据,我们就可以知道这两个变量之间很可能存在关系;值得注意的是,虽然有睡眠问题的总人数比没有睡眠问题的人少得多,但对于大多数时间都感到抑郁的人来说,有睡眠问题的人数比没有睡眠问题的人多。我们可以使用卡方检验直接对此进行量化: 167 | 168 | ``` 169 | ## 170 | ## Pearson's Chi-squared test 171 | ## 172 | ## data: depressedSleepTroubleTable 173 | ## X-squared = 191, df = 2, p-value <2e-16 174 | ``` 175 | 176 | 这项测试表明,抑郁症和睡眠问题之间有很大的关系。我们还可以计算贝叶斯因子来量化支持替代假设的证据强度: 177 | 178 | ``` 179 | ## Bayes factor analysis 180 | ## -------------- 181 | ## [1] Non-indep. (a=1) : 1.8e+35 ±0% 182 | ## 183 | ## Against denominator: 184 | ## Null, independence, a = 1 185 | ## --- 186 | ## Bayes factor type: BFcontingencyTable, joint multinomial 187 | ``` 188 | 189 | 这里我们看到贝叶斯因子非常大(1.8*10351.8 * 10^{35}),这表明支持抑郁与睡眠问题之间存在联系的证据非常有力。 190 | 191 | 192 | 193 | 194 | 195 | ## 当心辛普森悖论 196 | 197 | 上面给出的列联表代表了大量观察结果的汇总,但汇总有时会产生误导。让我们举一个棒球的例子。下表显示了德瑞克·基特和大卫·贾斯蒂斯在 1995-1997 年间的击球数据(击球次数和平均击球率): 198 | 199 | ![paradox](img/paradox.png) 200 | 201 | 202 | 如果你仔细观察,你会发现一些奇怪的事情正在发生:在每一年,杜瑞科的平均打击率都比杰特高,但当我们把三年的数据结合起来,杰特的平均打击率实际上比杜瑞科的高!这是一个被称为*辛普森悖论*的现象的例子,在这种现象中,出现在组合数据集中的模式可能不会出现在任何数据子集中。当另一个变量可能在不同的子集之间发生变化时,就会出现这种情况——在这种情况下,击球次数会随着年份的变化而变化,正义在 1995 年击球次数要多得多(当时击球率很低)。我们称之为*潜伏变量*,每当我们检查分类数据时,关注这些变量总是很重要的。 203 | 204 | 205 | 206 | 207 | 208 | ## 12.9 学习目标 209 | 210 | * 描述分类数据的列联表的概念。 211 | * 描述关联的卡方检验的概念,并计算给定列联表的卡方检验。 212 | * 描述辛普森悖论以及为什么它对分类数据分析很重要。 213 | 214 | 215 | 216 | 217 | 218 | ## 12.10 附加读物 219 | 220 | * 心理科学中的辛普森悖论:实用指南 221 | 222 | 223 | 224 | -------------------------------------------------------------------------------- /docs/13.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 13 连续关系模型 4 | 5 | 大多数人都很熟悉*相关性*这个概念,在本章中我们将为这个常用且容易被误解的概念提供一个更官方的解释。 6 | 7 | 8 | 9 | ## 一个例子:仇恨犯罪和收入不平等关系 10 | 11 | 2017 年,Fivethirtyeight.com 网站发表了一篇名为 [*的报道,仇恨犯罪的高发生率与收入不平等有关*](https://fivethirtyeight.com/features/higher-rates-of-hate-crimes-are-tied-to-income-inequality/) ,该报道讨论了 2016 年总统大选后仇恨犯罪的流行与收入不平等之间的关系。这篇报道报道了美国联邦调查局和南方贫困法律中心对仇恨犯罪数据的分析,在此基础上,他们报告说: 12 | 13 | > “我们发现,收入不平等是造成美国各地仇恨犯罪事件增加的最重要因素”。 14 | 15 | 分析这个数据,我们使用的是R统计软件的`fivethirtyeight`这个包,这个包用起来非常方便,推荐大家使用。报道中的分析集中在收入不平等(由一个叫做*基尼指数*的数量定义——更多细节见附录)和各州仇恨犯罪流行率之间的关系。 16 | 17 | 18 | 19 | 20 | 21 | ## 13.2 收入不平等与仇恨犯罪有关吗? 22 | 23 | ![Plot of rates of hate crimes vs. Gini index.](img/file67.png) 24 | 25 | 图 13.1:仇恨犯罪率与基尼指数的关系图。 26 | 27 | 收入不平等和仇恨犯罪率之间的关系如图 [13.1](#fig:hateCrimeGini) 所示。从数据来看,这两个变量之间似乎可能存在正相关关系。我们如何量化这种关系? 28 | 29 | 30 | 31 | 32 | 33 | ## 13.3 协方差和相关性 34 | 35 | 量化两个变量之间关系的一种方法是*协方差*。请记住,单个变量的方差计算为每个数据点与平均值之间的平均平方差: 36 | 37 | $$ 38 | s^2 = \frac{\sum_{i=1}^n (x_i - \bar{x})^2}{N - 1} 39 | $$ 40 | 41 | 这告诉我们每个观察值离平均值有多远,以平方单位表示。协方差告诉我们两个不同变量的偏差之间是否有关系。它被定义为: 42 | 43 | $$ 44 | covariance = \frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{N - 1} 45 | $$ 46 | 47 | 当单个数据点偏离其各自平均值的量相似时,该值将远离零;如果它们在相同的方向上偏离,那么协方差是正的,而如果它们在相反的方向上偏离,那么协方差是负的。我们先来看一个简单的例子。表 [13.1](#tab:covTable) 中显示了这些数据,以及它们与平均值的个别偏差和它们的叉积。 48 | 49 | Table 13.1: Data for toy example of covariance 50 | 51 | ![table1](img/table1.png) 52 | 53 | 协方差就是叉积的平均值,在本例中为 17.05。我们通常不使用协方差来描述变量之间的关系,因为它随数据的总体方差水平而变化。相反,我们通常会使用*相关系数*(通常被称为*皮尔逊相关*,以统计学家卡尔·皮尔逊命名)。相关性是通过用两个变量的标准偏差缩放协方差来计算的: 54 | 55 | $$ 56 | r = \frac{covariance}{s_xs_y} = \frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{(N - 1)s_x s_y} 57 | $$ 58 | (相关系数是有用的,因为不管数据的性质如何,它都在-1 和 1 之间变化。事实上,我们在前面讨论效应大小时已经讨论过相关系数。正如我们在前一章中看到的,相关性为 1 表示完全线性关系,相关性为-1 表示完全负相关,相关性为零表示没有线性关系。 59 | 60 | 61 | 62 | ### 13.3.1 相关性假设检验 63 | 64 | 仇恨犯罪和收入不平等之间的相关值为 0.42,这似乎表明两者之间有相当强的关系,但我们也可以想象,即使没有关系,这也可能是偶然发生的。我们可以使用一个简单的等式将相关值转换成一个 *t* 统计量,来测试相关性为零的零假设: 65 | 66 | 67 | $$ 68 | \textit{t}_r = \frac{r\sqrt{N-2}}{\sqrt{1-r^2}} 69 | $$ 70 | 71 | 在零假设下$H_0:r=0$这个统计量分布为一个带有N2的 t 分布我们可以用我们的统计软件来计算: 72 | 73 | ``` 74 | ## 75 | ## Pearson's product-moment correlation 76 | ## 77 | ## data: hateCrimes$avg_hatecrimes_per_100k_fbi and hateCrimes$gini_index 78 | ## t = 3, df = 48, p-value = 0.002 79 | ## alternative hypothesis: true correlation is not equal to 0 80 | ## 95 percent confidence interval: 81 | ## 0.16 0.63 82 | ## sample estimates: 83 | ## cor 84 | ## 0.42 85 | ``` 86 | 87 | 这一检验表明,在零假设下,r 值达到或超过这一极值的可能性相当低,因此我们拒绝零假设r=0r = 0。注意,这个测试假设两个变量都是正态分布的。 88 | 89 | 我们也可以通过随机化来测试这一点,在随机化中,我们反复打乱其中一个变量的值并计算相关性,然后将我们观察到的相关值与该零分布进行比较,以确定我们观察到的值在零假设下的可能性有多大。结果如图 [13.2](#fig:shuffleCorr) 所示。使用随机化计算的 p 值相当类似于 t 检验给出的答案。 90 | 91 | ![Histogram of correlation values under the null hypothesis, obtained by shuffling values. Observed value is denoted by blue line.](img/file68.png) 92 | 93 | 图 13.2:零假设下相关值的直方图,通过混排值获得。观察值用蓝线表示。 94 | 95 | 我们也可以使用贝叶斯推理来估计相关性;请参阅附录了解更多相关信息。 96 | 97 | 98 | 99 | 100 | 101 | ### 13.3.2 稳健相关性 102 | 103 | 您可能已经注意到图 [13.1](#fig:hateCrimeGini) 中有些奇怪的地方——其中一个数据点(哥伦比亚特区的数据点)似乎与其他数据点完全不同。我们称之为*异常点*,标准相关系数对异常值非常敏感。例如,在图 [13.3](#fig:outlierCorr) 中,我们可以看到一个孤立的数据点如何导致非常高的正相关值,即使其他数据点之间的实际关系完全是负的。 104 | 105 | ![An simulated example of the effects of outliers on correlation. Without the outlier the remainder of the datapoints have a perfect negative correlation, but the single outlier changes the correlation value to highly positive.](img/file69.png) 106 | 107 | 图 13.3:异常值对相关性影响的模拟示例。在没有异常值的情况下,其余的数据点具有完美的负相关,但是单个异常值将相关值变为高度正相关。 108 | 109 | 解决异常值的一种方法是在排序后计算数据等级的相关性,而不是数据本身的相关性;这就是所谓的*斯皮尔曼相关*。图 [13.3](#fig:outlierCorr) 中的例子的皮尔逊相关性为 0.83,而斯皮尔曼相关性为-0.45,表明等级相关性降低了异常值的影响,并反映了大多数数据点之间的负相关关系。 110 | 111 | 我们还可以计算仇恨犯罪数据的等级相关性: 112 | 113 | ``` 114 | ## 115 | ## Spearman's rank correlation rho 116 | ## 117 | ## data: hateCrimes$avg_hatecrimes_per_100k_fbi and hateCrimes$gini_index 118 | ## S = 20146, p-value = 0.8 119 | ## alternative hypothesis: true rho is not equal to 0 120 | ## sample estimates: 121 | ## rho 122 | ## 0.033 123 | ``` 124 | 125 | 现在我们看到相关性不再显著(事实上非常接近于零),这表明由于异常值的影响,这也说明FiveThirtyEight 博客帖子的说法可能是不正确的。 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | ## 13.4 关联和因果关系 134 | 135 | 当我们说一件事*引起另一件事*时,我们指的是什么?在哲学中,关于因果关系的意义的讨论有很长的历史,但是在统计学中,我们通常认为因果关系的一种方式是根据实验控制。也就是说,如果我们认为因素 X 导致因素 Y,那么 X 的值改变也应该导致 Y 值的改变。 136 | 137 | 在医学上,有一套被称为 [*科赫公设*](https://en.wikipedia.org/wiki/Koch%27s_postulates) 的想法,历史上曾被用于确定某一特定生物体是否会引发疾病。基本思想是,这种微生物应该存在于患病人群中,而不存在于未患病人群中——因此,消除这种微生物后也该应该治疗相应的疾病。此外,用这种有机体感染某人会导致他们感染这种疾病。这方面的一个例子见于 Barry Marshall 博士的工作,他假设胃溃疡是由细菌引起的(*幽门螺杆菌*)。为了证明这一点,他用这种细菌感染了自己,此后不久,他的胃部出现了严重的炎症。然后他用抗生素治疗自己,他的胃很快就恢复了。他后来因为这项工作获得了诺贝尔医学奖。 138 | 139 | 我们经常想测试因果假设,但我们常常么有条件做实际实验,因为这往往是不可能的(比如说“人类碳排放和地球气候之间有什么关系?”)或者(“严重虐待对孩子大脑发育有什么影响?”).然而,我们仍然可以收集可能与这些问题相关的数据。例如,我们可以从受虐待和未受虐待的儿童那里收集数据,然后我们可以询问他们的大脑发育是否不同。 140 | 141 | 假设我们做了这样一个分析,我们发现受虐儿童的大脑发育比非受虐儿童差。这能证明虐待导致大脑发育不良吗?不。每当我们观察两个变量之间的统计关联时,这两个变量中的一个必然会导致另一个。然而,也有可能两个变量都受到第三个变量的影响;在这个例子中,虐待儿童可能与家庭压力有关,家庭压力也可能通过智力参与较少、食物压力或许多其他可能的因素导致大脑发育不良。关键是,两个变量之间的相关性通常会告诉我们,某个东西*可能*会导致其他东西,但它不会告诉我们什么会导致什么。 142 | 143 | 144 | 145 | ### 13.4.1 因果图 146 | 147 | 描述变量之间因果关系的一个有用的方法是通过*因果图*,它将变量显示为圆圈,将变量之间的因果关系显示为箭头。例如,图 [13.4](#fig:simpleCausalGraph) 显示了学习时间和我们认为应该受其影响的两个变量之间的因果关系:考试成绩和考试结束时间。 148 | 149 | 然而,实际上,对完成时间和成绩的影响并不直接归因于花在学习上的时间,而是学生通过学习获得的知识量。我们通常会说知识是一个*潜在的*变量——也就是说,我们不能直接测量它,但我们可以看到它反映在我们可以测量的变量中(如分数和完成时间)。图 [13.5](#fig:latentCausalGraph) 显示了这一点。 150 | 151 | ![A graph showing causal relationships between three variables: study time, exam grades, and exam finishing time. A green arrow represents a positive relationship (i.e. more study time causes exam grades to increase), and a red arrow represents a negative relationship (i.e. more study time causes faster completion of the exam).](img/file70.png) 152 | 153 | 图 13.4:显示三个变量之间因果关系的图表:学习时间、考试成绩和考试用时。绿色箭头表示正相关关系(即更多的学习时间导致考试成绩提高),红色箭头表示负相关关系(即更多的学习时间导致更快完成考试)。 154 | 155 | ![A graph showing the same causal relationships as above, but now also showing the latent variable (knowledge) using a square box.](img/file71.png) 156 | 157 | 图 13.5:一个图表显示了与上面相同的因果关系,但是现在也用一个方框显示了潜在变量(知识)。 158 | 159 | 这里我们可以说,知识*调节了*学习时间和成绩/完成时间之间的关系。这意味着,如果我们能够保持知识不变(例如,通过服用一种导致立即遗忘的药物),那么学习时间的长短就不再会对成绩和完成时间产生影响。 160 | 161 | 请注意,如果我们简单地测量考试成绩和完成时间,我们通常会看到它们之间的负相关关系,因为通常最快完成考试的人会得到最高的成绩。然而,如果我们将这种相关性解释为因果关系,这将告诉我们,为了取得更好的成绩,我们应该更快地完成考试!这个例子显示了从非实验数据中推断因果关系是多么困难。 162 | 163 | 在统计学和机器学习领域,有一个非常活跃的研究团体,目前正在研究我们何时以及如何从非实验数据中推断因果关系的问题。然而,这些方法通常需要强有力的假设,并且通常使用起来要非常谨慎。 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | ## 13.5 学习目标 172 | 173 | 阅读本章后,您应该能够: 174 | 175 | * 描述相关系数的概念及其解释 176 | * 计算两个连续变量之间的相关性 177 | * 描述异常数据点对相关性的影响以及如何解决它们。 178 | * 描述可能导致观察到的相关性的潜在因果影响。 179 | 180 | 181 | 182 | 183 | 184 | ## 13.6 建议读物 185 | 186 | * 朱迪亚·珀尔的《为什么》一书——对因果推理背后思想的极好介绍。 187 | 188 | 189 | 190 | 191 | 192 | ## 13.7 附录: 193 | 194 | 195 | 196 | ### 13.7.1 量化不平等:基尼指数 197 | 198 | 在我们看这篇报道中的分析之前,首先有必要了解基尼指数是如何用来量化不平等的。基尼指数通常被定义为一条曲线,描述收入与收入等于或低于该水平的人口比例之间的关系,称为*洛伦茨曲线*。然而,另一种思考方式更直观:它是收入之间的相对平均绝对差除以二(来自 https://en.wikipedia.org/wiki/Gini_coefficient[):](https://en.wikipedia.org/wiki/Gini_coefficient) 199 | 200 | ![gini](img/gini.png) 201 | ![Lorenz curves for A) perfect equality, B) normally distributed income, and C) high inequality (equal income except for one very wealthy individual).](img/file72.png) 202 | 203 | 图 13.6:洛伦茨曲线表示 A)完全平等,B)正常分配的收入,以及 C)高度不平等(除了一个非常富有的人之外,收入相等)。 204 | 205 | 图 [13.6](#fig:gini0) 显示了几种不同收入分布的洛伦兹曲线。左上图(A)显示了一个有 10 个人的例子,其中每个人的收入完全相同。两点之间的间隔长度相等,表明每个人在总收入中所占的份额相同。右上角的面板(B)显示了收入正态分布的示例。左下方的面板显示了一个高度不平等的示例;每个人都有相等的收入(40,000 美元),除了一个人,他的收入为 40,000,000 美元。根据美国人口普查,2010 年美国的基尼指数为 0.469,大约介于正态分布和最大不平等之间。 206 | 207 | 208 | 209 | 210 | 211 | ### 13.7.2 贝叶斯相关分析 212 | 213 | 我们还可以使用贝叶斯分析来分析 FiveThirtyEight 数据,这有两个好处。首先,它为我们提供了后验概率——在这种情况下,是相关值超过零的概率。第二,贝叶斯估计将观察到的证据与之前的*相结合,这具有*正则化*相关性估计的效果,有效地将其拉向零。这里我们可以用 r 中的 *BayesFactor* 包来计算* 214 | 215 | *``` 216 | ## Bayes factor analysis 217 | ## -------------- 218 | ## [1] Alt., r=0.333 : 21 ±0% 219 | ## 220 | ## Against denominator: 221 | ## Null, rho = 0 222 | ## --- 223 | ## Bayes factor type: BFcorrelation, Jeffreys-beta* 224 | ``` 225 | 226 | ``` 227 | ## Summary of Posterior Distribution 228 | ## 229 | ## Parameter | Median | 95% CI | pd | ROPE | % in ROPE | BF | Prior 230 | ## ---------------------------------------------------------------------------------------------- 231 | ## rho | 0.38 | [0.13, 0.58] | 99.88% | [-0.05, 0.05] | 0% | 20.85 | Beta (3 +- 3) 232 | ``` 233 | 234 | 请注意,使用贝叶斯方法估计的相关性(0.38)略小于使用标准相关系数估计的相关性(0.42),这是因为估计是基于证据和先验的组合,这有效地将估计缩小到零。但是,请注意,贝叶斯分析对异常值并不稳健,它仍然表示有相当强的证据表明相关性大于零(贝叶斯因子大于 20)。* 235 | 236 | 237 | 238 | -------------------------------------------------------------------------------- /docs/15.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 15 比较均值 4 | 我们已经遇到了许多关注样本均值问题的案例。 在本章中,我们将更深入地研究比较不同组均值的各种方法。 5 | 6 | 7 | ## 15.1 测试单个平均值 8 | 9 | 对于平均值,我们或许最想知道的是它是否有一个特定的值。假设我们想测试 NHANES 数据集中成年人的平均舒张压值是否高于 80,根据美国心脏病学会的规定,这是高血压的临界值。为了抛出这个问题,我们选取了 200 名成年人作为样本;每个成年人都测量了三次血压,我们使用这些血压的平均值进行测试。 10 | 11 | 测试这种差异的一种简单方法是使用一种称为*符号测试*的测试,它关注实际值和假设值之间的差异是否是偶然性的。为此,我们取每个数据点和假设平均值之间的差值,并计算它们的符号。如果数据是正态分布的,并且实际平均值等于假设平均值,那么高于(或低于)假设平均值的值的比例应该是 0.5,这样正差异的比例也应该是 0.5。在我们的样本中,我们看到 19.0%的人舒张压高于 80。然后,我们可以使用二项式测试来询问正差异的比例是否大于 0.5,使用我们统计软件中的二项式测试功能: 12 | 13 | ``` 14 | ## 15 | ## Exact binomial test 16 | ## 17 | ## data: npos and nrow(NHANES_sample) 18 | ## number of successes = 38, number of trials = 200, p-value = 1 19 | ## alternative hypothesis: true probability of success is greater than 0.5 20 | ## 95 percent confidence interval: 21 | ## 0.15 1.00 22 | ## sample estimates: 23 | ## probability of success 24 | ## 0.19 25 | ``` 26 | 27 | 这里我们看到,在$p \le 0.5$的零假设下,血压偏高的个体比例并不出乎我们的预期,鉴于观测值实际上小于$0.5$,这一点并不应该令我们感到惊讶。 28 | 29 | 我们也可以用学生的 t 检验来问这个问题,你在本书前面已经遇到过了。我们将平均数称为$\bar{X}$而假设的人口平均数称为$\mu$。然后,单个平均值的 t 检验为: 30 | $$ 31 | t = \frac{\bar{X} - \mu}{SEM} 32 | $$ 33 | SEM的简写为 Standard Error of Mean。使用下面的公式计算: 34 | 35 | $$ 36 | SEM = \frac{\hat{\sigma}}{\sqrt{n}} 37 | $$ 38 | 本质上,t 统计量询问样本均值与假设数量的偏差相对于均值的抽样变异性有多大。 39 | 40 | 我们可以使用统计软件对 NHANES 数据集进行计算: 41 | 42 | ``` 43 | ## 44 | ## One Sample t-test 45 | ## 46 | ## data: NHANES_adult$BPDiaAve 47 | ## t = -55, df = 4593, p-value = 1 48 | ## alternative hypothesis: true mean is greater than 80 49 | ## 95 percent confidence interval: 50 | ## 69 Inf 51 | ## sample estimates: 52 | ## mean of x 53 | ## 70 54 | ``` 55 | 56 | 这向我们表明,数据集中的平均舒张压(69.5)实际上远低于 80,因此我们对其是否高于 80 的测试远没有意义。 57 | 58 | 请记住,大的 p 值不会为我们提供支持零假设的证据,因为我们已经预计零假设一开始就是正确的。然而,正如我们在贝叶斯分析一章中所讨论的,我们可以使用贝叶斯因子来量化支持或反对零假设的证据: 59 | 60 | ``` 61 | ttestBF(NHANES_sample$BPDiaAve, mu=80, nullInterval=c(-Inf, 80)) 62 | ``` 63 | 64 | ``` 65 | ## Bayes factor analysis 66 | ## -------------- 67 | ## [1] Alt., r=0.707 -Inf|t|) 140 | ## (Intercept) 2.007 0.116 17.27 < 2e-16 *** 141 | ## RegularMarijYes 0.778 0.230 3.38 0.00087 *** 142 | ## --- 143 | ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 144 | ## 145 | ## Residual standard error: 1.4 on 198 degrees of freedom 146 | ## Multiple R-squared: 0.0546, Adjusted R-squared: 0.0498 147 | ## F-statistic: 11.4 on 1 and 198 DF, p-value: 0.000872 148 | ``` 149 | 150 | 我们也可以图形方式查看线性模型结果(参见图 [15.1](#fig:PotTVViolin) 的右侧面板)。在这种情况下,不吸烟者的预测值是$\hat{\beta_0}$,而吸烟者的预测值是$\hat{\beta_0} +\hat{\beta_1}$ 151 | 152 | 为了计算这种分析的标准误差,我们可以使用与线性回归完全相同的方程,因为这实际上是线性回归的另一个例子。事实上,如果您将上述 t 检验的 p 值与大麻使用变量的线性回归分析中的 p 值进行比较,您会发现线性回归分析的 p 值恰好是 t 检验的两倍,因为线性回归分析正在执行双尾检验。 153 | 154 | 155 | 156 | ### 15.3.1 比较两种方法的效果大小 157 | 158 | 比较两个均值最常用的效应大小是科恩的 d,它(你可能记得第 [10](#ci-effect-size-power) 章)是用标准差单位表示的效应大小。对于使用上述一般线性模型(即,使用单个虚拟编码变量)估计的 t 检验,这表示为: 159 | 160 | $$ 161 | d = \frac{\hat{\beta_1}}{\sigma_{residual}} 162 | $$ 163 | 164 | 我们还可以计算出$r^2$,然后进行分析,它告诉我们吸食大麻的人在看电视的人中占了多大比例。这个值(在上面的线性模型分析总结的底部报告)是 0.05,这告诉我们,虽然这种影响在统计上可能是显著的,但它在看电视的变化中占相对较小的比例。 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | ## 15.4 均值差异的贝叶斯因子 173 | 174 | 正如我们在贝叶斯分析一章中所讨论的,贝叶斯因子提供了一种更好地量化支持或反对无差异零假设的证据的方法。我们可以对相同数据进行分析: 175 | 176 | ``` 177 | ## Bayes factor analysis 178 | ## -------------- 179 | ## [1] Alt., r=0.707 0|t|) 336 | ## (Intercept) 141.60 1.66 85.50 < 2e-16 *** 337 | ## d1 -10.24 2.34 -4.37 2.9e-05 *** 338 | ## d2 -2.03 2.34 -0.87 0.39 339 | ## --- 340 | ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 341 | ## 342 | ## Residual standard error: 9.9 on 105 degrees of freedom 343 | ## Multiple R-squared: 0.169, Adjusted R-squared: 0.154 344 | ## F-statistic: 10.7 on 2 and 105 DF, p-value: 5.83e-05 345 | ``` 346 | 347 | 这个命令的输出为我们提供了两个信息。首先,它向我们展示了每个虚拟变量的 t 检验结果,这基本上告诉我们每个条件是否分别不同于安慰剂;似乎药物 1 有,而药物 2 没有。但是,请记住,如果我们想要解释这些测试,我们需要校正 p 值,以说明我们已经进行了多重假设测试的事实;我们将在下一章看到如何做到这一点的例子。 348 | 349 | 请记住,我们开始想要测试的假设是,任何条件之间是否有任何差异;我们称之为*综合*假设检验,它是由 F 统计提供的检验。F 统计量基本上告诉我们,我们的模型是否优于只包含截距的简单模型。在这种情况下,我们看到 f 检验非常显著,与我们的印象一致,即两组之间似乎确实存在差异(事实上我们知道存在差异,因为我们创建了数据)。 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | ## 15.7 学习目标 358 | 359 | 阅读本章后,您应该能够: 360 | 361 | * 描述符号测试背后的基本原理 362 | * 描述如何使用 t 检验来比较一个平均值和一个假设值 363 | * 使用双样本 t 检验比较两个配对或非配对组的平均值 364 | * 描述如何使用方差分析来检验两个以上平均数之间的差异。 365 | 366 | 367 | 368 | 369 | 370 | ## 15.8 附录 371 | 372 | 373 | 374 | ### 15.8.1 作为线性模型的成对t检验 375 | 376 | 我们也可以根据一般的线性模型来定义成对t检验。为此,我们将每个受试者的所有测量结果作为数据点包含在内(在一个整洁的数据框内)。然后,我们在模型中包含一个变量,该变量对每个人的身份进行编码(在本例中,ID 变量包含每个人的主题 ID)。这被称为*混合模型*,因为它包括独立变量的影响以及个人的影响。标准的模型拟合过程`lm()`无法做到这一点,但我们可以使用一个流行的 R 包 *lme4* 中的`lmer()`函数来做到这一点,该包专门用于估计混合模型。公式中的`(1|ID)`告诉`lmer()`为`ID`变量的每个值(即数据集中的每个个体)估计一个单独的截距(这就是`1`所指的截距),然后估计一个与 BP 时间点相关的公共斜率。 377 | 378 | ``` 379 | # compute mixed model for paired test 380 | 381 | lmrResult <- lmer(BPsys ~ timepoint + (1 | ID), 382 | data = NHANES_sample_tidy) 383 | summary(lmrResult) 384 | ``` 385 | 386 | ``` 387 | ## Linear mixed model fit by REML. t-tests use Satterthwaite's method [ 388 | ## lmerModLmerTest] 389 | ## Formula: BPsys ~ timepoint + (1 | ID) 390 | ## Data: NHANES_sample_tidy 391 | ## 392 | ## REML criterion at convergence: 2895 393 | ## 394 | ## Scaled residuals: 395 | ## Min 1Q Median 3Q Max 396 | ## -2.3843 -0.4808 0.0076 0.4221 2.1718 397 | ## 398 | ## Random effects: 399 | ## Groups Name Variance Std.Dev. 400 | ## ID (Intercept) 236.1 15.37 401 | ## Residual 13.9 3.73 402 | ## Number of obs: 400, groups: ID, 200 403 | ## 404 | ## Fixed effects: 405 | ## Estimate Std. Error df t value Pr(>|t|) 406 | ## (Intercept) 121.370 1.118 210.361 108.55 <2e-16 *** 407 | ## timepointBPSys2 -1.020 0.373 199.000 -2.74 0.0068 ** 408 | ## --- 409 | ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 410 | ## 411 | ## Correlation of Fixed Effects: 412 | ## (Intr) 413 | ## tmpntBPSys2 -0.167 414 | ``` 415 | 416 | 您可以看到,这向我们显示了一个 p 值,它非常接近使用`t.test()`函数计算的配对 t 检验的结果。 417 | 418 | 419 | 420 | 421 | 422 | -------------------------------------------------------------------------------- /docs/16.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 16 多元统计 4 | 5 | 术语*多元*指的是涉及一个以上随机变量的统计分析。虽然我们已经看到了之前的例子,其中模型包括多个变量(如线性回归),但在那些情况下,我们特别性知道的是如何用一个或多个由实验者指定而不是测量的*自变量*来解释*因变量*的变化。在多变量分析中,我们通常平等地对待所有变量,并试图理解它们作为一个整体是如何相互关联的。 6 | 7 | 多变量分析有许多不同的种类,但在这一章中我们主要讨论两种方法。首先,我们可能只是想理解和可视化数据中存在的结构,我们通常指的是哪些变量或观察值与其他变量或观察值相关。我们通常将“相关”定义为一些度量,这些度量表示变量之间的距离。属于这一类别的一个重要方法被称为*聚类*,其目的是找到变量或变量间相似的观察值的聚类。 8 | 9 | 第二,我们可能希望获取更多变量,并以尽可能保留更多信息的方式来减少变量。这被称为*降维*,其中“维度”是指数据集中变量的个数。我们将讨论两种常用的降维技术,称为*主成分分析*和*因子分析*。 10 | 11 | 聚类和降维通常被归类为*无监督学习*的形式;这与*监督学习*形成了对比,你目前接触到的线性回归模型是一种监督学习。我们认为线性回归是“受监督的”原因是,我们知道我们试图预测的事物(即因变量)的值,并且我们试图找到最佳预测这些值的模型。在非监督学习中,我们不知道预测值(因变量);相反,我们试图在数据中发现可能对理解正在发生的事情有用的结构,这通常需要一些关于我们想要找到哪种结构的假设。 12 | 13 | 在这一章中,你会发现,虽然在监督学习中通常有一个“正确”的答案(这让我们很容易来定义一个损失函数来评估模型,如误差平方和),但在无监督学习中通常没有所谓的“正确”答案。不同的无监督学习方法可以对相同的数据给出完全不同的答案,并且通常在原则上没有办法确定其中哪个是“正确的”,因为它取决于分析的目标和人们愿意对产生数据的机制做出的假设。一派人觉得这令人沮丧,而另一派人觉得这令人振奋;如何站队由你自己来决定。 14 | 15 | 16 | 17 | ## 16.1 多元数据:一个例子 18 | 19 | 作为多变量分析的一个例子,我们将看一个由我的小组收集并由艾森伯格等人发表的数据集 ( [**Eisenberg:2019um**](#ref-Eisenberg:2019um) ) 。这个数据集有大量有趣的变量,这些变量是从大量的样本中收集的,也由于它可以在网上免费获得,所以你可以自己探索它。 20 | 21 | 进行这项研究是因为我们想了解心理功能的几个不同方面是如何相互联系的,特别关注自我控制的心理测量和相关概念。参与者在一周的时间里进行了长达十小时的认知测试和调查;在第一个例子中,我们将关注与自我控制的两个具体方面相关的变量。*反应抑制*被定义为快速停止一个动作的能力,在这项研究中,使用一组被称为*停止信号任务*的任务进行测量。这些任务相关的变量观测的是对一个人停止自己心里活动需要多长时间,称为*停止信号反应时间* ( *SSRT* ),在数据集中有四种不同的测量方法。*冲动性*定义为凭冲动做出决定的倾向,不考虑潜在后果和长期目标。这项研究包括许多测量冲动性的不同调查,但我们将重点关注 UPPS-P 调查,该调查评估了冲动性的五个不同方面。 22 | 23 | 在艾森伯格的研究中,计算了 522 名参与者的分数后,我们仅仅使用了9个变量。虽然多元数据有时可能有数千甚至数百万个变量,但让我们先看看我们是如何处理少量变量情况的,然后再推广到一般的情况。 24 | 25 | 26 | 27 | 28 | 29 | ## 16.2 可视化多元数据 30 | 31 | 处理多元数据的一个基本挑战是,人类的眼睛和大脑根本不具备可视化三维以上数据的能力。我们可以使用各种工具来尝试可视化多元数据,但随着变量数量的增加,所有这些工具都会失效。一旦变量的数量变得太大而不能直接可视化,一种方法是首先减少维度的数量(如下面进一步讨论的),然后可视化减少的数据集。 32 | 33 | 34 | 35 | ### 16.2.1 矩阵分布图 36 | 37 | 将少量变量可视化的一个有用方法是将每一对变量相对于另一个绘制成图,有时称为“矩阵散点图”;示例如图 [16.1](#fig:pairpanel) 所示。面板中的每一行/每一列指的是一个变量——在这个例子中,是我们在前面例子中的一个心理变量。图上的对角线元素以直方图的形式显示了每个变量的分布。对角线下方的元素显示了每对变量的散点图,红色线条描述变量之间关系的回归线。对角线上方的元素显示每对变量的相关系数。当变量数量相对较少(大约10个或更少)时,这可能是深入了解多变量数据集的一个有效方法。 38 | 39 | ![Scatterplot of matrices for the nine variables in the self-control dataset. The diagonal elements in the matrix show the histogram for each of the individual variables. The lower left panels show scatterplots of the relationship between each pair of variables, and the upper right panel shows the correlation coefficient for each pair of variables.](img/file85.png) 40 | 41 | 图 16.1:自身对照数据集中九个变量的矩阵散点图。矩阵中的对角线元素显示了每个变量的直方图。左下面板显示每对变量之间关系的散点图,右上面板显示每对变量的相关系数。 42 | 43 | 44 | 45 | 46 | 47 | ### 16.2.2 热力图 48 | 49 | 在某些情况下,我们希望一次可视化大量变量之间的关系,通常侧重于变量之间的相关系数。一种有用的方法是将相关值绘制成*热力图*,其中热力图的颜色与相关值相关。图 [16.2](#fig:hmap) 显示了一个变量相对较少的例子,使用了我们上面的心理学例子。在这种情况下,热力图有助于发现数据的结构;我们看到 SSRT 变量和 UPPS 变量之间有很强的相关性,而其它变量之间的相关性相对较小。 50 | 51 | ![Heatmap of the correlation matrix for the nine self-control variables. The brighter yellow areas in the top left and bottom right highlight the higher correlations within the two subsets of variables.](img/file86.png) 52 | 53 | 图 16.2:九个自变量的相关矩阵热图。左上方和右下方较亮的黄色区域突出显示了这两个变量子集内较高的相关性。 54 | 55 | 热力图对于可视化大量变量之间的相关性变得特别有用。我们可以用脑成像数据作为例子。神经科学研究人员通常使用磁共振成像方法(fMRI)从大脑中的大量位置收集关于大脑功能的数据,然后评估这些位置之间的相关性,以测量这些区域之间的“连通性”。例如,图 [16.3](#fig:parcelheatmap) 显示了一个大型相关矩阵的热力图,该热力图基于单个个体(你的真实)大脑中 300 多个区域的活动。只需查看热力图,数据中清晰结构的存在就会显现出来。具体来说,我们看到有大量大脑区域的活动彼此高度相关(在沿着相关矩阵对角线的大黄色块中可见),而这些块也与其他块强烈负相关(在对角线外的大蓝色块中可见)。热力图是一个强大的工具,可以轻松地可视化大型数据矩阵。 56 | 57 | ![A heatmap showing the correlation coefficient of brain activity between 316 regions in the left hemisphere of a single individiual. Cells in yellow reflect strong positive correlation, whereas cells in blue reflect strong negative correlation. The large blocks of positive correlation along the diagonal of the matrix correspond to the major connected networks in the brain](img/file87.png) 58 | 59 | 图 16.3:显示一个人左半球 316 个区域之间大脑活动相关系数的热力图。黄色单元反映了强正相关,而蓝色单元反映了强负相关。沿着矩阵对角线的大块正相关对应于大脑中的主要连接网络 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | ## 16.3 聚类 68 | 69 | 聚类是指基于观察值的相似性来识别数据集中相关观察值或变量组的一种方法。通常,这种相似性将根据多元值之间的*距离*的某种度量来量化。然后,聚类方法会找到成员间距离最小的组。 70 | 71 | 一种常用的聚类距离度量是*欧几里德距离*,它基本上是连接两个数据点的线的长度。图 [16.4](#fig:eucdist) 显示了一个有两个数据点和两个维度(X 和 Y)的数据集的例子。这两点之间的欧几里得距离是连接空间中的点的虚线的长度。 72 | 73 | ![A depiction of the Euclidean distance between two points, (1,2) and (4,3). The two points differ by 3 along the X axis and by 1 along the Y axis.](img/file88.png) 74 | 75 | 图 16.4:两点(1,2)和(4,3)之间欧几里得距离的描述。这两个点在X轴方向相差3个单位,在Y轴方向相差1个单位。 76 | 77 | 欧几里德距离的计算方法是,对每个维度上的点的位置差求平方,将这些平方差相加,然后求平方根。当有两个维度$x$和$y$时,计算公式为: 78 | 79 | $$ 80 | d(x, y) = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2} 81 | $$ 82 | 83 | 带入我们示例数据中的值: 84 | 85 | $$ 86 | d(x, y) = \sqrt{(1 - 4)^2 + (2 - 3)^2} = 3.16 87 | $$ 88 | 89 | 你是不是觉得欧几里得距离的公式看起来有点眼熟,这是因为它与我们大多数人在几何课上学到的*勾股定理*相同,勾股定理根据两条边的长度计算直角三角形斜边的长度。在这种情况下,三角形各边的长度对应于两个维度上各点之间的距离。虽然这个例子是二维的,但是我们经常会处理比二维多得多的数据,但是同样的想法可以扩展到高位空间中去。 90 | 91 | 欧几里德距离的一个重要特征是,它对数据的总体平均值和可变性很敏感。从这个意义上说,它不同于相关系数,相关系数以一种对总体均值或变异性不敏感的方式来衡量变量之间的线性关系。出于这个原因,通常在计算欧几里德距离之前对数据进行缩放,这相当于将每个变量转换成其 Z 得分版本。 92 | 93 | 94 | 95 | ### 16.3.1 K-均值聚类 96 | 97 | 一种常用的数据聚类方法是 *K-means 聚类*。该技术识别一组聚类中心,然后将每个数据点分配给其中心离该数据点最近(即,最小化欧几里得距离)的聚类。举个例子,我们以全球多个国家的经纬度作为我们的数据点,看看 K-means 聚类是否能有效识别世界各大洲。 98 | 99 | 大多数统计软件包都有一个内置函数,可以使用一个命令来执行 K-means 聚类,但是一步一步地理解它是如何工作的是很有用的。我们必须首先确定一个超参数K,即数据中的聚类数。需要指出的是,聚类数没有唯一的标准答案;人们可以使用各种技术来尝试确定哪个解决方案是“最佳”的,但它们通常会给出不同的答案,因为它们包含不同的假设或权衡。尽管如此,聚类技术(如 K-means)是理解数据结构的重要工具,尤其是当数据在高位空间中时。 100 | 101 | 在选择了我们希望找到的聚类数( *K* )之后,我们必须初始化K个位置,最开始我们对聚类质心随机初始化(因为我们最初不知道质心在哪里)。一种简单的开始方式是随机选择K个实际数据点,并使用它们作为我们的起点,它们被称为*质心*。然后,我们计算每个数据点到每个质心的欧几里德距离,并根据每个点最近的质心将其分配到一个聚类中。使用这些新的聚类分配,我们通过平均分配给该聚类的所有点的位置来重新计算每个聚类的质心。然后重复这一过程,直到找到稳定的解决方案;我们称之为*迭代*过程,因为它最终会收敛,或者直到达到某种边界条件,比如最大可能迭代次数。 102 | 103 | ![A two-dimensional depiction of clustering on the latitude and longitude of countries across the world. The square black symbols show the starting centroids for each cluster, and the lines show the movement of the centroid for that cluster across the iterations of the algorithm.](img/file89.png) 104 | 105 | 图 16.5:世界各国纬度和经度聚类的二维描述。黑色方形符号显示每个聚类的起始质心,线条显示该聚类的质心在算法迭代过程中的移动轨迹。 106 | 107 | 将 K-means 聚类应用于纬度/经度数据(图 [16.5](#fig:kmeans) ),我们看到得到的聚类和大陆之间有合理的匹配,尽管没有一个大陆与任何聚类完全匹配。我们可以通过绘制一个表来进一步检验这一点,该表将每个聚类的成员与每个国家的实际大陆进行比较;这种表格通常被称为*混淆矩阵*。 108 | 109 | ``` 110 | ## 111 | ## labels AF AS EU NA OC SA 112 | ## 1 5 1 36 0 0 0 113 | ## 2 3 24 0 0 0 0 114 | ## 3 0 0 0 0 0 7 115 | ## 4 0 0 0 15 0 4 116 | ## 5 0 10 0 0 6 0 117 | ## 6 35 0 0 0 0 0 118 | ``` 119 | 120 | * 第一组包括所有欧洲国家,以及北非和亚洲国家。 121 | * 第二组包括亚洲国家和几个非洲国家。 122 | * 第三组包括南美洲南部的国家。 123 | * 第四组包括所有北美国家以及南美北部国家。 124 | * 第五组包括大洋洲和几个亚洲国家 125 | * 第六组包括所有其余的非洲国家。 126 | 127 | 虽然在这个例子中我们知道实际的聚类(即世界的大陆版图分布情况),但一般来说,我们实际上不知道无监督学习问题的答案,所以我们只能相信聚类方法已经在数据中找到了有用的结构。然而,关于 K-means 聚类和迭代过程的一个要点是,它们不能保证每次运行时都给出相同的答案。使用随机数来确定起点意味着起点每次都可能不同,并且根据数据,这有时会导致找到不同的解决方案。对于这个例子,K-means 聚类有时会找到包含北美和南美的单个聚类,有时会找到两个聚类(就像这里使用的随机种子的特定选择一样)。每当使用涉及迭代解决方案的方法时,使用不同的随机种子多次重新运行该方法是很重要的,以确保运行之间的答案不会相差太大。如果是这样,那么我们应该避免根据不稳定的结果做出强有力的结论。事实上,在更普遍的聚类结果的基础上避免强有力的结论可能是一个好主意;它们主要用于直观地了解数据集中可能存在的结构。 128 | 129 | ![A visualization of the clustering results from 10 runs of the K-means clustering algorithm with K=3\. Each row in the figure represents a different run of the clustering algorithm (with different random starting points), and variables sharing the same color are members of the same cluster.](img/file90.png) 130 | 131 | 图 16.6:K = 3 的 K 均值聚类算法的 10 次运行的聚类结果的可视化。图中的每一行代表聚类算法的不同运行(具有不同的随机起点),共享相同颜色的变量是同一聚类的成员。 132 | 133 | 我们可以将 K-means 聚类应用于自变量,以确定哪些变量彼此关系最密切。对于 K=2,K-means 算法始终挑选出一个包含 SSRT 变量的聚类和一个包含冲动性变量的聚类。K 值越高,结果越不一致;例如,当 K=3 时,该算法有时会识别出仅包含 UPPS 感觉寻求变量的第三个聚类,而在其他情况下,它会将 SSRT 变量分成两个独立的聚类(如图 [16.6](#fig:kmeansSro) 所示)。K=2 的聚类的稳定性表明,这可能是这些数据的最稳健的聚类,但这些结果也突出了多次运行算法以确定任何特定聚类结果是否稳定的重要性。 134 | 135 | 136 | 137 | 138 | 139 | ### 16.3.2 层次聚类 140 | 141 | 检查多变量数据集结构的另一种有用方法称为*层次聚类*。这种技术也使用数据点之间的距离来确定聚类,它也提供了一种以树状结构(称为*树状图*)来可视化数据点之间关系的方法。 142 | 143 | 最常用的层次聚类过程被称为*凝聚聚类*。该过程首先将每个数据点视为其自己的聚类,然后通过组合两个聚类之间距离最化来逐步创建新的聚类。它一直这样做下去,直到只剩下一个集群。这需要计算类之间的距离,有许多方法可以做到这一点;在本例中,我们将使用*平均关联*方法,该方法简单地取两个聚类中每个数据点之间所有距离的平均值。例如,我们将检查上述自控变量之间的关系。 144 | 145 | ![A dendrogram depicting the relative similarity of the nine self-control variables. The three colored vertical lines represent three different cutoffs, resulting in either two (blue line), three (green line), or four (red line) clusters.](img/file91.png) 146 | 147 | 图 16.7:描述九个自控变量相对相似性的树状图。三条彩色垂直线代表三个不同的截止点,产生两个(蓝线)、三个(绿线)或四个(红线)聚类。 148 | 149 | 图 [16.7](#fig:dendro) 显示了自调节数据集生成的树状图。这里我们看到,变量之间的关系是有结构的,可以通过“切割”树来创建不同数量的集群,从而在不同的级别上理解:如果我们以 25°切割树,我们会得到两个集群;如果我们在 20 度切割它,我们得到三个集群,在 19 度我们得到四个集群。 150 | 151 | 有趣的是,通过自身对照数据的分层聚类分析发现的解决方案与在大多数 K-means 聚类运行中发现的解决方案是相同的,这是令人欣慰的。 152 | 153 | 我们对此分析的解释是,与变量集之间相比,每个变量集(SSRT 和 UPPS)内部都有高度的相似性。在 UPPS 变量中,感觉寻求变量似乎独立于其他变量,而其他变量彼此更加相似。在 SSRT 变量中,刺激选择性 SSRT 变量似乎不同于其他三个更相似的变量。这些是可以从聚类分析中得出的结论。再次重要的是指出不存在单一的“正确的”集群数量;不同的方法依赖于不同的假设或启发,可以给出不同的结果和解释。一般来说,最好在几个不同的级别上呈现数据集群,并确保这不会显著改变数据的解释。 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | ## 16.4 降维 162 | 163 | 多变量数据的情况通常是,许多变量彼此高度相似,因此它们在很大程度上测量的是同一事物。思考这个问题的一种方式是,虽然数据有特定数量的变量,我们称之为其*维度*,但实际上,潜在的信息来源并没有变量那么多。*降维*背后的想法是减少变量的数量,以创建反映数据中潜在信号的复合变量。 164 | 165 | 166 | 167 | ### 16.4.1 主成分分析 168 | 169 | 主成分分析背后的思想是找到一组变量的低维描述,该描述进可能的保留原始数据集的信息量。深入理解主成分分析需要对线性代数有所了解,这不在本书范围内;请参阅本章末尾的参考资料,获取有关该主题的有用指南。在这一节中,我将概述这个概念,希望能激起你学习更多的兴趣。 170 | 171 | 我们将从一个只有两个变量的简单例子开始,以便直观地了解它是如何工作的。首先,我们为变量 X 和 Y 生成一些合成数据,这两个变量之间的相关性为 0.7。主成分分析的目标是找到数据集中自变量的线性组合,它将解释最大的方差;这里的想法是,数据中的方差是信号和噪声的组合,我们希望找到变量之间最强的共同信号。第一个主成分是解释最大方差的组合。第二个分量解释了最大剩余方差,同时也与第一个分量正交。有了更多的变量,我们可以继续这个过程,以获得与变量一样多的分量(假设观测值多于变量),尽管在实践中,我们通常希望找到少量的分量来解释大部分的方差。 172 | 173 | 在我们的二维例子中,我们可以计算主成分,并将它们绘制在数据上(图 [16.8](#fig:pcaPlot) )。我们看到的是,第一个主成分(显示为绿色)遵循最大方差的方向。这条线与线性回归线相似,但不完全相同;当线性回归意在解决最小化在相同 X 值的每个数据点和回归线之间的距离(即垂直距离)时,主成分最小化数据点和表示该成分的线之间的欧几里德距离(即垂直于该成分的距离)。第二个分量指向与第一个分量垂直的方向(相当于不相关)。 174 | 175 | ![A plot of synthetic data, with the first principal component plotted in green and the second in red.](img/file92.png) 176 | 177 | 图 16.8:合成数据图,第一个主成分标为绿色,第二个标为红色。 178 | 179 | 通常使用主成分分析来降低更复杂数据集的维数。例如,假设我们想知道早期数据集中所有四个停止信号任务变量的表现是否与五个冲动性调查变量相关。我们可以分别对这些数据集执行 PCA,并检查数据中有多少方差是由第一主成分解释的,这将作为我们对数据的总结。 180 | 181 | ![A plot of the variance accounted for (or *scree plot*) for PCA applied separately to the response inhibition and impulsivity variables from the Eisenberg dataset.](img/file93.png) 182 | 183 | 图 16.9:五氯苯甲醚的方差图(或 *scree 图*)分别应用于艾森伯格数据集的反应抑制和冲动性变量。 184 | 185 | 我们在图 [16.9](#fig:VAF) 中看到,对于停止信号变量,第一主成分约占数据方差的 60%,而对于 UPPS,它约占方差的 55%。然后,我们可以计算使用第一个主成分从每组变量获得的分数之间的相关性,以确定两组变量之间是否存在关系。两个汇总变量之间的相关性为-0.014,表明在该数据集中,反应抑制和冲动性之间没有总体关系。 186 | 187 | ``` 188 | ## 189 | ## Pearson's product-moment correlation 190 | ## 191 | ## data: pca_df$SSRT and pca_df$UPPS 192 | ## t = -0.3, df = 327, p-value = 0.8 193 | ## alternative hypothesis: true correlation is not equal to 0 194 | ## 95 percent confidence interval: 195 | ## -0.123 0.093 196 | ## sample estimates: 197 | ## cor 198 | ## -0.015 199 | ``` 200 | 201 | 我们也可以一次对所有这些变量进行主成分分析。查看图 [16.7](#fig:dendro) 中的方差图(也称为*scree 图),我们可以看到前两个分量占数据中方差的很大一部分。然后,我们可以查看这两个组件上每个单独变量的负载,以了解每个特定变量如何与不同的组件相关联。 202 | 203 | ![Plot of variance accounted for by PCA components computed on the full set of self-control variables.](img/file94.png) 204 | 205 | (#fig:imp_pc_scree)根据全套自控变量计算的 PCA 成分的方差图。 206 | 207 | ![Plot of variable loadings in PCA solution including all self-control variables. Each variable is shown in terms of its loadings on each of the two components; reflected in the two rows respectively.](img/file95.png) 208 | 209 | 图 16.10:包含所有自控变量的 PCA 溶液中的可变负荷图。每个变量都以其在两个分量上的载荷来表示;分别反映在两排。 210 | 211 | 对冲动性数据集(图 [16.10](#fig:pcaVarPlot) )这样做,我们看到第一个分量(在图的第一行)对大多数 UPPS 变量具有非零载荷,对每个 SSRT 变量几乎为零载荷,而第二个主分量则相反,它主要加载 SSRT 变量。这告诉我们,第一主成分主要捕获与冲动性测量相关的方差,而第二主成分主要捕获与反应抑制测量相关的方差。你可能会注意到,对于这些变量中的大多数,载荷实际上是负的;载荷的符号是任意的,所以我们应该确保看到大的正负载荷。 212 | 213 | 214 | 215 | 216 | 217 | ### 16.4.2 因子分析 218 | 219 | 虽然主成分分析可用于将数据集减少到较少数量的复合变量,但 PCA 的标准方法有一些局限性。最重要的是,它确保组成成分是不相关的;虽然这有时很有用,但在很多情况下,我们希望尽可能的提取相互关联的维度。第二个限制是PCA不考虑被分析变量的测量误差,这会导致难以解释组成成分上的最终载荷。虽然PCA的升级版可以解决这些问题,但在一些领域(如心理学)更常见的是使用一种称为*探索性因子分析*(或EFA)的技术来降低数据集的维度。 [1](#fn1) 220 | 221 | 探索性因子分析背后的想法是,每个观察到的变量都是通过一组潜在变量(即无法直接观察到的变量)来组合而成的,同时每个变量都有一定的测量误差。出于这个原因,探索性因子分析模型通常被称为属于所谓为*潜在变量模型*的统计模型。 222 | 223 | 例如,假设我们想要了解几个不同变量的度量与产生这些度量的潜在因素之间的关系。我们将首先生成一个合成数据集来展示可能存在的关系。我们将产生一组个体,假设我们知道几个潜在的心理变量的值:冲动性、工作记忆能力和流畅的推理。假设工作记忆能力和流畅的推理是相互关联的,但两者都与冲动性不相关。然后,我们将从这些潜在变量中为每个个体生成一组八个观察变量,这些变量是潜在变量与随机噪声的简单线性组合,随机噪声用于模拟测量误差。 224 | 225 | 我们可以通过显示与所有这些变量相关的关联矩阵的热力图来进一步检查数据(图 [16.7](#fig:dendro) )。我们由此看到,有三组变量对应我们的三个潜变量,这是情理之中的。 226 | 227 | ![A heatmap showing the correlations between the variables generated from the three underlying latent variables.](img/file96.png) 228 | 229 | (#fig:efa_cor_hmap)热力图显示了从三个潜在变量生成的变量之间的相关性。 230 | 231 | 我们可以认为EFA是一次性估计一组线性模型的参数,其中每个模型将每个观察变量与潜在变量相关联。在我们的这个例子,这些方程看起来如下。在这些等式中,$\beta$字符有两个下标,一个表示任务,另一个表示潜在变量,还有一个变量$\epsilon$表示误差。这里我们将假设一切都有一个零均值,所以我们不需要为每个方程添加一个额外的截距项。 232 | 233 | $$ 234 | \begin{array}{lcl} 235 | nback & = &beta_{[1, 1]} * WM + \beta_{[1, 2]} * FR + \beta_{[1, 3]} * IMP + \epsilon \\ 236 | dspan & = &beta_{[2, 1]} * WM + \beta_{[2, 2]} * FR + \beta_{[2, 3]} * IMP + \epsilon \\ 237 | ospan & = &beta_{[3, 1]} * WM + \beta_{[3, 2]} * FR + \beta_{[3, 3]} * IMP + \epsilon \\ 238 | ravens & = &beta_{[4, 1]} * WM + \beta_{[4, 2]} * FR + \beta_{[4, 3]} * IMP + \epsilon \\ 239 | crt & = &beta_{[5, 1]} * WM + \beta_{[5, 2]} * FR + \beta_{[5, 3]} * IMP + \epsilon \\ 240 | UPPS & = &beta_{[6, 1]} * WM + \beta_{[6, 2]} * FR + \beta_{[6, 3]} * IMP + \epsilon \\ 241 | BIS11 & = &beta_{[7, 1]} * WM + \beta_{[7, 2]} * FR + \beta_{[7, 3]} * IMP + \epsilon \\ 242 | dickman & = &beta_{[8, 1]} * WM + \beta_{[8, 2]} * FR + \beta_{[8, 3]} * IMP + \epsilon \\ 243 | \end{array} 244 | $$ 245 | 246 | 实际上,我们使用 EFA 想要做的是估计系数(betas)的*矩阵*,该矩阵将潜在变量映射到观察变量。对于我们正在生成的数据,我们知道这个矩阵中的大多数贝塔系数为零,因为我们是这样创建它们的;对于每个任务,只有一个权重设置为 1,这意味着每个任务是单个潜在变量的有噪声的测量。 247 | 248 | 我们可以将 EFA 应用于我们的合成数据集来估计这些参数。除了提到重要的一点之外,我们不会详细讨论探索性因子分析实际上是如何使用的。本书中之前的大多数分析都依赖于试图最小化观测数据值和模型预测值之间差异的方法。用于估计 EFA 参数的方法试图最小化观察变量间的观察到的*协方差*和模型参数隐含的协方差之间的差异。为此,这些方法通常被称为*协方差结构模型*。 249 | 250 | 让我们对综合数据进行探索性因素分析。与聚类方法一样,首先需要我们确定想要在模型中包含多少潜在因子。在这种情况下,我们知道有三个因子,所以让我们从这一点开始;稍后,我们将研究直接从数据中估计因子数量的方法。这是我们的统计软件对此模型的输出: 251 | 252 | ``` 253 | ## 254 | ## Factor analysis with Call: fa(r = observed_df, nfactors = 3) 255 | ## 256 | ## Test of the hypothesis that 3 factors are sufficient. 257 | ## The degrees of freedom for the model is 7 and the objective function was 0.04 258 | ## The number of observations was 200 with Chi Square = 8 with prob < 0.34 259 | ## 260 | ## The root mean square of the residuals (RMSA) is 0.01 261 | ## The df corrected root mean square of the residuals is 0.03 262 | ## 263 | ## Tucker Lewis Index of factoring reliability = 0.99 264 | ## RMSEA index = 0.026 and the 10 % confidence intervals are 0 0.094 265 | ## BIC = -29 266 | ## With factor correlations of 267 | ## MR1 MR2 MR3 268 | ## MR1 1.00 0.03 0.47 269 | ## MR2 0.03 1.00 0.03 270 | ## MR3 0.47 0.03 1.00 271 | ``` 272 | 273 | 我们想问的一个问题是,我们的模型实际上有多符合数据。这个问题没有维一的答案;相反,研究人员开发了许多不同的方法,为模型与数据的拟合程度提供了一些见解。例如,一个常用的标准是基于近似的 (RMSEA)统计的均方根误差,其量化了预测的协方差与实际协方差有多远;当RMSEA小于0.08时,我们说这个模型基本上反映了数据的生成规则。在这里的例子中,RMSEA值是0.026,说明这是一个比较好的模型。 274 | 275 | 我们还可以检查参数估计,以查看模型是否恰当地识别了数据中的结构。通常将其绘制成图表,从潜在变量(表示为椭圆)指向观察变量(表示为矩形),其中箭头表示潜在变量上观察变量的实际负载;这种图形通常被称为*路径图*,因为它反映了与变量相关的路径。如图 [16.11](#fig:faDiagram) 所示。在这种情况下,EFA 程序正确地识别了数据中存在的结构,既识别了哪些观察变量与每个潜在变量相关,又识别了潜在变量之间的相关性。 276 | 277 | ![Path diagram for the exploratory factor analysis model.](img/file97.png) 278 | 279 | 图 16.11:探索性因素分析模型的路径图。 280 | 281 | 282 | 283 | 284 | 285 | ### 16.4.3 确定因子的数量 286 | 287 | 应用探索性因子分析的主要挑战之一是确定因子的数量。一种常见的方法是在改变因子数量的同时检查模型的拟合度,然后选择给出最佳拟合度的模型。这不是万无一失的,有多种方法可以量化模型的拟合度,有时会给出不同的答案。 288 | 289 | 有人可能会认为,我们可以简单地看看模型的拟合程度,然后挑选出最拟合的因子数量,但这是行不通的,因为更复杂的模型总是会更好地拟合数据(正如我们在前面关于过拟合的讨论中所看到的)。出于这个原因,我们需要使用一个标准来量化模型的拟合程度,它对模型中的参数数量进行惩罚。出于这个例子的目的,我们将选择一种用于量化模型拟合的常用方法,它被称为*样本大小调整贝叶斯信息标准*(或 *SABIC* )。这种方法量化了模型与数据的拟合程度,同时还考虑了模型中的参数数量(在这种情况下与因子数量相关)以及样本大小。虽然 SABIC 的绝对值是不可解释的,但当使用相同的数据和相同类型的模型时,我们可以使用 SABIC 来比较模型,以确定哪个模型最适合该数据。关于 SABIC 和类似的其他指标(被称为*信息标准*)需要知道的一件重要事情是,较低的值代表模型更好的拟合,因此在这种情况下,我们希望找到具有最低 SABIC 的因子的数量。在图 [16.12](#fig:sabicPlot) 中,我们看到具有最低 SABIC 的模型有三个因子,这表明这种方法能够准确地确定用于生成数据的因子的数量。 290 | 291 | ![Plot of SABIC for varying numbers of factors.](img/file98.png) 292 | 293 | 图 16.12:不同因素的 SABIC 图。 294 | 295 | 现在,让我们看看当我们将该模型应用于来自 Eisenberg 等人的数据集的真实数据时会发生什么,该数据集包含在上述示例中模拟的所有八个变量的测量值。对于这些真实数据,具有三个因素的模型也具有最低的 SABIC。 296 | 297 | ![Path diagram for the three-factor model on the Eisenberg et al. data.](img/file99.png) 298 | 299 | 图 16.13:艾森伯格等人数据的三因素模型的路径图。 300 | 301 | 绘制路径图(图 [16.13](#fig:faDiagramSro) )我们看到,真实数据展示了一个与模拟数据非常相似的因子结构。这并不奇怪,因为模拟数据是基于对这些不同任务的了解而生成的,但令人欣慰的是,人类行为足够系统化,我们可以可靠地识别这些类型的关系。主要区别在于工作记忆因子(MR3)和流畅推理因子(MR1)之间的相关性甚至比模拟数据中的更高。这一结果在科学上是有用的,因为它向我们表明,虽然工作记忆和流畅推理密切相关,但将它们分开建模是有用的。 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | ## 16.5 学习目标 310 | 311 | 阅读完本章后,您应该能够: 312 | 313 | * 描述监督学习和非监督学习的区别。 314 | * 采用包括热力图在内的可视化技术来可视化多元数据的结构。 315 | * 理解聚类的概念以及如何用它来识别数据中的结构。 316 | * 理解降维的概念。 317 | * 描述如何使用主成分分析和因子分析进行降维。 318 | 319 | 320 | 321 | 322 | 323 | ## 16.6 建议读物 324 | 325 | * 托马斯·威肯斯的《多元统计的几何学》 326 | * 伊凡·萨沃夫所著的《线性代数指南》 327 | 328 | -------------------------------------------------------------------------------- /docs/17.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # 17 实用统计建模 4 | 5 | 在这一章中,让我们将所学的知识运用到一个实际的例子中。2007 年,斯坦福大学的克里斯托弗·加德纳 (Christopher Gardner) 及其同事在 * 美国医学协会杂志 * 上发表了一项研究,题为“Atkins, Zone, Ornish, LEARN四种饮食对超重绝经前女性体重变化和相关风险因素的比较—— A TO Z 减肥研究:随机试验”[@gard:kiaz:alha:2007]。 我们将使用这项研究来展示一个端到端的数据分析过程。 6 | 7 | 8 | ## 17.1 统计建模的过程 9 | 10 | 当我们想要使用我们的统计模型来检验一个科学假设时,我们通常会经历以下步骤: 11 | 12 | 1. 明确问题 13 | 2. 识别或收集适当的数据 14 | 3. 为分析工作准备相应的数据 15 | 4. 确定合适的模型 16 | 5. 使模型符合数据 17 | 6. 惩罚模型以确保它拟合数据 18 | 7. 测试假设并量化影响大小 19 | 20 | 21 | 22 | ### 17.1.1 1:明确问题 23 | 24 | 根据作者的说法,他们研究的目标是: 25 | 26 | > 比较代表4种从低到高碳水化合物摄入对减肥和相关代谢变量的影响。 27 | 28 | 29 | 30 | 31 | 32 | ### 17.1.2 2:识别或收集适当的数据 33 | 34 | 为了回答他们的问题,研究人员将311名超重/肥胖女性随机分配到四种不同饮食中的一种(Atkins、Zone、Ornish、LEARN),并随着时间的推移测量她们的体重和许多其他健康指标。作者记录了大量的变量,但对于感兴趣的主要问题,让我们专注于一个变量:身体质量指数(体脂比)。此外,由于我们的目标是测量身体质量指数的持久变化,我们将只关注饮食开始后 12 个月的测量。 35 | 36 | 37 | 38 | 39 | 40 | ### 17.1.3 3:准备用于分析的数据 41 | 42 | ![Box plots for each condition, with the 50th percentile (i.e the median) shown as a black line for each group.](img/file100.png) 43 | 44 | 图 17.1:每种情况下的箱线图,第 50 个百分位数(即中位数)显示为每组的黑线。 45 | 46 | 从A到Z研究的实际数据是不公开的,所以我们将使用他们论文报告中的汇总数据来模拟一些合成数据,这些数据与他们研究中的数据差不多,每组的均值和标准差都相同。一旦我们有了数据,我们可以将它们可视化,以确保没有异常值。箱线图有助于观察分布的形状,如图 [17.1](#fig:AtoZBMIChangeDensity) 所示。这些数据看起来相当合理——在每个组中有几个异常值(由方框图外的点表示),但对于其他组来说,异常值并不多。我们还可以看到,这些分布的方差似乎有点不同,Atkins比其他组显示出更大的可变性。这意味着任何假设组间方差相等的分析都可能是不合适的。幸运的是,我们计划使用的方差分析模型对此相当稳健。 47 | 48 | 49 | 50 | 51 | 52 | ### 17.1.4 4。确定合适的模型 53 | 54 | 为了选择合适的统计模型,我们需要问几个问题。 55 | 56 | * 什么样的因变量? 57 | * 身体质量指数:连续,大致正态分布 58 | * 我们在比较什么? 59 | * 四个饮食组的平均身体质量指数 60 | * 方差分析是合适的 61 | * 观察是独立的吗? 62 | * 随机分配应确保独立性假设是适当的 63 | * 差异分数的使用(在这种情况下是开始体重和 12 个月后体重之间的差异)有些争议,特别是当各组之间的起点不同时。在这种情况下,各组之间的起始权重非常相似,因此我们将使用差异分数,但一般来说,在将这种模型应用于实际数据之前,人们会希望咨询统计学家。 64 | 65 | 66 | 67 | 68 | 69 | ### 17.1.5 5。使模型符合数据 70 | 71 | 让我们对身体质量指数变化进行方差分析,以比较这四种饮食。大多数统计软件会自动将一个名义变量转换成一组虚拟变量。指定统计模型的一种常见方式是使用*公式符号*,其中使用以下形式的公式指定模型: 72 | $$ 73 | \text{dependent variable} \sim \text{independent variables} 74 | $$ 75 | 76 | 在这种情况下,我们希望将身体质量指数的变化(存储在名为 *BMIChange12Months* 的变量中)视为饮食(存储在名为diet 的变量中)的函数,因此我们使用如下公式: 77 | 78 | $$ 79 | BMIChange12Months \sim diet 80 | $$ 81 | 82 | 大多数统计软件(包括 R)会在模型包含一个名义变量时自动创建一组哑变量(比如 *diet* 变量,包含每个人接受的饮食名称)。以下是该模型与我们的数据相吻合的结果: 83 | 84 | ``` 85 | ## 86 | ## Call: 87 | ## lm(formula = BMIChange12Months ~ diet, data = dietDf) 88 | ## 89 | ## Residuals: 90 | ## Min 1Q Median 3Q Max 91 | ## -8.14 -1.37 0.07 1.50 6.33 92 | ## 93 | ## Coefficients: 94 | ## Estimate Std. Error t value Pr(>|t|) 95 | ## (Intercept) -1.622 0.251 -6.47 3.8e-10 *** 96 | ## dietLEARN 0.772 0.352 2.19 0.0292 * 97 | ## dietOrnish 0.932 0.356 2.62 0.0092 ** 98 | ## dietZone 1.050 0.352 2.98 0.0031 ** 99 | ## --- 100 | ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 101 | ## 102 | ## Residual standard error: 2.2 on 307 degrees of freedom 103 | ## Multiple R-squared: 0.0338, Adjusted R-squared: 0.0243 104 | ## F-statistic: 3.58 on 3 and 307 DF, p-value: 0.0143 105 | ``` 106 | 107 | 请注意,软件自动生成了与四种饮食中的三种相对应的虚拟变量,使得Atkins饮食没有虚拟变量。这意味着截距代表阿特金斯饮食组的平均值,其他三个变量模拟了每种饮食的平均值与阿特金斯饮食的平均值之间的差异。选择 Atkins 作为未建模的基线变量仅仅是因为它在字母顺序中是第一个。 108 | 109 | 110 | 111 | 112 | 113 | ### 17.1.6 6。惩罚模型以确保它拟合数据 114 | 115 | 我们要做的第一件事是评估这个模型,以确保它是合适的。我们可以做的一件事是查看模型的残差。在图 [17.2](#fig:residualPlot) 中,我们绘制了按饮食分组的每个人的残差。不同条件下的残差分布没有明显的差异,我们可以继续分析。 116 | 117 | ![Distribution of residuals for for each condition](img/file101.png) 118 | 119 | 图 17.2:每种条件下的残差分布 120 | 121 | 我们应用于线性模型的统计检验的另一个重要假设是模型的残差是正态分布的。线性模型要求*数据*呈正态分布,这是一种常见的误解,但事实并非如此;正确统计的唯一要求是残差呈正态分布。图 [17.3](#fig:diagnosticQQPlot) 的右侧面板显示了 Q-Q(分位数-分位数)图,该图根据残差在正态分布中的分位数,绘制了残差与其期望值的关系。如果残差呈正态分布,那么数据点应该沿着虚线分布,在这种情况下,它看起来很好,除了在底部很明显的几个异常值,因为该模型对违反正态分布的情况也相对稳健,这些异常值相当小,我们将继续使用结果。 122 | 123 | ![Q-Q plot of actual residual values against theoretical residual values](img/file102.png) 124 | 125 | 图 17.3:实际残差值与理论残差值的 Q-Q 图 126 | 127 | 128 | 129 | 130 | 131 | ### 17.1.7 7。测试假设并量化影响大小 132 | 133 | 首先,让我们回顾一下方差分析的结果汇总,如上面的步骤 5 所示。显著性 f 检验表明饮食之间存在显著差异,但我们也应该注意到该模型实际上并没有解释数据中的太多差异;R 平方值仅为 0.03,表明该模型仅解释了体重减轻差异的百分之几。因此,我们不想过度解读这个结果。 134 | 135 | 综合 F 检验的显著结果也没有告诉我们哪种饮食不同于其他饮食。通过比较不同条件下的平均值,我们可以发现更多信息。因为我们要进行几次比较,所以需要对这些比较进行校正,这需要使用一种称为 Tukey 方法的程序来完成,该方法由我们的统计软件实现: 136 | 137 | ``` 138 | ## diet emmean SE df lower.CL upper.CL .group 139 | ## Atkins -1.62 0.251 307 -2.11 -1.13 a 140 | ## LEARN -0.85 0.247 307 -1.34 -0.36 ab 141 | ## Ornish -0.69 0.252 307 -1.19 -0.19 b 142 | ## Zone -0.57 0.247 307 -1.06 -0.08 b 143 | ## 144 | ## Confidence level used: 0.95 145 | ## P value adjustment: tukey method for comparing a family of 4 estimates 146 | ## significance level used: alpha = 0.05 147 | ## NOTE: Compact letter displays can be misleading 148 | ## because they show NON-findings rather than findings. 149 | ## Consider using 'pairs()', 'pwpp()', or 'pwpm()' instead. 150 | ``` 151 | 最右边一栏中的字母显示了哪些组彼此不同,使用的方法是根据正在进行的比较次数进行调整;共享一个字母的条件彼此之间没有显著差异。这表明Atkins饮食法和LEARN饮食法彼此没有区别(因为它们共享字母 a),LEARN饮食法、Ornish饮食法和Zone饮食法彼此没有区别(因为它们共享字母 b),但是Atkins饮食法不同于Ornish饮食法和Zone饮食法(因为它们没有共享字母)。 152 | 153 | 154 | 155 | 156 | 157 | ### 17.1.8 可能的混杂因素是什么? 158 | 159 | 如果我们更仔细地看看加德纳的论文,我们会发现他们还报告了每组中有多少人被诊断患有*代谢综合征*的统计数据,这是一种以高血压、高血糖、腰部脂肪过多和胆固醇水平异常为特征的综合征,与心血管问题的风险增加有关。加德纳论文的数据在表 [17.1](#tab:metsymData) 中列出。 160 | 161 | Table 17.1: Presence of metabolic syndrome in each group in the AtoZ study. 162 | 163 | | 饮食类型 | 普通 | 代谢综合征 | 164 | | --- | --- | --- | 165 | | Atkins | Seventy-seven | Zero point two nine | 166 | | LEARN | Seventy-nine | Zero point two five | 167 | | Ornish | Seventy-six | Zero point three eight | 168 | | Zone | Seventy-nine | Zero point three four | 169 | 170 | 从数据来看,似乎各组之间的比率略有不同,在 Ornish 和 Zone 饮食中有更多的代谢综合征病例——这正是结果较差的饮食。假设我们对测试各组之间代谢综合征的发生率是否有显著差异感兴趣,因为这可能会使我们担心这些差异可能会影响饮食结果的结果。 171 | 172 | 173 | 174 | #### 17.1.8.1 确定合适的模型 175 | 176 | * 什么样的因变量? 177 | * 比例 178 | * 我们在比较什么? 179 | * 四个饮食组中患代谢综合征的比例 180 | * 拟合优度的卡方检验适用于无差异的零假设 181 | 182 | 让我们首先使用统计软件中卡方检验函数来计算统计数据: 183 | 184 | ``` 185 | ## 186 | ## Pearson's Chi-squared test 187 | ## 188 | ## data: contTable 189 | ## X-squared = 4, df = 3, p-value = 0.3 190 | ``` 191 | 192 | 该测试表明,平均值之间没有显著差异。然而,它并没有告诉我们有多确定没有差别;请记住,在 NHST 理论下,我们总是在假设零为真的情况下开展工作,除非数据向我们展示了足够的证据,让我们拒绝零假设。 193 | 194 | 如果我们想量化支持或反对零的证据呢?我们可以用贝叶斯因子来做这件事。 195 | 196 | ``` 197 | ## Bayes factor analysis 198 | ## -------------- 199 | ## [1] Non-indep. (a=1) : 0.058 ±0% 200 | ## 201 | ## Against denominator: 202 | ## Null, independence, a = 1 203 | ## --- 204 | ## Bayes factor type: BFcontingencyTable, independent multinomial 205 | ``` 206 | 207 | 这向我们表明,替代假设比零假设的可能性高 0.058 倍,这意味着在给定这些数据的情况下,零假设比替代假设的可能性高 1/0.058 ~ 17 倍。这是相当有力的,如果不是完全压倒性的,支持零假设的证据。 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | ## 17.2 求助 218 | 219 | 每当分析真实数据时,与训练有素的统计学家一起检查你的分析计划是有用的,因为真实数据中可能出现许多潜在的问题。事实上,在你开始这个项目之前,最好和统计学家谈谈,因为他们关于研究的设计或实施的建议可以让你在今后省去很多麻烦。大多数大学都有统计咨询办公室,为大学社团成员提供免费帮助。理解这本书的内容与某些时候需要他们的帮助,但它会帮助你与他们进行更明智的对话,并更好地理解他们提供的建议。 220 | 221 | 222 | 223 | -------------------------------------------------------------------------------- /docs/18.md: -------------------------------------------------------------------------------- 1 | # 18 进行可重复的研究 2 | 3 | 大多数人认为科学是解决现实问题的有效方法。当医生给我们制定一个治疗方案时,我们相信它已经被研究证明是有效的,我们也同样相信我们乘坐的飞机不会从天上掉下来。然而,自 2005 年以来,越来越多的人担心,科学或许并不总是像我们长期以来预期的那样有效。在这一章中,我们将讨论这些关于科学研究可再现性的问题,并阐述确保我们的统计结果尽可能可再现的步骤。 4 | 5 | 6 | 7 | ## 我们认为科学应该如何运作 8 | 9 | 假设我们目前在研究一个关于儿童如何选择吃什么的项目。这是知名饮食研究者布莱恩·万辛克及其同事在 2012 年的一项研究中提出的问题。标准的(我们将看到,有些理想化的)观点是这样的: 10 | 11 | * 从一个假设开始 12 | * 用受欢迎的人物做品牌应该会让孩子们更频繁地选择“健康”食品 13 | * 收集一些数据 14 | * 让孩子们在贴有 Elmo 品牌标签或对照标签的饼干和苹果之间进行选择,并记录他们的选择 15 | * 做统计来检验零假设 16 | * “预先计划的比较显示,Elmo 品牌的苹果与儿童选择苹果而不是饼干的比例增加有关,从 20.7%增加到 33.8%($\chi^2$=5.158; P=.02) 17 | * 根据数据推出结论 18 | * “这项研究表明,使用品牌或明星代言的食品对健康食品的益处可能大于对泛滥的、高度加工的食品的益处。就像有吸引力的名字可以增加学校餐厅健康食品的选择一样,品牌和卡通人物也可以对幼儿产生同样的效果。 ( [万辛克刚和佩恩 2012](ch020.xhtml#ref-wans:just:payn:2012) ) 19 | 20 | 21 | 22 | 23 | 24 | ## 科学(有时)实际上是如何运作的 25 | 26 | 布莱恩·万辛克因他的《无意识饮食》一书而闻名,他在公司演讲的费用一度高达数万美元。2017 年,一组研究人员开始仔细审查他发表的一些研究,从一组关于人们在自助餐吃了多少披萨的论文开始。研究人员要求 Wansink 分享研究数据,但他拒绝了,因此他们深入研究了他发表的论文,并在论文中发现了大量的不一致和统计问题。围绕这一分析的公开报道导致许多其他人挖掘 Wansink 的过去,包括获得 Wansink 和他的合作者之间的电子邮件。正如斯蒂芬妮·李在 Buzzfeed 上报道的那样,这些电子邮件显示了 Wansink 的实际研究实践离理想的模型有多远: 27 | 28 | > …早在 2008 年 9 月,当佩恩在收集数据后查看时,他没有发现苹果和埃尔默之间有强有力的联系——至少目前没有。…“我已经将儿童研究的一些初步结果附在你的报告中,”佩恩给他的合作者写道。“不要绝望。看起来水果上的贴纸可能会有用(更神奇一点)。”… Wansink 也承认这篇论文很薄弱,因为他正准备向期刊投稿。p 值为 0.06,略差于 0.05 的黄金标准临界值。正如他在 2012 年 1 月 7 日的电子邮件中所说,这是一个“症结”。…“在我看来应该更低,”他写道,并附上了一份草稿。“你要不要看一看,看看你有什么想法。如果你能得到数据,而且它需要一些调整,那么最好能得到一个低于 0.05 的值。”…2012 年晚些时候,这项研究发表在著名的 JAMA Pediatrics 杂志上,p 值为 0.06。但在 2017 年 9 月,它被收回,并被一个列出 p 值为 0.02 的版本所取代。一个月后,它又因为一个完全不同的原因被收回:万辛克承认,该实验并没有像他最初声称的那样在 8 至 11 岁的儿童身上进行,而是在学龄前儿童身上进行。 29 | 30 | 万辛克的这种行为被石锤了;他的 15 项研究被撤回,2018 年,他辞去了康奈尔大学的教职。 31 | 32 | 33 | 34 | 35 | 36 | ## 18.3 科学中的再现性危机 37 | 38 | 虽然我们认为 Wansink 案例中的欺诈行为相对罕见,但越来越清楚的是,重复性问题在科学界比以前想象的要普遍得多。这在 2015 年变得尤为明显,当时一大群研究人员在杂志 *Science* 上发表了一项研究,题为“估计心理科学的可重复性” ( [开放科学合作 2015](ch020.xhtml#ref-open:2015) ) 。在这篇论文中,研究人员选取了 100 项已发表的心理学研究,并试图重现论文中最初报道的结果。他们的研究结果令人震惊:尽管 97%的原始论文报告了具有统计学意义的发现,但在重复研究中,只有 37%的效果具有统计学意义。尽管心理学中的这些问题受到了极大的关注,但它们似乎存在于几乎每个科学领域,从癌症生物学 ( [Errington 等人 2014](ch020.xhtml#ref-erri:iorn:gunn:2014) ) 和化学 ( [Baker 2017](ch020.xhtml#ref-bake:2017) ) 到经济学 ( [Christensen 和 Miguel 2016](19.html#ref-NBERw22989) ) 和社会科学 ( [Camerer 等人 2017)](19.html#ref-Camerer2018EvaluatingTR) 39 | 40 | 2010 年后出现的再现性危机实际上是由约翰·约安尼迪斯预测的,他是一位来自斯坦福的医生,在 2005 年写了一篇题为“为什么大多数发表的研究结果都是假的”的论文。在这篇文章中,约安尼迪斯认为,在现代科学的背景下使用零假设统计测试必然会导致高水平的错误结果。 41 | 42 | 43 | 44 | ### 18.3.1 阳性预测值和统计显著性 45 | Ioannidis 的分析集中在一个被称为*阳性预测值*的概念上,它被定义为正确的阳性结果(通常转化为“具有统计意义的发现”)的比例: 46 | 47 | $$ 48 | PPV = \frac{p(true\ positive\ result)}{p(true\ positive\ result) + p(false\ positive\ result)} 49 | $$ 50 | 假设我们知道我们的假设为真的概率 ($p(hIsTrue)$),那么真阳性结果的概率只是 $p(hIsTrue)$ 乘以研究的统计功效: 51 | 52 | $$ 53 | p(true\ positive\ result) = p(hIsTrue) * (1 - \beta) 54 | $$ 55 | $\beta$ 是假阴性率。假阳性结果的概率由 $p(hIsTrue)$ 和假阳性率 $\alpha$ 决定: 56 | 57 | $$ 58 | p(假\正\结果) = (1 - p(hIsTrue)) * \alpha 59 | $$ 60 | 61 | PPV 则定义为: 62 | 63 | $$ 64 | PPV = \frac{p(hIsTrue) * (1 - \beta)}{p(hIsTrue) * (1 - \beta) + (1 - p(hIsTrue)) * \alpha} 65 | $$ 66 | 67 | 让我们首先举一个例子,假设我们的假设为真的概率很高,比如 0.8 - 尽管请注意,通常我们实际上无法知道这个概率。假设我们使用标准值 $\alpha=0.05$ 和 $\beta=0.2$ 进行研究。我们可以将 PPV 计算为: 68 | 69 | $$ 70 | PPV = \frac{0.8 * (1 - 0.2)}{0.8 * (1 - 0.2) + (1 - 0.8) * 0.05} = 0.98 71 | $$ 72 | 这意味着,如果我们在假设可能为真且功效很高的研究中发现阳性结果,那么其为真的可能性就很高。但是请注意,假设具有如此高可能性为真的研究领域可能不是一个非常有趣的研究领域;当它告诉我们一些意想不到的事情时,研究是最重要的! 73 | 74 | 让我们对 $p(hIsTrue)=0.1$ 的字段进行相同的分析——也就是说,大多数被测试的假设都是错误的。在这种情况下,PPV 是: 75 | 76 | $$ 77 | PPV = \frac{0.1 * (1 - 0.2)}{0.1 * (1 - 0.2) + (1 - 0.1) * 0.05} = 0.307 78 | $$ 79 | 80 | 我们可以对此进行模拟,以显示 PPV 如何与统计功效相关,作为假设为真的先验概率的函数(见图 [18.1](#fig:PPVsim) ) 81 | 82 | ![A simulation of posterior predictive value as a function of statistical power (plotted on the x axis) and prior probability of the hypothesis being true (plotted as separate lines).](img/file103.png) 83 | 84 | 图 18.1:后验预测值作为统计功效(绘制在 x 轴上)和假设为真的先验概率(绘制为单独的线条)的函数的模拟。 85 | 86 | 不幸的是,在许多科学领域,统计能力仍然很低 ( [Smaldino 和 McElreath 2016](ch020.xhtml#ref-smal:mcel:2016) ) ,这表明许多已发表的研究结果是虚假的。 87 | 88 | Jonathan Schoenfeld 和 John Ioannidis 在一篇题为“我们吃的所有东西都与癌症有关吗?一份系统的食谱评论" ( [舍恩菲尔德和约安尼迪斯 2013](ch020.xhtml#ref-scho:ioan:2013) ) 。他们检查了大量评估不同食物和癌症风险之间关系的论文,发现 80%的成分与增加或降低癌症风险有关。在大多数情况下,统计证据是薄弱的,当跨研究的结果相结合,结果是无效的。 89 | 90 | 91 | 92 | 93 | 94 | ### 18.3.2 胜利者的诅咒 95 | 96 | 当统计能力较低时,还会出现另一种错误:我们对效应大小的估计会被夸大。这种现象通常被称为“胜利者的诅咒”,它来自经济学,指的是这样一个事实,即对于某些类型的评估(价值对每个人来说都是一样的,就像一罐 25 美分的硬币,出价是私人的),赢家肯定会支付高于商品价值的价格。在科学中,胜利者的诅咒指的是这样一个事实,即从重大结果(即赢家)估计的效应大小几乎总是对真实效应大小的高估。 97 | 98 | 我们可以对此进行模拟,以了解显著结果的估计效应大小与实际潜在效应大小之间的关系。让我们生成真实效应大小为d=0.2的数据,并估计那些检测到显著效应的结果的效应大小。图 [18.2](#fig:CurseSim) 的左图显示,当功率较低时,与实际效果大小相比,显著结果的估计效果大小可能被大大夸大。 99 | 100 | ![Left: A simulation of the winner's curse as a function of statistical power (x axis). The solid line shows the estimated effect size, and the dotted line shows the actual effect size. Right: A histogram showing effect size estimates for a number of samples from a dataset, with significant results shown in blue and non-significant results in red. ](img/file104.png) 101 | 102 | 图 18.2:左图:作为统计能力(x 轴)函数的赢家诅咒的模拟。实线表示估计的效果大小,虚线表示实际的效果大小。右图:一个直方图,显示了数据集内多个样本的效应大小估计值,显著结果显示为蓝色,不显著结果显示为红色。 103 | 104 | 我们可以通过单次模拟来了解为什么会出现这种情况。在图 [18.2](#fig:CurseSim) 的右侧面板中,您可以看到 1000 个样本的估计效应大小的直方图,根据测试是否具有统计显著性来区分。从图中可以清楚地看出,如果我们只根据显著的结果来估计效果的大小,那么我们的估计就会被夸大;只有当大多数结果是显著的(即功率高,效应相对大)时,我们的估计才会接近实际的效应大小。 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | ## 18.4 可疑的研究实践 113 | 114 | 一本由美国心理学协会 ( [Darley、Zanna 和 Roediger 2004](ch020.xhtml#ref-darl:zann:roed:2004) ) 出版的名为《完整的学术:职业指南》的畅销书,旨在为有抱负的研究人员规划自己的职业生涯提供指导。在著名社会心理学家 Daryl Bem 题为“撰写实证期刊文章”的一章中,Bem 提供了一些关于如何撰写研究论文的建议。不幸的是,他建议的实践存在很大问题,并被称为*有问题的研究实践* (QRPs)。 115 | 116 | > 你应该写哪篇文章?您可以写两篇文章: 117 | > (1)您在设计研究时计划写的文章 118 | > (2)您看到结果后最有意义的文章。 119 | > 它们很少相同,正确答案是(2)。 120 | 121 | 贝姆在这里建议的被称为*倾听*(在结果已知后的假设) ( [克尔 1998](ch020.xhtml#ref-kerr:1998) ) 。这可能看起来无伤大雅,但有问题,因为它允许研究人员将事后结论(我们应该持保留态度)重新框定为先验预测(我们会对此更有信心)。从本质上讲,它允许研究人员根据事实改写他们的理论,而不是使用理论做出预测,然后进行测试——类似于移动球门柱,使球到达任何地方。因此,消除不正确的想法变得非常困难,因为目标总是可以移动以匹配数据。贝姆继续说道: 122 | 123 | > **分析数据**从各个角度检查它们。 分别分析性别。 组成新的综合特征。 如果数据表明了一个新假设,请尝试在数据的其他地方找到进一步的证据。 如果您看到有趣模式的模糊痕迹,请尝试重新组织数据以使它们更加醒目。 如果有你不喜欢的参与者,或者给你异常结果的试验、观察者或面试官,请(暂时)放弃。 去放飞你的思维,寻找一些有趣的东西——任何东西。 不要被职业道德所约束。 124 | Bem 在这里建议的被称为 *p-hacking* ,指的是尝试许多不同的分析,直到发现一个重要的结果。贝姆是正确的,如果一个人要对自己的数据分析工作做一次报告,那么这种方法就不是“不讲武德的”。然而,很少看到论文讨论对数据集进行的所有分析;更确切地说,论文经常只呈现*起作用*的分析——这通常意味着他们发现了一个具有统计学意义的结果。有许多不同的方法可以用来破解: 125 | 126 | * 每次受试者后分析数据,一旦 p < 0.05,停止收集数据 127 | * 分析许多不同的变量,但只报告那些 p < 0.05 的变量 128 | * 收集许多不同的实验条件,但只报告那些 p<0.05 129 | * 排除参与者以获得 p<0.05 130 | * 转换数据以获得 p<0.05 131 | 132 | 由 Simmons、Nelson 和 Simonsohn ( [2011](ch020.xhtml#ref-simm:nels:simo:2011) ) 撰写的一篇著名论文显示,使用这类 p-hacking 策略会大大增加实际的假阳性率,导致大量的假阳性结果。 133 | 134 | 135 | 136 | ### 18.4.1 ESP 还是 QRP? 137 | 138 | 2011 年,同样是达里尔·贝姆发表了一篇文章 ( [贝姆 2011](ch020.xhtml#ref-bem:2011) ) ,声称发现了超感知觉的科学证据。该文章指出: 139 | 140 | > 这篇文章报道了 9 个实验,涉及 1,000 多名参与者,通过“时间反转”公认的心理效应来测试追溯影响,以便在假定的因果刺激事件发生之前获得个体的反应。在全部的9个实验中,psi 性能的平均效应大小(d)为 0.22,除一个实验外,所有实验都产生了具有统计学意义的结果。 141 | 142 | 随着研究人员开始检查 Bem 的文章,很明显他已经参与了他在上面讨论的章节中推荐的所有快速反应程序。正如 Tal Yarkoni 在一篇研究文章的博客文章中指出的: 143 | 144 | * 不同研究的样本量不同 145 | * 不同的研究似乎被混为一谈或割裂开来 146 | * 这些研究允许许多不同的假设,不清楚哪些是事先计划好的 147 | * 即使不清楚是否有方向预测,Bem 也使用了单尾检验(所以 alpha 实际上是 0.1) 148 | * 大多数 p 值非常接近 0.05 149 | * 目前还不清楚有多少其他研究已经进行但没有报道 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | ## 18.5 进行可重复研究 158 | 159 | 在再现性危机出现后的几年里,出现了一个强大的动力来开发工具,以帮助保护科学研究的再现性。 160 | 161 | 162 | 163 | ### 18.5.1 预注册 164 | 165 | 获得最大牵引力的一个想法是*预注册*,其中一个人将一项研究的详细描述(包括所有数据分析)提交给一个可信的存储库(如[开放科学框架](http://osf.io)或【AsPredicted.org】T4)。通过在分析数据之前详细说明自己的计划,预注册提供了更大的信念,即分析不会受到 p-hacking 或其他有问题的研究实践的影响。 166 | 167 | 预注册在医学临床试验中的作用是惊人的。2000 年,美国国家心肺血液研究所(NHLBI)开始要求所有的临床试验在 ClinicalTrials.gov 使用该系统进行预注册。这为观察研究预注册的效果提供了一个自然的实验。当卡普兰和欧文( [2015](ch020.xhtml#ref-kapl:irvi:2015) ) 随着时间的推移检查临床试验结果时,他们发现 2000 年后临床试验的阳性结果数量与之前相比大大减少。虽然有许多可能的原因,但似乎有可能在研究注册之前,研究人员能够改变他们的方法或假设,以便找到阳性结果,这在要求注册后变得更加困难。 168 | 169 | 170 | 171 | 172 | 173 | ### 18.5.2 可重复的实践 174 | 175 | 由 Simmons、Nelson 和 Simonsohn ( [2011](ch020.xhtml#ref-simm:nels:simo:2011) ) 撰写的论文列出了一套使研究更具可重复性的建议实践,所有这些都应该成为研究人员的标准: 176 | 177 | > 作者必须在数据收集开始前决定终止数据收集的规则,并在文章中报告该规则。 作者必须为每个单元收集至少 20 个观察值,否则提供所收集数据令人信服的证明。 作者必须列出研究中收集的所有变量。 作者必须报告所有的实验条件,包括失败的操作。如果观察被删除,作者还必须报告统计结果。如果分析包含协变量,作者还必须报告统计结果无协变量分析结果。 178 | 179 | 180 | 181 | 182 | 183 | ### 18.5.3 复制 184 | 185 | 科学的标志之一是*复制*的理念——也就是说,其他研究人员应该能够进行相同的研究并获得相同的结果。不幸的是,正如我们在前面讨论的复制项目的结果中看到的,许多发现是不可复制的。确保一个人的研究的可复制性的最好方法是首先自己复制它;对于一些研究来说,这是不可能的,但只要有可能,就应该确保自己的研究成果在新的样本中同样成立。该新样本应该有足够的能量来找到感兴趣的效应大小;在许多情况下,这实际上需要比原来更大的样本。 186 | 187 | 关于复制,记住几件事很重要。首先,如果复制失败,并不一定意味着最初的发现是错误的;请记住,在80%能量的标准水平下,即使真的有影响,结果仍有五分之一的可能不显著。出于这个原因,在我们决定是否相信之前,我们通常希望看到任何重要发现的多次重复。不幸的是,包括心理学在内的许多领域过去都没有遵循这个建议,导致“教科书”上的发现很可能是错误的。关于 Daryl Bem 对 ESP 的研究,一项涉及 7 项研究的大型复制尝试未能复制他的发现 ( [Galak et al. 2012](ch020.xhtml#ref-gala:lebo:nels:2012) ) 。 188 | 189 | 第二,请记住,p 值并没有为我们提供一个发现复制可能性的度量。正如我们之前所讨论的,p 值是在特定的零假设下关于一个人的数据的可能性的陈述;它没有告诉我们任何关于该发现实际上为真的概率(正如我们在贝叶斯分析一章中所学的)。为了知道复制的可能性,我们需要知道发现为真的概率,而这通常我们无法获知。 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | ## 18.6 进行可再现的数据分析 198 | 199 | 到目前为止,我们一直专注于在新实验中复制其他研究人员发现的能力,但可重复性的另一个重要方面是能够复制某人对自己数据的分析,我们称之为*计算可重复性。*这要求研究人员共享他们的数据和分析代码,以便其他研究人员既可以尝试重现结果,也可以对相同的数据测试不同的分析方法。心理学越来越倾向于开放代码和数据共享;例如,期刊*心理科学*现在为共享研究材料、数据和代码的论文提供“徽章”,以及预注册。 200 | 201 | 重现分析的能力是我们强烈提倡使用脚本化分析(例如使用 R 的分析)而不是使用“点击式”软件包的一个原因。这也是我们提倡使用自由和开源软件(如 R)而不是商业软件包的原因,商业软件包需要其他人购买软件才能复制任何分析。 202 | 203 | 有许多方法可以共享代码和数据。共享代码的一种常见方式是通过支持软件版本控制的网站,如Github。小型数据集也可以通过这些相同的网站共享;更大的数据集可以通过数据共享门户共享,如[芝诺多](https://zenodo.org/),或通过特定类型数据的专门门户共享(如[神经影像数据的 OpenNeuro](http://openneuro.org) )。 204 | 205 | 206 | 207 | 208 | 209 | ## 结论:做更好的科学 210 | 211 | 每个科学家都有责任改进他们的研究实践,以增加他们研究的可重复性。重要的是要记住,研究的目标不是找到一个有意义的结果;相反,它是以最真实的方式询问和回答关于自然的问题。我们的大多数假设都是错误的,我们应该坦然接受这一点,这样当我们找到一个正确的假设时,我们会对它的真实性更有信心。 212 | 213 | 214 | 215 | 216 | 217 | ## 18.8 学习目标 218 | 219 | * 描述 P-hacking 的概念及其对科学实践的影响 220 | * 描述阳性预测值的概念及其与统计功效的关系 221 | * 描述预注册的概念以及它如何有助于防范可疑的研究实践 222 | 223 | 224 | 225 | 226 | 227 | ## 18.9 建议读物 228 | 229 | * 《尸僵:草率的科学如何创造无用的疗法,粉碎希望,浪费数十亿》,作者理查德·哈里斯 230 | * [提高你的统计推断](https://www.coursera.org/learn/statistical-inferences) -一个关于如何做更好的统计分析的在线课程,包括本章提出的许多观点。 231 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /docs/img/b1b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/b1b2.png -------------------------------------------------------------------------------- /docs/img/bayes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/bayes.png -------------------------------------------------------------------------------- /docs/img/bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/bf.png -------------------------------------------------------------------------------- /docs/img/bhat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/bhat.png -------------------------------------------------------------------------------- /docs/img/bmi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/bmi.png -------------------------------------------------------------------------------- /docs/img/bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/bw.png -------------------------------------------------------------------------------- /docs/img/chi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/chi.png -------------------------------------------------------------------------------- /docs/img/ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/ci.png -------------------------------------------------------------------------------- /docs/img/cix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/cix.png -------------------------------------------------------------------------------- /docs/img/cov_my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/cov_my.png -------------------------------------------------------------------------------- /docs/img/df.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/df.png -------------------------------------------------------------------------------- /docs/img/dx12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/dx12.png -------------------------------------------------------------------------------- /docs/img/file0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file0.png -------------------------------------------------------------------------------- /docs/img/file1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file1.png -------------------------------------------------------------------------------- /docs/img/file10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file10.png -------------------------------------------------------------------------------- /docs/img/file100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file100.png -------------------------------------------------------------------------------- /docs/img/file101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file101.png -------------------------------------------------------------------------------- /docs/img/file102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file102.png -------------------------------------------------------------------------------- /docs/img/file103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file103.png -------------------------------------------------------------------------------- /docs/img/file104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file104.png -------------------------------------------------------------------------------- /docs/img/file11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file11.png -------------------------------------------------------------------------------- /docs/img/file12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file12.png -------------------------------------------------------------------------------- /docs/img/file13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file13.png -------------------------------------------------------------------------------- /docs/img/file14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file14.png -------------------------------------------------------------------------------- /docs/img/file15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file15.png -------------------------------------------------------------------------------- /docs/img/file16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file16.png -------------------------------------------------------------------------------- /docs/img/file17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file17.png -------------------------------------------------------------------------------- /docs/img/file18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file18.png -------------------------------------------------------------------------------- /docs/img/file19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file19.png -------------------------------------------------------------------------------- /docs/img/file2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file2.jpg -------------------------------------------------------------------------------- /docs/img/file20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file20.png -------------------------------------------------------------------------------- /docs/img/file21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file21.png -------------------------------------------------------------------------------- /docs/img/file22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file22.png -------------------------------------------------------------------------------- /docs/img/file23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file23.png -------------------------------------------------------------------------------- /docs/img/file24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file24.png -------------------------------------------------------------------------------- /docs/img/file25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file25.png -------------------------------------------------------------------------------- /docs/img/file26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file26.png -------------------------------------------------------------------------------- /docs/img/file27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file27.png -------------------------------------------------------------------------------- /docs/img/file28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file28.png -------------------------------------------------------------------------------- /docs/img/file29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file29.png -------------------------------------------------------------------------------- /docs/img/file3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file3.png -------------------------------------------------------------------------------- /docs/img/file30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file30.png -------------------------------------------------------------------------------- /docs/img/file31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file31.png -------------------------------------------------------------------------------- /docs/img/file32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file32.png -------------------------------------------------------------------------------- /docs/img/file33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file33.png -------------------------------------------------------------------------------- /docs/img/file34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file34.png -------------------------------------------------------------------------------- /docs/img/file35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file35.png -------------------------------------------------------------------------------- /docs/img/file36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file36.png -------------------------------------------------------------------------------- /docs/img/file37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file37.png -------------------------------------------------------------------------------- /docs/img/file38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file38.png -------------------------------------------------------------------------------- /docs/img/file39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file39.png -------------------------------------------------------------------------------- /docs/img/file4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file4.png -------------------------------------------------------------------------------- /docs/img/file40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file40.png -------------------------------------------------------------------------------- /docs/img/file41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file41.png -------------------------------------------------------------------------------- /docs/img/file42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file42.png -------------------------------------------------------------------------------- /docs/img/file43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file43.png -------------------------------------------------------------------------------- /docs/img/file44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file44.png -------------------------------------------------------------------------------- /docs/img/file45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file45.png -------------------------------------------------------------------------------- /docs/img/file46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file46.png -------------------------------------------------------------------------------- /docs/img/file47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file47.png -------------------------------------------------------------------------------- /docs/img/file48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file48.png -------------------------------------------------------------------------------- /docs/img/file49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file49.png -------------------------------------------------------------------------------- /docs/img/file5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file5.png -------------------------------------------------------------------------------- /docs/img/file50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file50.png -------------------------------------------------------------------------------- /docs/img/file51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file51.png -------------------------------------------------------------------------------- /docs/img/file52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file52.png -------------------------------------------------------------------------------- /docs/img/file53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file53.png -------------------------------------------------------------------------------- /docs/img/file54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file54.png -------------------------------------------------------------------------------- /docs/img/file55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file55.png -------------------------------------------------------------------------------- /docs/img/file56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file56.png -------------------------------------------------------------------------------- /docs/img/file57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file57.png -------------------------------------------------------------------------------- /docs/img/file58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file58.png -------------------------------------------------------------------------------- /docs/img/file59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file59.png -------------------------------------------------------------------------------- /docs/img/file6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file6.png -------------------------------------------------------------------------------- /docs/img/file60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file60.png -------------------------------------------------------------------------------- /docs/img/file61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file61.png -------------------------------------------------------------------------------- /docs/img/file62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file62.png -------------------------------------------------------------------------------- /docs/img/file63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file63.png -------------------------------------------------------------------------------- /docs/img/file64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file64.png -------------------------------------------------------------------------------- /docs/img/file65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file65.png -------------------------------------------------------------------------------- /docs/img/file66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file66.png -------------------------------------------------------------------------------- /docs/img/file67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file67.png -------------------------------------------------------------------------------- /docs/img/file68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file68.png -------------------------------------------------------------------------------- /docs/img/file69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file69.png -------------------------------------------------------------------------------- /docs/img/file7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file7.png -------------------------------------------------------------------------------- /docs/img/file70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file70.png -------------------------------------------------------------------------------- /docs/img/file71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file71.png -------------------------------------------------------------------------------- /docs/img/file72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file72.png -------------------------------------------------------------------------------- /docs/img/file73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file73.png -------------------------------------------------------------------------------- /docs/img/file74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file74.png -------------------------------------------------------------------------------- /docs/img/file75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file75.png -------------------------------------------------------------------------------- /docs/img/file76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file76.png -------------------------------------------------------------------------------- /docs/img/file77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file77.png -------------------------------------------------------------------------------- /docs/img/file78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file78.png -------------------------------------------------------------------------------- /docs/img/file79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file79.png -------------------------------------------------------------------------------- /docs/img/file8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file8.png -------------------------------------------------------------------------------- /docs/img/file80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file80.png -------------------------------------------------------------------------------- /docs/img/file81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file81.png -------------------------------------------------------------------------------- /docs/img/file82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file82.png -------------------------------------------------------------------------------- /docs/img/file83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file83.png -------------------------------------------------------------------------------- /docs/img/file84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file84.png -------------------------------------------------------------------------------- /docs/img/file85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file85.png -------------------------------------------------------------------------------- /docs/img/file86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file86.png -------------------------------------------------------------------------------- /docs/img/file87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file87.png -------------------------------------------------------------------------------- /docs/img/file88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file88.png -------------------------------------------------------------------------------- /docs/img/file89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file89.png -------------------------------------------------------------------------------- /docs/img/file9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file9.jpg -------------------------------------------------------------------------------- /docs/img/file90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file90.png -------------------------------------------------------------------------------- /docs/img/file91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file91.png -------------------------------------------------------------------------------- /docs/img/file92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file92.png -------------------------------------------------------------------------------- /docs/img/file93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file93.png -------------------------------------------------------------------------------- /docs/img/file94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file94.png -------------------------------------------------------------------------------- /docs/img/file95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file95.png -------------------------------------------------------------------------------- /docs/img/file96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file96.png -------------------------------------------------------------------------------- /docs/img/file97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file97.png -------------------------------------------------------------------------------- /docs/img/file98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file98.png -------------------------------------------------------------------------------- /docs/img/file99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/file99.png -------------------------------------------------------------------------------- /docs/img/free.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/free.png -------------------------------------------------------------------------------- /docs/img/gini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/gini.png -------------------------------------------------------------------------------- /docs/img/h0-ha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/h0-ha.png -------------------------------------------------------------------------------- /docs/img/h0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/h0.png -------------------------------------------------------------------------------- /docs/img/h0coin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/h0coin.png -------------------------------------------------------------------------------- /docs/img/h0n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/h0n.png -------------------------------------------------------------------------------- /docs/img/ha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/ha.png -------------------------------------------------------------------------------- /docs/img/hacoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/hacoin.png -------------------------------------------------------------------------------- /docs/img/han.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/han.png -------------------------------------------------------------------------------- /docs/img/linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/linear.png -------------------------------------------------------------------------------- /docs/img/ms1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/ms1.png -------------------------------------------------------------------------------- /docs/img/not-p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/not-p.png -------------------------------------------------------------------------------- /docs/img/odds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/odds.png -------------------------------------------------------------------------------- /docs/img/paradox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/paradox.png -------------------------------------------------------------------------------- /docs/img/pet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/pet.png -------------------------------------------------------------------------------- /docs/img/poly-distribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/poly-distribute.png -------------------------------------------------------------------------------- /docs/img/power.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/power.png -------------------------------------------------------------------------------- /docs/img/r22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/r22.png -------------------------------------------------------------------------------- /docs/img/res1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/res1.png -------------------------------------------------------------------------------- /docs/img/rhat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/rhat.png -------------------------------------------------------------------------------- /docs/img/s2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/s2.png -------------------------------------------------------------------------------- /docs/img/sbw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/sbw.png -------------------------------------------------------------------------------- /docs/img/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/search.png -------------------------------------------------------------------------------- /docs/img/seg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/seg.png -------------------------------------------------------------------------------- /docs/img/ss2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/ss2.png -------------------------------------------------------------------------------- /docs/img/sse1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/sse1.png -------------------------------------------------------------------------------- /docs/img/stand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/stand.png -------------------------------------------------------------------------------- /docs/img/t-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/t-student.png -------------------------------------------------------------------------------- /docs/img/table1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/table1.png -------------------------------------------------------------------------------- /docs/img/tnps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/tnps.png -------------------------------------------------------------------------------- /docs/img/tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/tr.png -------------------------------------------------------------------------------- /docs/img/ufb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apachecn/stats-thinking-21-zh/234cc8a8cfcdfa28a0d24ee51529478146f248df/docs/img/ufb.png -------------------------------------------------------------------------------- /donate.md: -------------------------------------------------------------------------------- 1 | # 捐赠记录 2 | 3 | | 时间 | 收入类型 | 金额(元) | 捐赠者 | 4 | | --- | --- | --- | --- | 5 | | 2022-08-14 | 第15~18章奖励 | 71 | 飞龙 | 6 | | 2022-08-12 | 第10~14章奖励 | 89 | 飞龙 | 7 | | 2022-08-08 | 第7~9章奖励 | 49 | 飞龙 | 8 | | 2022-08-08 | 第5~6章奖励 | 64 | 飞龙 | 9 | | 2022-08-03 | 第2~4章奖励 | 44 | 飞龙 | 10 | | 2022-07-27 | 第0~1章奖励 | 22 | 飞龙 | 11 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
now loading...
21 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /update.sh: -------------------------------------------------------------------------------- 1 | git add -A 2 | git commit -am "$(date "+%Y-%m-%d %H:%M:%S")" 3 | git push --------------------------------------------------------------------------------