探索 R 库:tidydice
介绍
高中时,你可能使用虚拟实验(例如抛硬币、掷骰子或选择一定数量的卡片)学习基础统计学。当你开始从事数据分析工作时,你会经常遇到各种情况,你可能需要回忆起这些实验来帮助你学习各种统计主题,例如概率分布、矩、大数定律等等。如果你是 R 用户,你可以从tidydice库中受益,它可以呈现掷骰子和抛硬币的自动结果。
在本指南中,您将学习执行这些模拟并绘制其二项分布。
基础知识
使用以下命令下载并安装 tidydice 库:
install.packages("tidydice")
如果您的互联网代理不干扰下载该包并且您有系统权限将该包保存在您的驱动器中,您应该会收到以下成功消息以及其他信息:
软件包“tidydice”已成功解压并已检查 MD5 值
接下来,使用给定的代码在当前 R 环境中加载包:
library(tidydice)
注意:您还可以安装并加载 tidyverse 包,它与 tidydice 包配合使用。
模拟与抛硬币相关的实验
tidydice 包提供了flip_coin函数,您可以使用它进行实验。以下代码来自R 文档,演示了flip_coin函数的一些可能变体。
flip_coin(data = NULL, times = 1, rounds = 1, success = c(2),
agg = FALSE, sides = 2, prob = NULL, seed = NULL)
结果不是以正面和反面来表示,而是以1和2来表示。默认情况下,硬币是无偏的,但您可以使用prob参数更改其行为。下面的代码演示了flip_coin函数的一些可能变体。
# 1. Flipping a coin two times
flip_coin(times = 2)
# # A tibble: 2 x 5
# experiment round nr result success
# <int> <int> <int> <int> <lgl>
# 1 1 1 1 FALSE
# 1 1 2 2 TRUE
# 2. Flipping a coin two times for three rounds
flip_coin(times = 2, rounds = 3)
# # A tibble: 6 x 5
# experiment round nr result success
# <int> <int> <int> <int> <lgl>
# 1 1 1 2 TRUE
# 1 1 2 1 FALSE
# 1 2 1 1 FALSE
# 1 2 2 1 FALSE
# 1 3 1 2 TRUE
# 1 3 2 2 TRUE
# 3. Flipping a coin three times by inducing bias
# of 90% to one of the side
s
flip_coin(times = 3, prob = c(0.1, 0.9))
# # A tibble: 3 x 5
# experiment round nr result success
# <int> <int> <int> <int> <lgl>
# 1 1 1 1 FALSE
# 1 1 2 2 TRUE
# 1 1 3 2 TRUE
# 4. Flipping a coin 5 times and reproducing
# the same results with every run
flip_coin(times = 5, seed = 42)
# # A tibble: 5 x 5
# experiment round nr result success
# <int> <int> <int> <int> <lgl>
# 1 1 1 1 FALSE
# 1 1 2 1 FALSE
# 1 1 3 1 FALSE
# 1 1 4 1 FALSE
# 1 1 5 2 TRUE
# 5. Combining experiments of flipping coins
flip_coin(times = 3, seed = 41, agg = T) %>%
flip_coin(times = 2, seed = 42, agg = T)
# # A tibble: 2 x 4
# experiment round times success
# <int> <int> <int> <int>
# 1 1 3 1
# 2 1 2 0
模拟与掷骰子相关的实验
tidydice 包不仅提供结果的文本表示,还提供图形表示,因此在模拟掷骰子实验方面提供了极大的灵活性。以下代码来自R 文档,演示了roll_dice函数的一些可能变体。
roll_dice(data = NULL, times = 1, rounds = 1, success = c(6),
agg = FALSE, sides = 6, prob = NULL, seed = NULL)
此函数的参数与flip_coin函数的参数类似。默认情况下,骰子是公平的,您可以使用prob参数将偏差赋予任何一侧。此外,默认情况下,成功设置为第 6 侧,因此当骰子结果为 6 时,您将收到TRUE。您可以随时更新此信息。
下面基于该函数进行两个实验:
# 1. Rolling a die four times with 50% bias to its third side
# and 10% to the rest of the sides. Also, providing a seed value
# for reproducible results
roll_dice(times = 4, prob = c(0.1, 0.1, 0.5, 0.1, 0.1, 0.1), seed = 100)
# # A tibble: 4 x 5
# experiment round nr result success
# <int> <int> <int> <int> <lgl>
# 1 1 1 3 FALSE
# 1 1 2 3 FALSE
# 1 1 3 6 TRUE
# 1 1 4 3 FALSE
# 2. Rolling a die 10 times and finding how many times
# the second side is rolled by setting the parameter 'success' to 2
roll_dice(times = 10, agg = TRUE, success = c(2), seed = 100)
# # A tibble: 1 x 4
# experiment round times success
# <int> <int> <int> <int>
# 1 1 10 2
到目前为止,您已经学习了如何生成掷骰子的表格结果。您还可以将这些结果作为图表,以使模拟更加赏心悦目:
# 1. Rolling a die 3 times with a seed value
roll_dice(times = 3, seed = 402) %>%
plot_dice()
# 2. Rolling a die 3 times in 3 rounds with a seed value
roll_dice(times = 3, rounds = 3, seed = 402) %>%
plot_dice()
绘制实验的二项分布
您可以使用命令plot_binom绘制实验的二项分布。
抛硬币 100 次的二项分布:
binom_coin(times = 100) %>% plot_binom()
掷骰子 50 次的二项分布:
binom_dice(times = 50) %>% plot_binom()
结论
在本指南中,您学习了如何创建与抛硬币和掷骰子相关的自动模拟(包括创建图表)。您可以将这些模拟与 R 中的其他统计软件包一起使用,或用于修改您的统计概念。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~