{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Simulations and Statistical Inference" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "── Attaching packages ─────────────────────────────────────── tidyverse 1.2.1 ──\n", "✔ ggplot2 2.2.1 ✔ purrr 0.2.5\n", "✔ tibble 1.4.2 ✔ dplyr 0.7.5\n", "✔ tidyr 0.8.1 ✔ stringr 1.3.1\n", "✔ readr 1.1.1 ✔ forcats 0.3.0\n", "── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──\n", "✖ dplyr::filter() masks stats::filter()\n", "✖ dplyr::lag() masks stats::lag()\n" ] } ], "source": [ "library(tidyverse)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "options(repr.plot.width=4, repr.plot.height=3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set random number seed for reproucibility" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "set.seed(42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating numbers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the `c` function" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 5
  8. \n", "\t
  9. 8
  10. \n", "\t
  11. 13
  12. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 5\n", "\\item 8\n", "\\item 13\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 5\n", "5. 8\n", "6. 13\n", "\n", "\n" ], "text/plain": [ "[1] 1 2 3 5 8 13" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c(1,2,3,5,8,13)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the `:` operator" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "\t
  11. 6
  12. \n", "\t
  13. 7
  14. \n", "\t
  15. 8
  16. \n", "\t
  17. 9
  18. \n", "\t
  19. 10
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\item 6\n", "\\item 7\n", "\\item 8\n", "\\item 9\n", "\\item 10\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 4\n", "5. 5\n", "6. 6\n", "7. 7\n", "8. 8\n", "9. 9\n", "10. 10\n", "\n", "\n" ], "text/plain": [ " [1] 1 2 3 4 5 6 7 8 9 10" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "1:10" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 10
  2. \n", "\t
  3. 9
  4. \n", "\t
  5. 8
  6. \n", "\t
  7. 7
  8. \n", "\t
  9. 6
  10. \n", "\t
  11. 5
  12. \n", "\t
  13. 4
  14. \n", "\t
  15. 3
  16. \n", "\t
  17. 2
  18. \n", "\t
  19. 1
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 10\n", "\\item 9\n", "\\item 8\n", "\\item 7\n", "\\item 6\n", "\\item 5\n", "\\item 4\n", "\\item 3\n", "\\item 2\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 10\n", "2. 9\n", "3. 8\n", "4. 7\n", "5. 6\n", "6. 5\n", "7. 4\n", "8. 3\n", "9. 2\n", "10. 1\n", "\n", "\n" ], "text/plain": [ " [1] 10 9 8 7 6 5 4 3 2 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "10:1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the `seq` function" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "\t
  11. 6
  12. \n", "\t
  13. 7
  14. \n", "\t
  15. 8
  16. \n", "\t
  17. 9
  18. \n", "\t
  19. 10
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\item 6\n", "\\item 7\n", "\\item 8\n", "\\item 9\n", "\\item 10\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 4\n", "5. 5\n", "6. 6\n", "7. 7\n", "8. 8\n", "9. 9\n", "10. 10\n", "\n", "\n" ], "text/plain": [ " [1] 1 2 3 4 5 6 7 8 9 10" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "seq(1, 10)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 3
  4. \n", "\t
  5. 5
  6. \n", "\t
  7. 7
  8. \n", "\t
  9. 9
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 3\n", "\\item 5\n", "\\item 7\n", "\\item 9\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 3\n", "3. 5\n", "4. 7\n", "5. 9\n", "\n", "\n" ], "text/plain": [ "[1] 1 3 5 7 9" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "seq(1, 10, 2)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 10
  2. \n", "\t
  3. 9
  4. \n", "\t
  5. 8
  6. \n", "\t
  7. 7
  8. \n", "\t
  9. 6
  10. \n", "\t
  11. 5
  12. \n", "\t
  13. 4
  14. \n", "\t
  15. 3
  16. \n", "\t
  17. 2
  18. \n", "\t
  19. 1
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 10\n", "\\item 9\n", "\\item 8\n", "\\item 7\n", "\\item 6\n", "\\item 5\n", "\\item 4\n", "\\item 3\n", "\\item 2\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 10\n", "2. 9\n", "3. 8\n", "4. 7\n", "5. 6\n", "6. 5\n", "7. 4\n", "8. 3\n", "9. 2\n", "10. 1\n", "\n", "\n" ], "text/plain": [ " [1] 10 9 8 7 6 5 4 3 2 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "seq(10, 1, -1)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 0.1
  4. \n", "\t
  5. 0.2
  6. \n", "\t
  7. 0.3
  8. \n", "\t
  9. 0.4
  10. \n", "\t
  11. 0.5
  12. \n", "\t
  13. 0.6
  14. \n", "\t
  15. 0.7
  16. \n", "\t
  17. 0.8
  18. \n", "\t
  19. 0.9
  20. \n", "\t
  21. 1
  22. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 0.1\n", "\\item 0.2\n", "\\item 0.3\n", "\\item 0.4\n", "\\item 0.5\n", "\\item 0.6\n", "\\item 0.7\n", "\\item 0.8\n", "\\item 0.9\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 0.1\n", "3. 0.2\n", "4. 0.3\n", "5. 0.4\n", "6. 0.5\n", "7. 0.6\n", "8. 0.7\n", "9. 0.8\n", "10. 0.9\n", "11. 1\n", "\n", "\n" ], "text/plain": [ " [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "seq(0, 1, length.out = 11)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using `rep`\n", "\n", "`rep` is useful for generating repeating data patterns." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 3
  2. \n", "\t
  3. 3
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 3
  8. \n", "\t
  9. 3
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 3\n", "2. 3\n", "3. 3\n", "4. 3\n", "5. 3\n", "\n", "\n" ], "text/plain": [ "[1] 3 3 3 3 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rep(3, 5)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 1
  8. \n", "\t
  9. 2
  10. \n", "\t
  11. 3
  12. \n", "\t
  13. 1
  14. \n", "\t
  15. 2
  16. \n", "\t
  17. 3
  18. \n", "\t
  19. 1
  20. \n", "\t
  21. 2
  22. \n", "\t
  23. 3
  24. \n", "\t
  25. 1
  26. \n", "\t
  27. 2
  28. \n", "\t
  29. 3
  30. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 1\n", "5. 2\n", "6. 3\n", "7. 1\n", "8. 2\n", "9. 3\n", "10. 1\n", "11. 2\n", "12. 3\n", "13. 1\n", "14. 2\n", "15. 3\n", "\n", "\n" ], "text/plain": [ " [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rep(1:3, times=5)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 1
  6. \n", "\t
  7. 1
  8. \n", "\t
  9. 1
  10. \n", "\t
  11. 2
  12. \n", "\t
  13. 2
  14. \n", "\t
  15. 2
  16. \n", "\t
  17. 2
  18. \n", "\t
  19. 2
  20. \n", "\t
  21. 3
  22. \n", "\t
  23. 3
  24. \n", "\t
  25. 3
  26. \n", "\t
  27. 3
  28. \n", "\t
  29. 3
  30. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 1\n", "\\item 2\n", "\\item 2\n", "\\item 2\n", "\\item 2\n", "\\item 2\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 1\n", "3. 1\n", "4. 1\n", "5. 1\n", "6. 2\n", "7. 2\n", "8. 2\n", "9. 2\n", "10. 2\n", "11. 3\n", "12. 3\n", "13. 3\n", "14. 3\n", "15. 3\n", "\n", "\n" ], "text/plain": [ " [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rep(1:3, each=5)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 1
  8. \n", "\t
  9. 2
  10. \n", "\t
  11. 3
  12. \n", "\t
  13. 1
  14. \n", "\t
  15. 2
  16. \n", "\t
  17. 3
  18. \n", "\t
  19. 1
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 1\n", "5. 2\n", "6. 3\n", "7. 1\n", "8. 2\n", "9. 3\n", "10. 1\n", "\n", "\n" ], "text/plain": [ " [1] 1 2 3 1 2 3 1 2 3 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rep(1:3, length.out=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using `sample`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simulate `n` tooses of a coin" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "n <- 10" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'T'
  2. \n", "\t
  3. 'T'
  4. \n", "\t
  5. 'H'
  6. \n", "\t
  7. 'T'
  8. \n", "\t
  9. 'T'
  10. \n", "\t
  11. 'T'
  12. \n", "\t
  13. 'T'
  14. \n", "\t
  15. 'H'
  16. \n", "\t
  17. 'T'
  18. \n", "\t
  19. 'T'
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'T'\n", "\\item 'T'\n", "\\item 'H'\n", "\\item 'T'\n", "\\item 'T'\n", "\\item 'T'\n", "\\item 'T'\n", "\\item 'H'\n", "\\item 'T'\n", "\\item 'T'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'T'\n", "2. 'T'\n", "3. 'H'\n", "4. 'T'\n", "5. 'T'\n", "6. 'T'\n", "7. 'T'\n", "8. 'H'\n", "9. 'T'\n", "10. 'T'\n", "\n", "\n" ], "text/plain": [ " [1] \"T\" \"T\" \"H\" \"T\" \"T\" \"T\" \"T\" \"H\" \"T\" \"T\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t1 <- sample(c('H', 'T'), n, replace = TRUE)\n", "t1" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "t1\n", "H T \n", "2 8 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "table(t1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simulate `n` tosses of a biased coin" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'T'
  2. \n", "\t
  3. 'H'
  4. \n", "\t
  5. 'H'
  6. \n", "\t
  7. 'T'
  8. \n", "\t
  9. 'T'
  10. \n", "\t
  11. 'H'
  12. \n", "\t
  13. 'H'
  14. \n", "\t
  15. 'T'
  16. \n", "\t
  17. 'T'
  18. \n", "\t
  19. 'T'
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'T'\n", "\\item 'H'\n", "\\item 'H'\n", "\\item 'T'\n", "\\item 'T'\n", "\\item 'H'\n", "\\item 'H'\n", "\\item 'T'\n", "\\item 'T'\n", "\\item 'T'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'T'\n", "2. 'H'\n", "3. 'H'\n", "4. 'T'\n", "5. 'T'\n", "6. 'H'\n", "7. 'H'\n", "8. 'T'\n", "9. 'T'\n", "10. 'T'\n", "\n", "\n" ], "text/plain": [ " [1] \"T\" \"H\" \"H\" \"T\" \"T\" \"H\" \"H\" \"T\" \"T\" \"T\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t2 <- sample(c('H', 'T'), n, replace = TRUE, prob = c(0.3, 0.7))\n", "t2" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "t2\n", "H T \n", "4 6 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "table(t2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simulate `n` rolls of a 6-sided die" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "n <- 100" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 6
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 6
  6. \n", "\t
  7. 6
  8. \n", "\t
  9. 1
  10. \n", "\t
  11. 4
  12. \n", "\t
  13. 3
  14. \n", "\t
  15. 6
  16. \n", "\t
  17. 3
  18. \n", "\t
  19. 6
  20. \n", "\t
  21. 5
  22. \n", "\t
  23. 5
  24. \n", "\t
  25. 3
  26. \n", "\t
  27. 5
  28. \n", "\t
  29. 1
  30. \n", "\t
  31. 5
  32. \n", "\t
  33. 1
  34. \n", "\t
  35. 2
  36. \n", "\t
  37. 6
  38. \n", "\t
  39. 4
  40. \n", "\t
  41. 3
  42. \n", "\t
  43. 3
  44. \n", "\t
  45. 1
  46. \n", "\t
  47. 6
  48. \n", "\t
  49. 3
  50. \n", "\t
  51. 6
  52. \n", "\t
  53. 6
  54. \n", "\t
  55. 4
  56. \n", "\t
  57. 6
  58. \n", "\t
  59. 4
  60. \n", "\t
  61. 3
  62. \n", "\t
  63. 3
  64. \n", "\t
  65. 3
  66. \n", "\t
  67. 5
  68. \n", "\t
  69. 1
  70. \n", "\t
  71. 5
  72. \n", "\t
  73. 5
  74. \n", "\t
  75. 2
  76. \n", "\t
  77. 2
  78. \n", "\t
  79. 4
  80. \n", "\t
  81. 5
  82. \n", "\t
  83. 6
  84. \n", "\t
  85. 5
  86. \n", "\t
  87. 4
  88. \n", "\t
  89. 6
  90. \n", "\t
  91. 2
  92. \n", "\t
  93. 2
  94. \n", "\t
  95. 5
  96. \n", "\t
  97. 5
  98. \n", "\t
  99. 2
  100. \n", "\t
  101. 1
  102. \n", "\t
  103. 1
  104. \n", "\t
  105. 2
  106. \n", "\t
  107. 3
  108. \n", "\t
  109. 2
  110. \n", "\t
  111. 5
  112. \n", "\t
  113. 1
  114. \n", "\t
  115. 3
  116. \n", "\t
  117. 4
  118. \n", "\t
  119. 1
  120. \n", "\t
  121. 4
  122. \n", "\t
  123. 1
  124. \n", "\t
  125. 3
  126. \n", "\t
  127. 4
  128. \n", "\t
  129. 5
  130. \n", "\t
  131. 4
  132. \n", "\t
  133. 2
  134. \n", "\t
  135. 1
  136. \n", "\t
  137. 1
  138. \n", "\t
  139. 2
  140. \n", "\t
  141. 5
  142. \n", "\t
  143. 1
  144. \n", "\t
  145. 2
  146. \n", "\t
  147. 6
  148. \n", "\t
  149. 6
  150. \n", "\t
  151. 5
  152. \n", "\t
  153. 2
  154. \n", "\t
  155. 4
  156. \n", "\t
  157. 5
  158. \n", "\t
  159. 4
  160. \n", "\t
  161. 4
  162. \n", "\t
  163. 2
  164. \n", "\t
  165. 2
  166. \n", "\t
  167. 3
  168. \n", "\t
  169. 6
  170. \n", "\t
  171. 6
  172. \n", "\t
  173. 5
  174. \n", "\t
  175. 5
  176. \n", "\t
  177. 4
  178. \n", "\t
  179. 1
  180. \n", "\t
  181. 4
  182. \n", "\t
  183. 6
  184. \n", "\t
  185. 5
  186. \n", "\t
  187. 3
  188. \n", "\t
  189. 4
  190. \n", "\t
  191. 4
  192. \n", "\t
  193. 1
  194. \n", "\t
  195. 3
  196. \n", "\t
  197. 4
  198. \n", "\t
  199. 5
  200. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 6\n", "\\item 1\n", "\\item 6\n", "\\item 6\n", "\\item 1\n", "\\item 4\n", "\\item 3\n", "\\item 6\n", "\\item 3\n", "\\item 6\n", "\\item 5\n", "\\item 5\n", "\\item 3\n", "\\item 5\n", "\\item 1\n", "\\item 5\n", "\\item 1\n", "\\item 2\n", "\\item 6\n", "\\item 4\n", "\\item 3\n", "\\item 3\n", "\\item 1\n", "\\item 6\n", "\\item 3\n", "\\item 6\n", "\\item 6\n", "\\item 4\n", "\\item 6\n", "\\item 4\n", "\\item 3\n", "\\item 3\n", "\\item 3\n", "\\item 5\n", "\\item 1\n", "\\item 5\n", "\\item 5\n", "\\item 2\n", "\\item 2\n", "\\item 4\n", "\\item 5\n", "\\item 6\n", "\\item 5\n", "\\item 4\n", "\\item 6\n", "\\item 2\n", "\\item 2\n", "\\item 5\n", "\\item 5\n", "\\item 2\n", "\\item 1\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 2\n", "\\item 5\n", "\\item 1\n", "\\item 3\n", "\\item 4\n", "\\item 1\n", "\\item 4\n", "\\item 1\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\item 4\n", "\\item 2\n", "\\item 1\n", "\\item 1\n", "\\item 2\n", "\\item 5\n", "\\item 1\n", "\\item 2\n", "\\item 6\n", "\\item 6\n", "\\item 5\n", "\\item 2\n", "\\item 4\n", "\\item 5\n", "\\item 4\n", "\\item 4\n", "\\item 2\n", "\\item 2\n", "\\item 3\n", "\\item 6\n", "\\item 6\n", "\\item 5\n", "\\item 5\n", "\\item 4\n", "\\item 1\n", "\\item 4\n", "\\item 6\n", "\\item 5\n", "\\item 3\n", "\\item 4\n", "\\item 4\n", "\\item 1\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 6\n", "2. 1\n", "3. 6\n", "4. 6\n", "5. 1\n", "6. 4\n", "7. 3\n", "8. 6\n", "9. 3\n", "10. 6\n", "11. 5\n", "12. 5\n", "13. 3\n", "14. 5\n", "15. 1\n", "16. 5\n", "17. 1\n", "18. 2\n", "19. 6\n", "20. 4\n", "21. 3\n", "22. 3\n", "23. 1\n", "24. 6\n", "25. 3\n", "26. 6\n", "27. 6\n", "28. 4\n", "29. 6\n", "30. 4\n", "31. 3\n", "32. 3\n", "33. 3\n", "34. 5\n", "35. 1\n", "36. 5\n", "37. 5\n", "38. 2\n", "39. 2\n", "40. 4\n", "41. 5\n", "42. 6\n", "43. 5\n", "44. 4\n", "45. 6\n", "46. 2\n", "47. 2\n", "48. 5\n", "49. 5\n", "50. 2\n", "51. 1\n", "52. 1\n", "53. 2\n", "54. 3\n", "55. 2\n", "56. 5\n", "57. 1\n", "58. 3\n", "59. 4\n", "60. 1\n", "61. 4\n", "62. 1\n", "63. 3\n", "64. 4\n", "65. 5\n", "66. 4\n", "67. 2\n", "68. 1\n", "69. 1\n", "70. 2\n", "71. 5\n", "72. 1\n", "73. 2\n", "74. 6\n", "75. 6\n", "76. 5\n", "77. 2\n", "78. 4\n", "79. 5\n", "80. 4\n", "81. 4\n", "82. 2\n", "83. 2\n", "84. 3\n", "85. 6\n", "86. 6\n", "87. 5\n", "88. 5\n", "89. 4\n", "90. 1\n", "91. 4\n", "92. 6\n", "93. 5\n", "94. 3\n", "95. 4\n", "96. 4\n", "97. 1\n", "98. 3\n", "99. 4\n", "100. 5\n", "\n", "\n" ], "text/plain": [ " [1] 6 1 6 6 1 4 3 6 3 6 5 5 3 5 1 5 1 2 6 4 3 3 1 6 3 6 6 4 6 4 3 3 3 5 1 5 5\n", " [38] 2 2 4 5 6 5 4 6 2 2 5 5 2 1 1 2 3 2 5 1 3 4 1 4 1 3 4 5 4 2 1 1 2 5 1 2 6\n", " [75] 6 5 2 4 5 4 4 2 2 3 6 6 5 5 4 1 4 6 5 3 4 4 1 3 4 5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d1 <- sample(1:6, n, replace=TRUE)\n", "d1" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "d1\n", " 1 2 3 4 5 6 \n", "16 14 15 18 20 17 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "table(d1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling without replacement. For example, if we wanted to assiggn 16 samples to treatment A or B at random such that exactly half had each treatment." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'A'
  2. \n", "\t
  3. 'A'
  4. \n", "\t
  5. 'B'
  6. \n", "\t
  7. 'A'
  8. \n", "\t
  9. 'B'
  10. \n", "\t
  11. 'A'
  12. \n", "\t
  13. 'B'
  14. \n", "\t
  15. 'B'
  16. \n", "\t
  17. 'A'
  18. \n", "\t
  19. 'B'
  20. \n", "\t
  21. 'B'
  22. \n", "\t
  23. 'A'
  24. \n", "\t
  25. 'A'
  26. \n", "\t
  27. 'B'
  28. \n", "\t
  29. 'B'
  30. \n", "\t
  31. 'A'
  32. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'A'\n", "\\item 'A'\n", "\\item 'B'\n", "\\item 'A'\n", "\\item 'B'\n", "\\item 'A'\n", "\\item 'B'\n", "\\item 'B'\n", "\\item 'A'\n", "\\item 'B'\n", "\\item 'B'\n", "\\item 'A'\n", "\\item 'A'\n", "\\item 'B'\n", "\\item 'B'\n", "\\item 'A'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'A'\n", "2. 'A'\n", "3. 'B'\n", "4. 'A'\n", "5. 'B'\n", "6. 'A'\n", "7. 'B'\n", "8. 'B'\n", "9. 'A'\n", "10. 'B'\n", "11. 'B'\n", "12. 'A'\n", "13. 'A'\n", "14. 'B'\n", "15. 'B'\n", "16. 'A'\n", "\n", "\n" ], "text/plain": [ " [1] \"A\" \"A\" \"B\" \"A\" \"B\" \"A\" \"B\" \"B\" \"A\" \"B\" \"B\" \"A\" \"A\" \"B\" \"B\" \"A\"" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sample(rep(c('A', 'B'), each=8))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Random number generators" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Disscrete distributionns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling from a Bernoullli distribution returns TRUE for success and FALSE for failure." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. TRUE
  2. \n", "\t
  3. FALSE
  4. \n", "\t
  5. TRUE
  6. \n", "\t
  7. TRUE
  8. \n", "\t
  9. FALSE
  10. \n", "\t
  11. FALSE
  12. \n", "\t
  13. FALSE
  14. \n", "\t
  15. TRUE
  16. \n", "\t
  17. TRUE
  18. \n", "\t
  19. TRUE
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item TRUE\n", "\\item FALSE\n", "\\item TRUE\n", "\\item TRUE\n", "\\item FALSE\n", "\\item FALSE\n", "\\item FALSE\n", "\\item TRUE\n", "\\item TRUE\n", "\\item TRUE\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. TRUE\n", "2. FALSE\n", "3. TRUE\n", "4. TRUE\n", "5. FALSE\n", "6. FALSE\n", "7. FALSE\n", "8. TRUE\n", "9. TRUE\n", "10. TRUE\n", "\n", "\n" ], "text/plain": [ " [1] TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rbernoulli(n=10, p=0.5)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0
  2. \n", "\t
  3. 1
  4. \n", "\t
  5. 0
  6. \n", "\t
  7. 0
  8. \n", "\t
  9. 1
  10. \n", "\t
  11. 0
  12. \n", "\t
  13. 1
  14. \n", "\t
  15. 0
  16. \n", "\t
  17. 1
  18. \n", "\t
  19. 1
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0\n", "\\item 1\n", "\\item 0\n", "\\item 0\n", "\\item 1\n", "\\item 0\n", "\\item 1\n", "\\item 0\n", "\\item 1\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0\n", "2. 1\n", "3. 0\n", "4. 0\n", "5. 1\n", "6. 0\n", "7. 1\n", "8. 0\n", "9. 1\n", "10. 1\n", "\n", "\n" ], "text/plain": [ " [1] 0 1 0 0 1 0 1 0 1 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "as.integer(rbernoulli(n=10, p=0.5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling from a Binomial distribution returns the number of **successes** in `size` trials for `n` experiments." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 0
  4. \n", "\t
  5. 1
  6. \n", "\t
  7. 3
  8. \n", "\t
  9. 4
  10. \n", "\t
  11. 3
  12. \n", "\t
  13. 3
  14. \n", "\t
  15. 2
  16. \n", "\t
  17. 3
  18. \n", "\t
  19. 1
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 0\n", "\\item 1\n", "\\item 3\n", "\\item 4\n", "\\item 3\n", "\\item 3\n", "\\item 2\n", "\\item 3\n", "\\item 1\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 0\n", "3. 1\n", "4. 3\n", "5. 4\n", "6. 3\n", "7. 3\n", "8. 2\n", "9. 3\n", "10. 1\n", "\n", "\n" ], "text/plain": [ " [1] 2 0 1 3 4 3 3 2 3 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rbinom(n=10, p=0.5, size=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling from a negative binomial distribution returns the number of **failures** until `size` succcesses are observed for `n` experiemnts." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 5
  4. \n", "\t
  5. 6
  6. \n", "\t
  7. 7
  8. \n", "\t
  9. 6
  10. \n", "\t
  11. 6
  12. \n", "\t
  13. 5
  14. \n", "\t
  15. 1
  16. \n", "\t
  17. 0
  18. \n", "\t
  19. 9
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 5\n", "\\item 6\n", "\\item 7\n", "\\item 6\n", "\\item 6\n", "\\item 5\n", "\\item 1\n", "\\item 0\n", "\\item 9\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 5\n", "3. 6\n", "4. 7\n", "5. 6\n", "6. 6\n", "7. 5\n", "8. 1\n", "9. 0\n", "10. 9\n", "\n", "\n" ], "text/plain": [ " [1] 2 5 6 7 6 6 5 1 0 9" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rnbinom(n=10, size=5, prob=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling from a Poisson distribution returns the number of **successes** in `n` experiments if the average success rate per experiment is `lambda`." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 3
  2. \n", "\t
  3. 5
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 1
  8. \n", "\t
  9. 3
  10. \n", "\t
  11. 7
  12. \n", "\t
  13. 3
  14. \n", "\t
  15. 2
  16. \n", "\t
  17. 2
  18. \n", "\t
  19. 3
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 3\n", "\\item 5\n", "\\item 3\n", "\\item 1\n", "\\item 3\n", "\\item 7\n", "\\item 3\n", "\\item 2\n", "\\item 2\n", "\\item 3\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 3\n", "2. 5\n", "3. 3\n", "4. 1\n", "5. 3\n", "6. 7\n", "7. 3\n", "8. 2\n", "9. 2\n", "10. 3\n", "\n", "\n" ], "text/plain": [ " [1] 3 5 3 1 3 7 3 2 2 3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rpois(n=10, lambda = 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**: We can give different parameters for each experiment in these distributios." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 5
  8. \n", "\t
  9. 6
  10. \n", "\t
  11. 3
  12. \n", "\t
  13. 6
  14. \n", "\t
  15. 8
  16. \n", "\t
  17. 9
  18. \n", "\t
  19. 9
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 2\n", "\\item 3\n", "\\item 5\n", "\\item 6\n", "\\item 3\n", "\\item 6\n", "\\item 8\n", "\\item 9\n", "\\item 9\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 2\n", "3. 3\n", "4. 5\n", "5. 6\n", "6. 3\n", "7. 6\n", "8. 8\n", "9. 9\n", "10. 9\n", "\n", "\n" ], "text/plain": [ " [1] 2 2 3 5 6 3 6 8 9 9" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rpois(n=10, lambda=1:10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Continuous distributions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling from a stnadard uniform distribution." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 0.649875837611035
  2. \n", "\t
  3. 0.336419132305309
  4. \n", "\t
  5. 0.0609497462864965
  6. \n", "\t
  7. 0.451310850214213
  8. \n", "\t
  9. 0.838755033444613
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 0.649875837611035\n", "\\item 0.336419132305309\n", "\\item 0.0609497462864965\n", "\\item 0.451310850214213\n", "\\item 0.838755033444613\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 0.649875837611035\n", "2. 0.336419132305309\n", "3. 0.0609497462864965\n", "4. 0.451310850214213\n", "5. 0.838755033444613\n", "\n", "\n" ], "text/plain": [ "[1] 0.64987584 0.33641913 0.06094975 0.45131085 0.83875503" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "runif(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling form a uniform distribuiotn," ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 95.7463733432814
  2. \n", "\t
  3. 93.5335037740879
  4. \n", "\t
  5. 95.4742607823573
  6. \n", "\t
  7. 98.9271859382279
  8. \n", "\t
  9. 94.8999057058245
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 95.7463733432814\n", "\\item 93.5335037740879\n", "\\item 95.4742607823573\n", "\\item 98.9271859382279\n", "\\item 94.8999057058245\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 95.7463733432814\n", "2. 93.5335037740879\n", "3. 95.4742607823573\n", "4. 98.9271859382279\n", "5. 94.8999057058245\n", "\n", "\n" ], "text/plain": [ "[1] 95.74637 93.53350 95.47426 98.92719 94.89991" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "runif(5, 90, 100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sampling from a stnadard normal distribution." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. -0.94773529068477
  2. \n", "\t
  3. 1.76797780755595
  4. \n", "\t
  5. 0.917327777548805
  6. \n", "\t
  7. -0.894775408854386
  8. \n", "\t
  9. -0.688165944958397
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item -0.94773529068477\n", "\\item 1.76797780755595\n", "\\item 0.917327777548805\n", "\\item -0.894775408854386\n", "\\item -0.688165944958397\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. -0.94773529068477\n", "2. 1.76797780755595\n", "3. 0.917327777548805\n", "4. -0.894775408854386\n", "5. -0.688165944958397\n", "\n", "\n" ], "text/plain": [ "[1] -0.9477353 1.7679778 0.9173278 -0.8947754 -0.6881659" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rnorm(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Looping" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] 0.2660734\n", "[1] -0.09742615\n", "[1] -0.3068994\n", "[1] 0.2910631\n", "[1] 0.1062726\n", "[1] 0.05955272\n", "[1] 0.4080255\n", "[1] -0.1243275\n", "[1] -0.779981\n", "[1] -0.187303\n" ] } ], "source": [ "for (i in 1:10) {\n", " print(mean(rnorm(10)))\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Saving variabels generated in a loop" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. -0.25116755575127
  2. \n", "\t
  3. 0.708916638976887
  4. \n", "\t
  5. 0.461551515258198
  6. \n", "\t
  7. -0.475557761331935
  8. \n", "\t
  9. -0.0598841272831985
  10. \n", "\t
  11. 0.272569234838853
  12. \n", "\t
  13. 0.0543736652184016
  14. \n", "\t
  15. 0.135002662203851
  16. \n", "\t
  17. -0.190719191248592
  18. \n", "\t
  19. 0.0387989282162199
  20. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item -0.25116755575127\n", "\\item 0.708916638976887\n", "\\item 0.461551515258198\n", "\\item -0.475557761331935\n", "\\item -0.0598841272831985\n", "\\item 0.272569234838853\n", "\\item 0.0543736652184016\n", "\\item 0.135002662203851\n", "\\item -0.190719191248592\n", "\\item 0.0387989282162199\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. -0.25116755575127\n", "2. 0.708916638976887\n", "3. 0.461551515258198\n", "4. -0.475557761331935\n", "5. -0.0598841272831985\n", "6. 0.272569234838853\n", "7. 0.0543736652184016\n", "8. 0.135002662203851\n", "9. -0.190719191248592\n", "10. 0.0387989282162199\n", "\n", "\n" ], "text/plain": [ " [1] -0.25116756 0.70891664 0.46155152 -0.47555776 -0.05988413 0.27256923\n", " [7] 0.05437367 0.13500266 -0.19071919 0.03879893" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n <- 10\n", "vars <- numeric(n)\n", "for (i in 1:n) {\n", " vars[i] <- mean(rnorm(10))\n", "}\n", "vars" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using `replicate`\n", "\n", "`replicate` is like `rep` but works for a function (such as a random number geenerator)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
-0.9984839 0.15461594-0.88368060
-2.1072414 -0.80160087 0.07714041
0.8574190 -0.04518119 0.83720136
1.1260757 -1.03824075 0.09992556
-0.1983684 1.55953311 0.30272834
\n" ], "text/latex": [ "\\begin{tabular}{lll}\n", "\t -0.9984839 & 0.15461594 & -0.88368060\\\\\n", "\t -2.1072414 & -0.80160087 & 0.07714041\\\\\n", "\t 0.8574190 & -0.04518119 & 0.83720136\\\\\n", "\t 1.1260757 & -1.03824075 & 0.09992556\\\\\n", "\t -0.1983684 & 1.55953311 & 0.30272834\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| -0.9984839 | 0.15461594 | -0.88368060 | \n", "| -2.1072414 | -0.80160087 | 0.07714041 | \n", "| 0.8574190 | -0.04518119 | 0.83720136 | \n", "| 1.1260757 | -1.03824075 | 0.09992556 | \n", "| -0.1983684 | 1.55953311 | 0.30272834 | \n", "\n", "\n" ], "text/plain": [ " [,1] [,2] [,3] \n", "[1,] -0.9984839 0.15461594 -0.88368060\n", "[2,] -2.1072414 -0.80160087 0.07714041\n", "[3,] 0.8574190 -0.04518119 0.83720136\n", "[4,] 1.1260757 -1.03824075 0.09992556\n", "[5,] -0.1983684 1.55953311 0.30272834" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "replicate(3, rnorm(5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`replicate` is quite useful for simulations. For exampe, suppose we want to know the distribution of the sample mean if we sampled 100 numbers from the standard normal distribution 1,000 times." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n_expts <- 1000\n", "n <- 100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using for loop" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAMAAAC46dgSAAAC8VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSV\nlZWWlpaXl5eYmJiZmZmbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eo\nqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrK0tLS1tbW3t7e4uLi5ubm6urq7u7u8\nvLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3O\nzs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g\n4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz\n8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///9TZvmoAAAACXBIWXMAABJ0\nAAASdAHeZh94AAASl0lEQVR4nO2de2AU1b3Hf0mABALI+52gIbwF0UQIjwsWkEfABxWEqCBc\nBPFR8KoUrLcIei0FbqVetFjE+LitBbwXxOJVlAq0tkVrFQvlFlE0AnLB8DBAQuave2Z2s5md\n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", "text/plain": [ "Plot with title “Histogram of mus”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "set.seed(123)\n", "mus <- numeric(n_expts)\n", "for (i in 1:n_expts) {\n", " mus[i] <- mean(rnorm(n))\n", "}\n", "hist(mus)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using replicate" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAMAAAC46dgSAAAC8VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSV\nlZWWlpaXl5eYmJiZmZmbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eo\nqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrK0tLS1tbW3t7e4uLi5ubm6urq7u7u8\nvLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3O\nzs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g\n4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz\n8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///9TZvmoAAAACXBIWXMAABJ0\nAAASdAHeZh94AAASl0lEQVR4nO2de2AU1b3Hf0mABALI+52gIbwF0UQIjwsWkEfABxWEqCBc\nBPFR8KoUrLcIei0FbqVetFjE+LitBbwXxOJVlAq0tkVrFQvlFlE0AnLB8DBAQuave2Z2s5md\n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", "text/plain": [ "Plot with title “Histogram of mus”" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "set.seed(123)\n", "mus <- replicate(n_expts, mean(rnorm(n)))\n", "hist(mus)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Makign a `data.frame` of simulated data\n", "\n", "Let's simulate the following experiment. \n", "\n", "- There are 10 subjects in Group A and 10 subjects in Group B with ranodm PIDs from 10000-99999\n", "- We measure 5 genes in each subject. The genes have the same distribution for each subject, but different genes have differnt distribtutions:\n", " - gene1 $\\sim N(10, 1)$\n", " - gene2 $\\sim N(11, 2)$\n", " - gene3 $\\sim N(12, 3)$\n", " - gene4 $\\sim N(13, 4)$\n", " - gene5 $\\sim (N(14, 5)$" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
0.65364261.334889 1.54323020.65734782.249920
1.35856362.068446 0.89367474.22711723.146313
3.40236612.388056 2.63943861.58613982.943069
\n" ], "text/latex": [ "\\begin{tabular}{lllll}\n", "\t 0.6536426 & 1.334889 & 1.5432302 & 0.6573478 & 2.249920 \\\\\n", "\t 1.3585636 & 2.068446 & 0.8936747 & 4.2271172 & 3.146313 \\\\\n", "\t 3.4023661 & 2.388056 & 2.6394386 & 1.5861398 & 2.943069 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| 0.6536426 | 1.334889 | 1.5432302 | 0.6573478 | 2.249920 | \n", "| 1.3585636 | 2.068446 | 0.8936747 | 4.2271172 | 3.146313 | \n", "| 3.4023661 | 2.388056 | 2.6394386 | 1.5861398 | 2.943069 | \n", "\n", "\n" ], "text/plain": [ " [,1] [,2] [,3] [,4] [,5] \n", "[1,] 0.6536426 1.334889 1.5432302 0.6573478 2.249920\n", "[2,] 1.3585636 2.068446 0.8936747 4.2271172 3.146313\n", "[3,] 3.4023661 2.388056 2.6394386 1.5861398 2.943069" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "replicate(5, rnorm(3, 1:5, 1))" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "n <- 10\n", "n_genes <- 5\n", "min_pid <- 10000\n", "max_pid <- 99999\n", "groupings <- c('A', 'B')\n", "n_groups <- length(groupings)\n", "gene_mus <- 10:14\n", "gene_sigmas <- 1:5\n", "pad_width <- 3" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [], "source": [ "pids <- sample(min_pid:max_pid, n_groups*n)\n", "groups <- sample(rep(groupings, each=n))\n", "genes <- t(replicate(n_groups*n, rnorm(n_genes, gene_mus, gene_sigmas)))\n", "gene_names <- paste('gene', str_pad(1:n_genes, width = pad_width, pad='0'), sep='')\n", "colnames(genes) <- gene_names" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "df <- data.frame(\n", " pid = pids,\n", " grp = groups,\n", " genes\n", ")" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
pidgrpgene001gene002gene003gene004gene005
1638729 B 1.530708 8.61394310.617613 9.2155139.880912
1322215 B 14.54560910.625483 6.288087 9.7414669.624057
1489658 A 13.00822414.321570 8.11567612.6085647.962775
\n" ], "text/latex": [ "\\begin{tabular}{r|lllllll}\n", " & pid & grp & gene001 & gene002 & gene003 & gene004 & gene005\\\\\n", "\\hline\n", "\t16 & 38729 & B & 1.530708 & 8.613943 & 10.617613 & 9.215513 & 9.880912 \\\\\n", "\t13 & 22215 & B & 14.545609 & 10.625483 & 6.288087 & 9.741466 & 9.624057 \\\\\n", "\t14 & 89658 & A & 13.008224 & 14.321570 & 8.115676 & 12.608564 & 7.962775 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | pid | grp | gene001 | gene002 | gene003 | gene004 | gene005 | \n", "|---|---|---|\n", "| 16 | 38729 | B | 1.530708 | 8.613943 | 10.617613 | 9.215513 | 9.880912 | \n", "| 13 | 22215 | B | 14.545609 | 10.625483 | 6.288087 | 9.741466 | 9.624057 | \n", "| 14 | 89658 | A | 13.008224 | 14.321570 | 8.115676 | 12.608564 | 7.962775 | \n", "\n", "\n" ], "text/plain": [ " pid grp gene001 gene002 gene003 gene004 gene005 \n", "16 38729 B 1.530708 8.613943 10.617613 9.215513 9.880912\n", "13 22215 B 14.545609 10.625483 6.288087 9.741466 9.624057\n", "14 89658 A 13.008224 14.321570 8.115676 12.608564 7.962775" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sample_n(df, 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Breakdown of simjulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set up simulation confiugration parameters." ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [], "source": [ "n <- 10\n", "n_genes <- 5\n", "min_pid <- 10000\n", "max_pid <- 99999\n", "groupings <- c('A', 'B')\n", "n_groups <- length(groupings)\n", "gene_mus <- 10:14\n", "gene_sigmas <- 1:5\n", "pad_width <- 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create unique PIDs for each subject" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "pids <- sample(min_pid:max_pid, n_groups*n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assign a group to each subject at ranodm" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "groups <- sample(rep(groupings, each=n))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make up 5 genes from different distributions for each subject" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [], "source": [ "genes <- t(replicate(n_groups*n, rnorm(n_genes, gene_mus, gene_sigmas)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make nice names for each gene" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "gene_names <- paste('gene', str_pad(1:n_genes, width = pad_width, pad='0'), sep='')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assign names to gene columns" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "colnames(genes) <- gene_names" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create `data.frame` to storre simulated data" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [], "source": [ "df <- data.frame(\n", " pid = pids,\n", " grp = groups,\n", " genes\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Peek into `data.frame`" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
pidgrpgene001gene002gene003gene004gene005
1672254 B 10.726324 9.749522 9.77283219.65021 13.226052
1821661 B 10.44887812.68983313.29283219.66553 14.330836
1491408 B 9.12594911.00927313.05214114.95065 8.745456
\n" ], "text/latex": [ "\\begin{tabular}{r|lllllll}\n", " & pid & grp & gene001 & gene002 & gene003 & gene004 & gene005\\\\\n", "\\hline\n", "\t16 & 72254 & B & 10.726324 & 9.749522 & 9.772832 & 19.65021 & 13.226052\\\\\n", "\t18 & 21661 & B & 10.448878 & 12.689833 & 13.292832 & 19.66553 & 14.330836\\\\\n", "\t14 & 91408 & B & 9.125949 & 11.009273 & 13.052141 & 14.95065 & 8.745456\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | pid | grp | gene001 | gene002 | gene003 | gene004 | gene005 | \n", "|---|---|---|\n", "| 16 | 72254 | B | 10.726324 | 9.749522 | 9.772832 | 19.65021 | 13.226052 | \n", "| 18 | 21661 | B | 10.448878 | 12.689833 | 13.292832 | 19.66553 | 14.330836 | \n", "| 14 | 91408 | B | 9.125949 | 11.009273 | 13.052141 | 14.95065 | 8.745456 | \n", "\n", "\n" ], "text/plain": [ " pid grp gene001 gene002 gene003 gene004 gene005 \n", "16 72254 B 10.726324 9.749522 9.772832 19.65021 13.226052\n", "18 21661 B 10.448878 12.689833 13.292832 19.66553 14.330836\n", "14 91408 B 9.125949 11.009273 13.052141 14.95065 8.745456" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sample_n(df, 3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "r" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.4.4" } }, "nbformat": 4, "nbformat_minor": 2 }