From 0ee8c085e878282e5cae293337aae9fe2976f203 Mon Sep 17 00:00:00 2001 From: ergz Date: Wed, 14 Sep 2022 22:32:54 -0700 Subject: [PATCH] more work done --- R/ch2.html | 460 +++++++++++------- R/ch2.qmd | 122 ++++- R/ch2_files/figure-html/echo-false-1.png | Bin 0 -> 19803 bytes .../figure-html/unnamed-chunk-11-1.png | Bin 16142 -> 16100 bytes .../figure-html/unnamed-chunk-20-1.png | Bin 0 -> 13816 bytes .../figure-html/unnamed-chunk-25-1.png | Bin 0 -> 25052 bytes R/ch2_files/figure-html/unnamed-chunk-6-1.png | Bin 12243 -> 12132 bytes 7 files changed, 400 insertions(+), 182 deletions(-) create mode 100644 R/ch2_files/figure-html/echo-false-1.png create mode 100644 R/ch2_files/figure-html/unnamed-chunk-20-1.png create mode 100644 R/ch2_files/figure-html/unnamed-chunk-25-1.png diff --git a/R/ch2.html b/R/ch2.html index 9acd4e7..f8e98c2 100644 --- a/R/ch2.html +++ b/R/ch2.html @@ -98,25 +98,30 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni - + + + - +
- +
@@ -190,8 +195,8 @@ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warni 2 real 90 0.6
-

If we let \(B\) be the event that a news article is “fake” news, and \(B^c\) be the event that a news article is “real”, we can write the following:

-

\[P(B) = .4\] \[P(B^c) = .6\]

+

If we let B be the event that a news article is “fake” news, and B^c be the event that a news article is “real”, we can write the following:

+

P(B) = .4 P(B^c) = .6

This is the first “clue” or set of data that we have to build into our framework. Namely, majority of articles are “real”, therefore we could simply predict that the new article is “real”. This updated sense or reality now becomes our priors.

Getting additional data, and updating our priors, based on additional data. The new observation we make is the use of exclamation marks “!”. We note that the use of “!” is more frequent in news articles labeled as “fake”. We will want to incorporate this into our framework to decide whether the new incoming should be labelled as real or fake.

@@ -206,14 +211,14 @@ Probability and Likelihood
-

When the event \(B\) is known, then we can evaluate the uncertainy of events \(A\) and \(A^c\) given \(B\)

-

\[P(A|B) \text{ vs } P(A^c|B)\]

-

If on the other hand, we know event \(A\) then we can evaluate the relative compatability of data \(A\) with \(B\) and \(B^c\) using likelihood functions

-

\[L(B|A) \text{ vs } L(B^c|A)\] \[=P(A|B) \text{ vs } P(A|B^c)\]

+

When the event B is known, then we can evaluate the uncertainy of events A and A^c given B

+

P(A|B) \text{ vs } P(A^c|B)

+

If on the other hand, we know event A then we can evaluate the relative compatability of data A with B and B^c using likelihood functions

+

L(B|A) \text{ vs } L(B^c|A) =P(A|B) \text{ vs } P(A|B^c)

So in our case, we don’t know whether this new incoming article is real or not, but we do know that the title has an exclamation mark. This means we can evaluate how likely this article is real or not given that it contains an “!” in the title using likelihood functions. We can formualte this as:

-

\[L(B|A) \text{ vs } L(B^c|A)\]

+

L(B|A) \text{ vs } L(B^c|A)

And perform the computation in R as follows:

# if fake, what are the proprotions of ! vs no-!
@@ -241,12 +246,12 @@ Probability and Likelihood
     gt::cols_width(everything() ~ px(100))
-
+
@@ -674,14 +679,14 @@ Probability and Likelihood
-

The table above also shows the likelihoods for the case when an article does not contain exclamation point in the title as well. It’s really important to note that these are likelihoods, and its not the case that \(L(B|A) + L(B^c|A) = 1\) as a matter of fact this value evaluates to a number less than one. However, since we have that \(L(B|A) = .267\) and \(L(B^c|A) = .022\) then we have gained additional knowledge in knowing the use of “!” in a title is more compatible with a fake news article than a real one.

+

The table above also shows the likelihoods for the case when an article does not contain exclamation point in the title as well. It’s really important to note that these are likelihoods, and its not the case that L(B|A) + L(B^c|A) = 1 as a matter of fact this value evaluates to a number less than one. However, since we have that L(B|A) = .267 and L(B^c|A) = .022 then we have gained additional knowledge in knowing the use of “!” in a title is more compatible with a fake news article than a real one.

Up to this point we can summarize our framework as follows

- - + + @@ -705,20 +710,20 @@ Probability and Likelihood - - + + - + - + @@ -732,32 +737,32 @@ Probability and Likelihood
event\(B\)\(B^c\)BB^c Total
\(B\)\(B^c\)BB^c Total
\(A\)A (1) (2)
\(A^c\)A^c (3) (4)

A couple things to note about our table (1) + (3) = .4 and (2) + (4) = .6. (1) + (2) + (3) + (4) = 1.

-

(1.) \(P(A \cap B) = P(A|B)P(B)\) we know the likelihood of \(L(B|A) = P(A|B)\) and we also know the prior so we insert these to get \[ P(A \cap B) = P(A|B)P(B) = .267 \times .4 = .1068\]

-

(3.) \(P(A^c \cap B) = P(A^c|B)P(B)\) in this case we do know the prior \(P(B) = .4\), but we don’t directly know the value of \(P(A^c|B)\), however, we note that \(P(A|B) + P(A^c|B) = 1\), therefore we compute \(P(A^c|B) = 1 - P(A|B) = 1 - .267 = .733\) \[ P(A^c \cap B) = P(A^c|B)P(B) = .733 \times .4 = .2932\]

-

we now can confirm that \(.1068 + .2932 = .4\)

+

(1.) P(A \cap B) = P(A|B)P(B) we know the likelihood of L(B|A) = P(A|B) and we also know the prior so we insert these to get P(A \cap B) = P(A|B)P(B) = .267 \times .4 = .1068

+

(3.) P(A^c \cap B) = P(A^c|B)P(B) in this case we do know the prior P(B) = .4, but we don’t directly know the value of P(A^c|B), however, we note that P(A|B) + P(A^c|B) = 1, therefore we compute P(A^c|B) = 1 - P(A|B) = 1 - .267 = .733 P(A^c \cap B) = P(A^c|B)P(B) = .733 \times .4 = .2932

+

we now can confirm that .1068 + .2932 = .4

Moving on to (2), (4)

-

(2.) \(P(A \cap B^c) = P(A|B^c)P(B^c)\). In this case know the likelihood \(L(B^c|A) = P(A|B^c)\) and we know the prior \(P(B^c)\) therefore, \[P(A \cap B^c) = P(A|B^c)P(B^c) = .022 \times .6 = .0132\]

-

(4.) \(P(A^c \cap B^c) = P(A^c|B^c)P(B^c) = (1 - .022) \times .6 = .5868\)

-

and can confirm that \(.0132 + .5868 = .6\)

+

(2.) P(A \cap B^c) = P(A|B^c)P(B^c). In this case know the likelihood L(B^c|A) = P(A|B^c) and we know the prior P(B^c) therefore, P(A \cap B^c) = P(A|B^c)P(B^c) = .022 \times .6 = .0132

+

(4.) P(A^c \cap B^c) = P(A^c|B^c)P(B^c) = (1 - .022) \times .6 = .5868

+

and can confirm that .0132 + .5868 = .6

and we can fill the rest of the table:

- - + + - + - + @@ -782,7 +787,7 @@ total probability

The total probability of observing a real article is made up the sum of its parts. Namely

-

\[P(B^c) = P(A \cap B^c) + P(A^c \cap B^c)\] \[=P(A|B^c)P(B^c) + P(A^c|B^c)P(B^c)\] \[=.0132 + .5868 = .6\]

+

P(B^c) = P(A \cap B^c) + P(A^c \cap B^c) =P(A|B^c)P(B^c) + P(A^c|B^c)P(B^c) =.0132 + .5868 = .6

In the above calculations we also step through joint probabilities

@@ -796,15 +801,15 @@ Joint and conditional probability
-

\[P(A \cap B) = P(A|B)P(B)\]

-

\(A\) and \(B\) are said to be independent events, if and only if

-

\[P(A \cap B) = P(A)P(B)\]

+

P(A \cap B) = P(A|B)P(B)

+

A and B are said to be independent events, if and only if

+

P(A \cap B) = P(A)P(B)

from this we can also derive the definition of a conditional probability

-

\[P(A|B) = \frac{P(A \cap B)}{P(B)}\]

+

P(A|B) = \frac{P(A \cap B)}{P(B)}

-

At this point we are able to answer the question, “What is the probability, the new article is fake?”. Given that the new article has an exclamation point, we can zoom into the top row of the table of probabilitties. Within this row we have probabilities \(.1068/.12 = .833\) for fake and \(.0132 / .12 = .11\) for real.

-

This is essentially Baye’s Rule. We developed a posterior probability for an event \(B\) given some observation \(A\). We did so by combining the likelihood of event \(B\) given some new data \(A\) and the prior probability of event \(B\). More formally we have the following definition:

+

At this point we are able to answer the question, “What is the probability, the new article is fake?”. Given that the new article has an exclamation point, we can zoom into the top row of the table of probabilitties. Within this row we have probabilities .1068/.12 = .833 for fake and .0132 / .12 = .11 for real.

+

This is essentially Baye’s Rule. We developed a posterior probability for an event B given some observation A. We did so by combining the likelihood of event B given some new data A and the prior probability of event B. More formally we have the following definition:

@@ -815,11 +820,11 @@ Baye’s Rule
-

The posterior probability of an event \(B\) given a \(A\) is:

-

\[ P(B|A) = \frac{P(A \cap B)}{P(A)} = \frac{L(B|A)P(B)}{P(A)}\]

-

where \(L\) is the likelihood function \(L(B|A) = P(B|A)\) and \(P(A)\) is the total probability of \(A\).

+

The posterior probability of an event B given a A is:

+

P(B|A) = \frac{P(A \cap B)}{P(A)} = \frac{L(B|A)P(B)}{P(A)}

+

where L is the likelihood function L(B|A) = P(B|A) and P(A) is the total probability of A.

More generally,

-

\[ \frac{likelihood \cdot prior}{normalizing \;\; constant}\]

+

\frac{likelihood \cdot prior}{normalizing \;\; constant}

@@ -851,12 +856,12 @@ Baye’s Rule gt::cols_width(everything() ~ px(100))
-
+
@@ -1272,11 +1277,11 @@ Baye’s Rule
- - + + - - + + @@ -1313,8 +1318,8 @@ Baye’s Rule # Groups: usage [2] usage fake real <chr> <int> <int> -1 no 2942 5856 -2 yes 1069 133 +1 no 3026 5732 +2 yes 1104 138
@@ -1341,19 +1346,19 @@ Baye’s Rule
# A tibble: 2 × 3
   type  total  prop
   <chr> <int> <dbl>
-1 fake   1069 0.889
-2 real    133 0.111
+1 fake 1104 0.889 +2 real 138 0.111

Binomial Model and the chess example

The example used here is the case of a chess match between a human and a computer “Deep Blue”. The set up is such that we know the two faced each other in 1996, in which the human won. There is a rematch scheduled for the next 1997. We would like to model the number of games out of 6 that the human can win.

-

Let \(\pi\) be the probability that the human wins any one match against the computer. To simplify things greatly we assume that \(\pi\) takes on values of .2, .5, .8. We also assume the following prior (we are told in the book that we will learn how to build these later on):

+

Let \pi be the probability that the human wins any one match against the computer. To simplify things greatly we assume that \pi takes on values of .2, .5, .8. We also assume the following prior (we are told in the book that we will learn how to build these later on):

\(B\)\(B^c\)BB^c Total
\(A\)A .1068 .0132 .12
\(A^c\)A^c .2932 .5868 .88
fake40110.4011
41300.413
real59890.5989
58700.587
- + @@ -1362,7 +1367,7 @@ Baye’s Rule - + @@ -1380,7 +1385,7 @@ Note
-

its important to note here that the sum of the values of \(\pi\) do not add up to 1. \(\pi\) represents the chances of winning any single game, we would expect \(\pi\) to take on any value in \(\mathbb{R}\). On the other hand \(f\) is a function that maps \(\pi\) into a space of probabilities, this is next.

+

its important to note here that the sum of the values of \pi do not add up to 1. \pi represents the chances of winning any single game, we would expect \pi to take on any value in \mathbb{R}. On the other hand f is a function that maps \pi into a space of probabilities, this is next.

@@ -1393,11 +1398,11 @@ Discrete Probability Model
-

Let \(Y\) be a discrete random variable. The probability model for \(Y\) is described by a probability mass function (pmf) defined as: \[f(y) = P(Y = y)\]

+

Let Y be a discrete random variable. The probability model for Y is described by a probability mass function (pmf) defined as: f(y) = P(Y = y)

and has the following properties

    -
  1. \(0 \leq f(y) \leq 1\;\; \forall y\)
  2. -
  3. \(\sum_{\forall y}f(y) = 1\)
  4. +
  5. 0 \leq f(y) \leq 1\;\; \forall y
  6. +
  7. \sum_{\forall y}f(y) = 1
@@ -1411,26 +1416,26 @@ in emanuel’s words
-

what does this mean? well its very straightforward a pmf is a function that takes in a some value y and outputs the probability that the random variable \(Y\) equals \(y\).

+

what does this mean? well its very straightforward a pmf is a function that takes in a some value y and outputs the probability that the random variable Y equals y.

-

next we would like add a the dependancy of \(Y\) on \(\pi\), we do so by introducing the conditional pmf.

+

next we would like add a the dependancy of Y on \pi, we do so by introducing the conditional pmf.

-Conditional probability model of data \(Y\) +Conditional probability model of data Y
-

Let \(Y\) be a discrete random variable that depends on some parameter \(\pi\). We define the conditional probability model of \(Y\) as the conditional pmf,

-

\[f(y|\pi) = P(Y = y | \pi)\]

+

Let Y be a discrete random variable that depends on some parameter \pi. We define the conditional probability model of Y as the conditional pmf,

+

f(y|\pi) = P(Y = y | \pi)

and has the following properties,

    -
  1. \(0 \leq f(y|\pi) \leq 1\;\; \forall y\)
  2. -
  3. \(\sum_{\forall y}f(y|\pi) = 1\)
  4. +
  5. 0 \leq f(y|\pi) \leq 1\;\; \forall y
  6. +
  7. \sum_{\forall y}f(y|\pi) = 1
@@ -1444,7 +1449,7 @@ in emanuel’s words
-

this is essentially the same probability model had defined above, except now we are condition probabilities by some parameter \(\pi\)

+

this is essentially the same probability model had defined above, except now we are condition probabilities by some parameter \pi

in the example of the chess player we must make some assumptions:

@@ -1463,17 +1468,17 @@ The Binomial Model
-

Let the random variable \(Y\) represent the number of successes in \(n\) trials. Assume that each trial is independent, and the probability of sucess in a given trial is \(\pi\). Then the conditional dependence of \(Y\) on \(\pi\) can be modeled by the Binomial Model with parameters \(n\) and \(\pi\). We can write this as,

-

\[Y|\pi \sim Bin(n, \pi)\]

+

Let the random variable Y represent the number of successes in n trials. Assume that each trial is independent, and the probability of sucess in a given trial is \pi. Then the conditional dependence of Y on \pi can be modeled by the Binomial Model with parameters n and \pi. We can write this as,

+

Y|\pi \sim Bin(n, \pi)

the binomial model is specified by the pmf:

-

\[f(y|\pi) = {n \choose y} \pi^y(1 - \pi)^{n-y}\]

+

f(y|\pi) = {n \choose y} \pi^y(1 - \pi)^{n-y}

-

knowing this we can represent \(Y\) the total number of matches out of 6 that the human can win.

-

\[Y|\pi \sim Bin(6, \pi)\]

+

knowing this we can represent Y the total number of matches out of 6 that the human can win.

+

Y|\pi \sim Bin(6, \pi)

and conditional pmf:

-

\[f(y|\pi) = {6 \choose y}\pi^y(1 - \pi)^{6 - y}\;\; \text{for } y \in \{1, 2, 3, 4, 5, 6\}\]

-

with the pmf we can now determine the probability of the human winning \(Y\) matches out of 6 for any given value of \(\pi\)

+

f(y|\pi) = {6 \choose y}\pi^y(1 - \pi)^{6 - y}\;\; \text{for } y \in \{1, 2, 3, 4, 5, 6\}

+

with the pmf we can now determine the probability of the human winning Y matches out of 6 for any given value of \pi

chess_pmf <- function(y, p, n = 6) {
     choose(n, y) * (p ^ y) * (1 - p)^(n - y)
@@ -1495,7 +1500,7 @@ The Binomial Model
 
-

the formula for the binomial is actually pretty intuitive, first you have the scalar \({n \choose y}\) this will determine the total number of ways the player can win \(y\) games out of the possible \(n\). This is first multiplied by the probablility of success in the \(n\) trials since \((p ^ y)\) can be re-written as \(p\times p\times \cdots \times p\), and then multiplied by the probability of \(n-y\) failures \((1 - p)^{n - y}\)

+

the formula for the binomial is actually pretty intuitive, first you have the scalar {n \choose y} this will determine the total number of ways the player can win y games out of the possible n. This is first multiplied by the probablility of success in the n trials since (p ^ y) can be re-written as p\times p\times \cdots \times p, and then multiplied by the probability of n-y failures (1 - p)^{n - y}

@@ -1529,8 +1534,8 @@ The Binomial Model

-

The plot shows the three possible values for \(\pi\) along with the value of the pmf for each of the possible matches the human can win in a game. The values of \(f(y|\pi)\) are pretty intuitive, we would expect the random variable \(Y\) to be lower when the value of \(\pi\) is lower and higher when the value of \(\pi\) is higher.

-

For the sake of the excercise lets add more values of \(\pi\) so that we can see this shift happen in more detail.

+

The plot shows the three possible values for \pi along with the value of the pmf for each of the possible matches the human can win in a game. The values of f(y|\pi) are pretty intuitive, we would expect the random variable Y to be lower when the value of \pi is lower and higher when the value of \pi is higher.

+

For the sake of the excercise lets add more values of \pi so that we can see this shift happen in more detail.

pies <- seq(.1, .9, by = .1)
 ys <- 0:6
@@ -1550,7 +1555,7 @@ The Binomial Model
 

-

as it turns out we learn that the human ended up winning just one game in the 1997 rematch, \(Y = 1\). The next step in our analysis is to determine how compatible this new data is with each value of \(\pi\), the likelihood that is.

+

as it turns out we learn that the human ended up winning just one game in the 1997 rematch, Y = 1. The next step in our analysis is to determine how compatible this new data is with each value of \pi, the likelihood that is.

This is very easy to do with all the work we have done so far:

d |>
@@ -1583,11 +1588,11 @@ Important
 
-

this has been mentioned before but its an important message to drive home. Note that the reason why thes values sum to a value greater than 1 is that they are not probabilities, they are likelihoods. We are determining how likely each value of \(\pi\) is given that we have observed \(Y = 1\).

+

this has been mentioned before but its an important message to drive home. Note that the reason why the values sum to a value greater than 1 is that they are not probabilities, they are likelihoods. We are determining how likely each value of \pi is given that we have observed Y = 1.

-

We can formalize the likelihood function \(L\) in our example as follows:

-

\[L(\pi|y=1) = f(y=1|\pi) = {6 \choose 1}\pi^1(1-\pi)^{6-1}\] \[ = 6\pi(1 - \pi)^5\]

+

We can formalize the likelihood function L in our example as follows:

+

L(\pi|y=1) = f(y=1|\pi) = {6 \choose 1}\pi^1(1-\pi)^{6-1} = 6\pi(1 - \pi)^5

We can test this out

6 * .2 * (.8 ^ 5)
@@ -1595,8 +1600,13 @@ Important
[1] 0.393216
-

which is the value we get as .2 in the bar plot above.

-

the likelihood values for \(Y = 1\) are here:

+

which is the value we get as .2 in the bar plot.

+
+
+

+
+
+

the likelihood values for Y = 1 are here:

d |>
     filter(ys == 1)|>
@@ -1661,6 +1671,98 @@ Important
 
\(\pi\)\pi .2 .5 .8
\(f(\pi)\)f(\pi) .10 .25 .65
+

The overall take-away from having observed the new data Y=1 is that it is most compatible with a the \pi value of .2, this means that its safe to assume that the human is a weaker player since we can think of the value \pi as a measure of relative weakness/superior of the human compared to the computer with 0 being the weakest and 1 being the strongest.

+
+
+
+ +
+
+Probability mass functions vs likelihood functions +
+
+
+

When \pi is known the conditional pmf f(\cdot | \pi) allows us to compare the probabilities of the different values of Y occuring with \pi

+

On the other hand when Y = y is known the likelihood function L(\cdot|Y=y) = f(Y=y|\cdot) allows us to compare relative likelihoods of observing data y under different values of \pi

+
+
+

Now that we have the priors for \pi and the likelihoods for Y=1 all we need is the normalizing constant to make use of Beye’s Rule in order to update our priors with this new information and develop our posterior. Recall that the normalizing constant is just the total probability of observing Y = 1. To get this we simply calculate the probability of observing Y = 1 for all values of \pi and weight each one of these by the corresponding prior of each value \pi.

+

f(y = 1) = f(Y=1|\pi = .2)f(\pi = .2) + f(Y=1|\pi = .5)f(\pi = .5) + f(Y = 1|\pi = .8)f(\pi=.8) \approx .637

+
+

Posterior

+

Our posterior distribution has pmf:

+

f(\pi|y = 1)

+

we can write this out as:

+

f(\pi | y = 1) = \frac{f(\pi)\times L(\pi| y = 1)}{f(y = 1)}

+

for \pi \in \{0.2, 0.5, 0.8\}

+

using just our simplified set of \pi values we have the following posterior:

+ + + + + + + + + + + + + + + + + + + +
\pi0.20.50.8Total
f(\pi)0.100.250.651
+
+
+

Chess Posterior Simulation

+

Set up the scenario, we have possible values of \pi and the corresponding prior probability for each one

+
+
chess <- tibble::tibble(pi = c(.2, .5, .8))
+prior <- c(.1, .25, .65)
+
+

next we sample use a sample function to generate 10,000 different values of \pi from our dataframe, we will use each of these to simuate a 6 match game.

+
+
chess_sim <- sample_n(chess, size = 10000, weight = prior, 
+replace = TRUE)
+
+

Simulate 10,000 games

+
+
chess_sim <- chess_sim |>
+    mutate(y = rbinom(10000, size = 6, prob = pi))
+
+

Lets check how close this simulation is to our known confitional pmf’s

+
+
chess_sim |>
+    ggplot(aes(x = y)) + 
+    stat_count(aes(y = ..prop..)) + 
+    facet_wrap(~pi)
+
+

+
+
+

Let’s now focus on the events where Y = 1 and tally up results to see how well these approximated the values we formally computed as our posterior.

+
+
chess_sim |>
+    filter(y == 1) |>
+    group_by(pi) |>
+    tally() |>
+    mutate(
+        prop = n / sum(n)
+    )
+
+
# A tibble: 3 × 3
+     pi     n   prop
+  <dbl> <int>  <dbl>
+1   0.2   401 0.631 
+2   0.5   224 0.352 
+3   0.8    11 0.0173
+
+
+
diff --git a/R/ch2.qmd b/R/ch2.qmd index 975e471..aa7058b 100644 --- a/R/ch2.qmd +++ b/R/ch2.qmd @@ -11,7 +11,8 @@ format: css: styles.css callout-icon: false callout-apperance: simple - toc: true + toc: false + html-math-method: katex --- *Note: these notes are a work in progress* @@ -537,7 +538,7 @@ d |> :::{.callout-important icon="true"} this has been mentioned before but its an important message -to drive home. Note that the reason why thes values sum to a +to drive home. Note that the reason why the values sum to a value greater than 1 is that they are **not** probabilities, they are likelihoods. We are determining how likely each value of $\pi$ is given that we have observed $Y = 1$. @@ -554,7 +555,20 @@ We can test this out ```{r} 6 * .2 * (.8 ^ 5) ``` -which is the value we get as .2 in the bar plot above. +which is the value we get as .2 in the bar plot. + +```{r} +#| echo: false + +d |> + filter(ys == 1) |> + mutate(hl = ifelse(pies == .2, "y", "n")) |> + ggplot(aes(pies, fys, fill=hl)) + + geom_col() + + scale_x_continuous(breaks = seq(.1, .9, by = .1)) + + scale_fill_manual(values = c("y"="darkblue", "n"="darkgrey"), guide=FALSE) +``` + the likelihood values for $Y = 1$ are here: @@ -565,5 +579,107 @@ d |> knitr::kable() ``` +The overall take-away from having observed the new data +$Y=1$ is that it is most compatible with a the $\pi$ value +of .2, this means that its safe to assume that the human is +a weaker player since we can think of the value $\pi$ as +a measure of relative weakness/superior of the human compared +to the computer with 0 being the weakest and 1 being the +strongest. + +:::{.callout-note} +## Probability mass functions vs likelihood functions + +When $\pi$ is known the conditional pmf $f(\cdot | \pi)$ +allows us to compare the probabilities of the different values +of $Y$ occuring with $\pi$ + +On the other hand when $Y = y$ is known the likelihood +function $L(\cdot|Y=y) = f(Y=y|\cdot)$ allows us to compare +relative likelihoods of observing data $y$ under different +values of $\pi$ +::: + +Now that we have the priors for $\pi$ and the likelihoods +for $Y=1$ all we need is the **normalizing constant** +to make use of Beye's Rule in order to update our priors +with this new information and develop our posterior. Recall that the normalizing +constant is just the total probability of observing $Y = 1$. +To get this we simply calculate the probability of observing +$Y = 1$ for all values of $\pi$ and weight each one of these +by the corresponding prior of each value $\pi$. + +$$f(y = 1) = f(Y=1|\pi = .2)f(\pi = .2)$$ +$$+ f(Y=1|\pi = .5)f(\pi = .5) + f(Y = 1|\pi = .8)f(\pi=.8)$$ +$$\approx .637$$ + +### Posterior + +Our posterior distribution has pmf: + +$$f(\pi|y = 1)$$ + +we can write this out as: + +$$f(\pi | y = 1) = \frac{f(\pi)\times L(\pi| y = 1)}{f(y = 1)}$$ + +for $\pi \in \{0.2, 0.5, 0.8\}$ + +using just our simplified set of $\pi$ values we have the following +posterior: + +| $\pi$ | 0.2 | 0.5 | 0.8 | Total | +|-------|-----|-----|-----|-------| +|$f(\pi)$ | 0.10 | 0.25 | 0.65 | 1 | +### Chess Posterior Simulation + +Set up the scenario, we have possible values of $\pi$ +and the corresponding prior probability for each one + +```{r} +chess <- tibble::tibble(pi = c(.2, .5, .8)) +prior <- c(.1, .25, .65) +``` + +next we sample use a sample function to generate 10,000 +different values of $\pi$ from our dataframe, we will use +each of these to simuate a 6 match game. + +```{r} +chess_sim <- sample_n(chess, size = 10000, weight = prior, +replace = TRUE) +``` + +Simulate 10,000 games + +```{r} +chess_sim <- chess_sim |> + mutate(y = rbinom(10000, size = 6, prob = pi)) +``` + +Lets check how close this simulation is to our known +confitional pmf's + +```{r} +chess_sim |> + ggplot(aes(x = y)) + + stat_count(aes(y = ..prop..)) + + facet_wrap(~pi) +``` + +Let's now focus on the events where $Y = 1$ and tally up +results to see how well these approximated the values +we formally computed as our posterior. + +```{r} +chess_sim |> + filter(y == 1) |> + group_by(pi) |> + tally() |> + mutate( + prop = n / sum(n) + ) +``` + diff --git a/R/ch2_files/figure-html/echo-false-1.png b/R/ch2_files/figure-html/echo-false-1.png new file mode 100644 index 0000000000000000000000000000000000000000..06ada31a29f085515fd9c4b7f4b48c6e0602228c GIT binary patch literal 19803 zcmeG^30RZYmN7&KpaxuufDjNZib}L1lr=#>u!y)*ixOKEZ~;_QAS^KjxAIslDk?%^ zT~M)NML`Woa6?2O!KDZh0vI5GkU&EAl% zkFQ$kJJG<*00x6iT<+(+1_m3CgTZvlkUF5`@jaVv7;K!!suk;ez`rn<3k((tgQdb; zTwpGtFqceNXz}93i$STTK=XvUgn~EICA8Qj6TIvI%@Y|AkRA{j84wA676hbMfG$Ae zP#0JzXb_qinpqrL%nmJvKs`+@&66IPUJ#jH5m~@Z2aO}a3knL-3o6n9O_b>3EogmMa{!5W`h?h zhMQcXu{Ag7z?ErN5KDvSJX;asvLNlslpo~FcoSajUAuJ0jzx>D_cxSp z`)W&>BArN2|KR)b_u{&jwBMVUgqsSTl~XbHy)pPar)LzOcCE8t!u1SEk*9tB~4y>Z1E?nPFcW$ zb{*?$9d@zBhtYs z8`^HKY`6M10csOGQQXoODQS8ZgjMpSzcLGx=HIB?evN+rIlmIuOfYLhzA3$L zKJeDg(URnGpX&O;DTyF^%9r0#W9 z;L(=egudDm*~~Q)K8}<#g;x}RG`lxDK_(EjDf)Hr9^L}qSt*&$Hj{bkDZc=Mx_#~4 zHxx`$#eV36@Iq-yMoXVO%F@dBs&4;eHTOgJ@-X6Y+}7CL9Jir`4>-|d_9rLb#Q57}BcndEpgEoR}_AhbpRBk!2U zpF-Z*8&R74yi`7{(Y!72rljq9Z?U3%7^G>oJ`}@{bllN5%aO+onYd`gPAI$QGLcXC z2vNo2f8J>Sf(X!p^!Jd77E4+z{j;_lEiGwj>2K3g@KjzADkFv}@d!!c6-Dt6#;99` zyBKfANKmIaEZdlvFj;vZK7sd8Z9{b;5(Xp8)fjqBoWwAw`|&Q!TeJn^ zz`zSXv0ahsMD|q1e{u9JK3cr|C>*FH>wr$bVT~e

q8aefo^auDpCh%BS3xdvFyE>R1vbh7;hB*{+zts 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 SEkhW1miw&qzPWVEkN*LQKdCAJ literal 0 HcmV?d00001 diff --git a/R/ch2_files/figure-html/unnamed-chunk-11-1.png b/R/ch2_files/figure-html/unnamed-chunk-11-1.png index f58d8659287a0945009bcdbb5c1e57746681e7c4..264db2b5ec10343770b0f7b1034dd3454151e341 100644 GIT binary patch literal 16100 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 literal 0 HcmV?d00001 diff --git a/R/ch2_files/figure-html/unnamed-chunk-25-1.png b/R/ch2_files/figure-html/unnamed-chunk-25-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3270590131dbdaadf82317ba1d66a11327c17679 GIT binary patch literal 25052 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 a%UcIZ=~+BU3i4MPEVk|3dTsM}VgCU~Ijju; literal 0 HcmV?d00001 diff --git a/R/ch2_files/figure-html/unnamed-chunk-6-1.png b/R/ch2_files/figure-html/unnamed-chunk-6-1.png index cfb1e1ead4bc165fb4e5628cb3cdc2bb2850b614..e6fa0908a32bd5e5669af7ac56ccbb0c542984b1 100644 GIT binary patch literal 12132 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