Initial Description: Four Distribution Letters

The different probability distribution functions all start with one of the following 4 letters:

  1. d \(\rightarrow\) density: Find the probability for a specific value \(P(Y=a)\)

  2. p \(\rightarrow\) Find the probability for the specific value and all values less than it (aka, cumulative probability): \(P(Y \le a)\)

  3. q \(\rightarrow\) quantile: Finds the smallest value of the random variable, \(a\), so that \(P(Y \le a) \ge p\)

  1. r \(\rightarrow\) generate a value of the random variable Y given the parameters

Multinomial Distribution - The distributions for non-binary, categorical outcomes

The multinomial distribution is like the binomial distribution, but instead of 2 outcomes, it has a total of \(I\) outcomes:

\[P(Y_1 = y_1, Y_2 = y_2, ..., Y_I = y_i) = n!\prod_{i=1}^I \frac{\pi_i^{y_i}}{y_i!} = \frac{n!}{y_1! y_2! ... y_I!} \pi_1^{y_1}\pi_2^{y_2}...\pi_I^{y_I} \]

Unlike the binomial distribution, there are just 2 functions:

  1. dbinom = \(P(Y_1 = a, Y_2 = b, ...)\)

  2. rmultinom for generating a random sample of multinomial data

1) dmultinom()

dmultinom() has 2 arguments

  1. x = which has to be a vector with length equal to the number of different outcomes
  • If it is a trinomial (ie poor/moderate/good), x needs to be a vector with 3 numbers:
    1. the number of poor results in the sample
    2. the number of moderate results in the sample
    3. the number of good results in the sample
  1. prob = the vector of probabilities that an observation falls into that category
  • trinomial with \(\{p_1, p_2, p_3\} = \{0.2, 0.5, 0.3\}\)
  • Make sure that the vector of probabilities sums to 1, or R will force it to sum to 1!

It has an size = argument, but it will calculate \(N\) to be the sum of the elements in x so you shouldn’t use it!

Let’s say from a random sample of 20, there were 4 bad, 11 moderate, and 5 good

# Done correctly since prob sums to 1:
dmultinom(x = c(      4,   11,    5), 
          prob = c(0.20, 0.50, 0.30))
## [1] 0.04017656
# Done incorrectly: prob = c(0.2, 0.4, 0.3)
dmultinom(x = c(      4,   11,    5), 
          prob = c(0.20, 0.40, 0.30))
## [1] 0.02838653

If the prob vector doesn’t sum to 1, it will “normalize” the vector (aka, force it to sum to 1):

\[\left\{ \frac{p_1}{p_1 + p_2 + p_3}, \frac{p_2}{p_1 + p_2 + p_3}, \frac{p_3}{p_1 + p_2 + p_3} \right\}\]

2) rmultinom()

rmultinom() has 3 arguments

  1. n =: Scalar - how many random vectors to create

  2. size =: Scalar - the total number of trials

  3. prob =: Vector - the vector of probabilities for each outcome

Let’s create 10 random vectors with 20 trials each for 4 groups of equal probability \(\pi_i = 0.25\)

rmultinom(n = 10,size = 20, prob = rep(x = 0.25, times = 4))
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,]   10    4    6    6    6    5    7    5    6     4
## [2,]    4    3    3    4    5    7   10    8    6     7
## [3,]    3    4    6    5    4    3    3    4    5     4
## [4,]    3    9    5    5    5    5    0    3    3     5
# by default, it creates a column for each random multinomial result


# If you want the rows named to their corresponding groups (say g1 to g4), you can do so in prob = 
rmultinom(n = 10,
          size = 20,
          prob = c(g1 = 0.25,
                   g2 = 0.25,
                   g3 = 0.25,
                   g4 = 0.25))
##    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## g1    5    4    6    7    5    3    5    6    5     3
## g2    4    1    6    7    6    9    8    3    4     5
## g3    8    9    3    2    4    4    4    7    5     7
## g4    3    6    5    4    5    4    3    4    6     5
# It's often more convenient to have each new sample in a row rather than a column. We can use t() to transpose the results:
rmultinom(n = 10,
          size = 20,
          prob = c(g1 = 0.25,
                   g2 = 0.25,
                   g3 = 0.25,
                   g4 = 0.25)) |> 
  t() |> 
  
  data.frame() |> 
  
  mutate(trial = row_number(),
         .before = g1)
##    trial g1 g2 g3 g4
## 1      1  5  6  3  6
## 2      2  6  3  6  5
## 3      3  6  8  2  4
## 4      4  9  1  3  7
## 5      5  4  5  4  7
## 6      6  3  8  4  5
## 7      7  3  5  5  7
## 8      8  2  3  6  9
## 9      9  5  4  7  4
## 10    10  5  6  3  6
LS0tDQp0aXRsZTogIk11bHRpbm9taWFsIERpc3RyaWJ1dGlvbiBpbiBSIg0KYXV0aG9yOiAiQ2hhcHRlciAxOiBQcm9iYWJpbGl0eSBEaXN0cmlidXRpb25zIg0KZGF0ZTogIlNUQSA0NTA0Ig0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGZpZ193aWR0aDogNg0KICAgIGZpZ19oZWlnaHQ6IDYNCiAgICBmaWdfY2FwdGlvbjogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiBubw0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIHNtb290aF9zY3JvbGw6IHllcw0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCB3YXJuaW5nID0gRiwgbWVzc2FnZSA9IEYsIGZpZy5hbGlnbiA9ICdjZW50ZXInKQ0KcGFjbWFuOjpwX2xvYWQodGlkeXZlcnNlKQ0KYGBgDQoNCg0KIyMgSW5pdGlhbCBEZXNjcmlwdGlvbjogRm91ciBEaXN0cmlidXRpb24gTGV0dGVycw0KDQpUaGUgZGlmZmVyZW50IHByb2JhYmlsaXR5IGRpc3RyaWJ1dGlvbiBmdW5jdGlvbnMgYWxsIHN0YXJ0IHdpdGggb25lIG9mIHRoZSBmb2xsb3dpbmcgNCBsZXR0ZXJzOg0KDQoxKSBkICRccmlnaHRhcnJvdyQgZGVuc2l0eTogRmluZCB0aGUgcHJvYmFiaWxpdHkgZm9yIGEgc3BlY2lmaWMgdmFsdWUgICRQKFk9YSkkDQoNCjIpIHAgJFxyaWdodGFycm93JCBGaW5kIHRoZSBwcm9iYWJpbGl0eSBmb3IgdGhlIHNwZWNpZmljIHZhbHVlIGFuZCBhbGwgdmFsdWVzIGxlc3MgdGhhbiBpdCAoYWthLCBjdW11bGF0aXZlIHByb2JhYmlsaXR5KTogJFAoWSBcbGUgYSkkDQoNCjMpIHEgJFxyaWdodGFycm93JCBxdWFudGlsZTogRmluZHMgdGhlIHNtYWxsZXN0IHZhbHVlIG9mIHRoZSByYW5kb20gdmFyaWFibGUsICRhJCwgc28gdGhhdCAkUChZIFxsZSBhKSBcZ2UgcCQNCiAgLSBJdCdzIGJhc2ljYWxseSBwIGluIHJldmVyc2U6IElmIHdlIGtub3cgdGhlIHByb2JhYmlsaXR5LCB3aGF0IGlzIHRoZSB2YWx1ZSBvZiB0aGUgcmFuZG9tIHZhcmlhYmxlPw0KDQo0KSByICRccmlnaHRhcnJvdyQgZ2VuZXJhdGUgYSB2YWx1ZSBvZiB0aGUgcmFuZG9tIHZhcmlhYmxlIFkgZ2l2ZW4gdGhlIHBhcmFtZXRlcnMNCg0KDQoNCiMjIE11bHRpbm9taWFsIERpc3RyaWJ1dGlvbiAtIFRoZSBkaXN0cmlidXRpb25zIGZvciBub24tYmluYXJ5LCBjYXRlZ29yaWNhbCBvdXRjb21lcw0KDQpUaGUgbXVsdGlub21pYWwgZGlzdHJpYnV0aW9uIGlzIGxpa2UgdGhlIGJpbm9taWFsIGRpc3RyaWJ1dGlvbiwgYnV0IGluc3RlYWQgb2YgMiBvdXRjb21lcywgaXQgaGFzIGEgdG90YWwgb2YgJEkkIG91dGNvbWVzOg0KDQokJFAoWV8xID0geV8xLCBZXzIgPSB5XzIsIC4uLiwgWV9JID0geV9pKSA9IG4hXHByb2Rfe2k9MX1eSSBcZnJhY3tccGlfaV57eV9pfX17eV9pIX0gPSANClxmcmFje24hfXt5XzEhIHlfMiEgLi4uIHlfSSF9IFxwaV8xXnt5XzF9XHBpXzJee3lfMn0uLi5ccGlfSV57eV9JfQ0KJCQNCg0KVW5saWtlIHRoZSBiaW5vbWlhbCBkaXN0cmlidXRpb24sIHRoZXJlIGFyZSBqdXN0IDIgZnVuY3Rpb25zOiANCg0KMSkgYGRiaW5vbSA9IGAgJFAoWV8xID0gYSwgWV8yID0gYiwgLi4uKSQNCg0KMikgYHJtdWx0aW5vbWAgZm9yIGdlbmVyYXRpbmcgYSByYW5kb20gc2FtcGxlIG9mIG11bHRpbm9taWFsIGRhdGENCg0KDQoNCiMjIyAxKSBgZG11bHRpbm9tKClgDQoNCmBkbXVsdGlub20oKWAgaGFzIDIgYXJndW1lbnRzIA0KDQoxKSBgeCA9IGAgd2hpY2ggaGFzIHRvIGJlIGEgdmVjdG9yIHdpdGggbGVuZ3RoIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgZGlmZmVyZW50IG91dGNvbWVzDQogIC0gSWYgaXQgaXMgYSB0cmlub21pYWwgKGllIHBvb3IvbW9kZXJhdGUvZ29vZCksIGB4YCBuZWVkcyB0byBiZSBhIHZlY3RvciB3aXRoIDMgbnVtYmVyczoNCiAgICBhKSB0aGUgbnVtYmVyIG9mIHBvb3IgcmVzdWx0cyBpbiB0aGUgc2FtcGxlDQogICAgYikgdGhlIG51bWJlciBvZiBtb2RlcmF0ZSByZXN1bHRzIGluIHRoZSBzYW1wbGUNCiAgICBjKSB0aGUgbnVtYmVyIG9mIGdvb2QgcmVzdWx0cyBpbiB0aGUgc2FtcGxlDQoNCjIpIGBwcm9iID0gYCB0aGUgdmVjdG9yIG9mIHByb2JhYmlsaXRpZXMgdGhhdCBhbiBvYnNlcnZhdGlvbiBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkNCiAgLSB0cmlub21pYWwgd2l0aCAkXHtwXzEsIHBfMiwgcF8zXH0gPSBcezAuMiwgMC41LCAwLjNcfSQNCiAgLSBNYWtlIHN1cmUgdGhhdCB0aGUgdmVjdG9yIG9mIHByb2JhYmlsaXRpZXMgc3VtcyB0byAxLCBvciBSIHdpbGwgZm9yY2UgaXQgdG8gc3VtIHRvIDEhDQoNCg0KSXQgaGFzIGFuIGBzaXplID0gYCBhcmd1bWVudCwgYnV0IGl0IHdpbGwgY2FsY3VsYXRlICROJCB0byBiZSB0aGUgc3VtIG9mIHRoZSBlbGVtZW50cyBpbiBgeGAgc28geW91IHNob3VsZG4ndCB1c2UgaXQhDQoNCg0KTGV0J3Mgc2F5IGZyb20gYSByYW5kb20gc2FtcGxlIG9mIDIwLCB0aGVyZSB3ZXJlIDQgYmFkLCAxMSBtb2RlcmF0ZSwgYW5kIDUgZ29vZCANCg0KYGBge3IgZG11bHRpbm9tfQ0KIyBEb25lIGNvcnJlY3RseSBzaW5jZSBwcm9iIHN1bXMgdG8gMToNCmRtdWx0aW5vbSh4ID0gYyggICAgICA0LCAgIDExLCAgICA1KSwgDQogICAgICAgICAgcHJvYiA9IGMoMC4yMCwgMC41MCwgMC4zMCkpDQoNCiMgRG9uZSBpbmNvcnJlY3RseTogcHJvYiA9IGMoMC4yLCAwLjQsIDAuMykNCmRtdWx0aW5vbSh4ID0gYyggICAgICA0LCAgIDExLCAgICA1KSwgDQogICAgICAgICAgcHJvYiA9IGMoMC4yMCwgMC40MCwgMC4zMCkpDQoNCg0KYGBgDQoNCklmIHRoZSBgcHJvYmAgdmVjdG9yIGRvZXNuJ3Qgc3VtIHRvIDEsIGl0IHdpbGwgIm5vcm1hbGl6ZSIgdGhlIHZlY3RvciAoYWthLCBmb3JjZSBpdCB0byBzdW0gdG8gMSk6DQoNCiQkXGxlZnRceyBcZnJhY3twXzF9e3BfMSArIHBfMiArIHBfM30sIFxmcmFje3BfMn17cF8xICsgcF8yICsgcF8zfSwgXGZyYWN7cF8zfXtwXzEgKyBwXzIgKyBwXzN9ICBccmlnaHRcfSQkDQoNCg0KIyMjIDIpIGBybXVsdGlub20oKWANCg0KYHJtdWx0aW5vbSgpYCBoYXMgMyBhcmd1bWVudHMNCg0KMSkgYG4gPSBgOiBTY2FsYXIgLSBob3cgbWFueSByYW5kb20gdmVjdG9ycyB0byBjcmVhdGUNCg0KMikgYHNpemUgPSBgOiBTY2FsYXIgLSB0aGUgdG90YWwgbnVtYmVyIG9mIHRyaWFscw0KDQozKSBgcHJvYiA9IGA6IFZlY3RvciAtIHRoZSB2ZWN0b3Igb2YgcHJvYmFiaWxpdGllcyBmb3IgZWFjaCBvdXRjb21lDQoNCg0KTGV0J3MgY3JlYXRlIDEwIHJhbmRvbSB2ZWN0b3JzIHdpdGggMjAgdHJpYWxzIGVhY2ggZm9yIDQgZ3JvdXBzIG9mIGVxdWFsIHByb2JhYmlsaXR5ICRccGlfaSA9IDAuMjUkDQoNCmBgYHtyIHJtdWxpbm9taWFsfQ0Kcm11bHRpbm9tKG4gPSAxMCxzaXplID0gMjAsIHByb2IgPSByZXAoeCA9IDAuMjUsIHRpbWVzID0gNCkpDQoNCiMgYnkgZGVmYXVsdCwgaXQgY3JlYXRlcyBhIGNvbHVtbiBmb3IgZWFjaCByYW5kb20gbXVsdGlub21pYWwgcmVzdWx0DQoNCg0KIyBJZiB5b3Ugd2FudCB0aGUgcm93cyBuYW1lZCB0byB0aGVpciBjb3JyZXNwb25kaW5nIGdyb3VwcyAoc2F5IGcxIHRvIGc0KSwgeW91IGNhbiBkbyBzbyBpbiBwcm9iID0gDQpybXVsdGlub20obiA9IDEwLA0KICAgICAgICAgIHNpemUgPSAyMCwNCiAgICAgICAgICBwcm9iID0gYyhnMSA9IDAuMjUsDQogICAgICAgICAgICAgICAgICAgZzIgPSAwLjI1LA0KICAgICAgICAgICAgICAgICAgIGczID0gMC4yNSwNCiAgICAgICAgICAgICAgICAgICBnNCA9IDAuMjUpKQ0KDQojIEl0J3Mgb2Z0ZW4gbW9yZSBjb252ZW5pZW50IHRvIGhhdmUgZWFjaCBuZXcgc2FtcGxlIGluIGEgcm93IHJhdGhlciB0aGFuIGEgY29sdW1uLiBXZSBjYW4gdXNlIHQoKSB0byB0cmFuc3Bvc2UgdGhlIHJlc3VsdHM6DQpybXVsdGlub20obiA9IDEwLA0KICAgICAgICAgIHNpemUgPSAyMCwNCiAgICAgICAgICBwcm9iID0gYyhnMSA9IDAuMjUsDQogICAgICAgICAgICAgICAgICAgZzIgPSAwLjI1LA0KICAgICAgICAgICAgICAgICAgIGczID0gMC4yNSwNCiAgICAgICAgICAgICAgICAgICBnNCA9IDAuMjUpKSB8PiANCiAgdCgpIHw+IA0KICANCiAgZGF0YS5mcmFtZSgpIHw+IA0KICANCiAgbXV0YXRlKHRyaWFsID0gcm93X251bWJlcigpLA0KICAgICAgICAgLmJlZm9yZSA9IGcxKQ0KDQoNCg0KYGBgDQoNCg0KDQoNCg0KDQoNCg==