Learn

In the last exercise, we calculated that there were 500 site visitors to live-it-LIVE.com this month and 41 of them made a purchase. In comparison, if each of the 500 visitors had a 10% chance of making a purchase, we would expect around 50 of those visitors to buy something. Is 41 different enough from 50 that we should question whether this months’ site visitors really had a 10% chance of making a purchase?

To conceptualize why our expectation (50) and observation (41) might not be equal — EVEN IF there was no dip in the purchase probability — let’s turn to a common probability example: flipping a fair coin. We can simulate a coin flip in Python using the `numpy.random.choice()` function:

``````flip = np.random.choice(['heads', 'tails'], size=1, p=[0.5, 0.5])
print(flip)
## output is either ['heads'] or ['tails']``````

If we run this code (or flip a real coin) a few times, we’ll find that — just like we can’t know ahead of time whether any single visitor to Live-it-LIVE.com will make a purchase — we can’t predict the outcome of any individual coin flip.

If we flip a fair coin 10 times in a row, we expect about 5 of those coins to come up heads (50%). We can simulate this in python by changing the `size` parameter of `numpy.random.choice()`:

``````flip = np.random.choice(['heads', 'tails'], size=10, p=[0.5, 0.5])
print(flip)

If you try this yourself, it’s perfectly reasonable that you’ll get only four heads, or maybe six or seven! Because this is a random process, we can’t guarantee that exactly half of our coin flips will come up heads. Similarly, even if each Live-it-LIVE visitor has a 10% chance of making a purchase, that doesn’t mean we expect exactly 10% to do so in any given sample.

### Instructions

1.

In script.py, use the `random.choice()` function from NumPy to simulate a single visitor to Live-it-LIVE.com, who has a 10% chance of making a purchase (p=0.1). Save the outcome as a variable named `one_visitor` and print it. If the visitor made a purchase, the value of `one_visitor` should be `['y']`; if they did not make a purchase, it should be `['n']` (just like in the original data!).

Did that one simulated visitor make a purchase? Try pressing “Run” a few more times and see if you ever observe a different outcome. (Note that you’ll see an error for the next checkpoint if you press run a few times; don’t worry about that!).

2.

Now, create a new list named `simulated_monthly_visitors`, which contains the randomly-generated outcomes for 500 visitors to Live-it-LIVE.com (still with a 10% chance of a purchase). Print `simulated_monthly_visitors` out. Do you see any visitors in this list who made a purchase?