← return to practice.dsc10.com

The problems in this worksheet are taken from past exams. Work on
them **on paper**, since the exams you take in this course
will also be on paper.

We encourage you to complete this
worksheet in a live discussion section. Solutions will be made available
after all discussion sections have concluded. You don’t need to submit
your answers anywhere.**Note: We do not plan to cover all
problems here in the live discussion section**; the problems we don’t
cover can be used for extra practice.

Oren has a random sample of 200 dog prices in an array called
`oren`

. He has also bootstrapped his sample 1,000 times and
stored the mean of each resample in an array called
`boots`

.

In this question, assume that the following code has run:

```
= np.mean(oren)
a = np.std(oren)
b = len(oren) c
```

What expression best estimates the population’s standard deviation?

`b`

`b / c`

`b / np.sqrt(c)`

`b * np.sqrt(c)`

**Answer: ** `b`

The function `np.std`

directly calculated the standard
deviation of array `oren`

. Even though `oren`

is
sample of the population, its standard deviation is still a pretty good
estimate for the standard deviation of the population because it is a
random sample. The other options don’t really make sense in this
context.

The average score on this problem was 57%.

Which expression best estimates the mean of `boots`

?

0

`a`

`(oren - a).mean()`

`(oren - a) / b`

**Answer: ** `a`

Note that `a`

is equal to the mean of `oren`

,
which is a pretty good estimator of the mean of the overall population
as well as the mean of the distribution of sample means. The other
options don’t really make sense in this context.

The average score on this problem was 89%.

What expression best estimates the standard deviation of
`boots`

?

`b`

`b / c`

`b / np.sqrt(c)`

`(a -b) / np.sqrt(c)`

**Answer: ** `b / np.sqrt(c)`

Note that we can use the Central Limit Theorem for this problem which
states that the standard deviation (SD) of the distribution of sample
means is equal to `(population SD) / np.sqrt(sample size)`

.
Since the SD of the sample is also the SD of the population in this
case, we can plug our variables in to see that
`b / np.sqrt(c)`

is the answer.

The average score on this problem was 91%.

What is the dog price of $560 in standard units?

`(560 - a) / b`

`(560 - a) / (b / np.sqrt(c))`

`(a - 560) / (b / np.sqrt(c))}`

`abs(560 - a) / b`

`abs(560 - a) / (b / np.sqrt(c))`

**Answer: ** `(560 - a) / b`

To convert a value to standard units, we take the value, subtract the
mean from it, and divide by SD. In this case that is
`(560 - a) / b`

, because `a`

is the mean of our
dog prices sample array and `b`

is the SD of the dog prices
sample array.

The average score on this problem was 80%.

The distribution of `boots`

is normal because of the
Central Limit Theorem.

True

False

**Answer: ** True

True. The central limit theorem states that if you have a population and you take a sufficiently large number of random samples from the population, then the distribution of the sample means will be approximately normally distributed.

The average score on this problem was 91%.

If Oren’s sample was 400 dogs instead of 200, the standard deviation
of `boots`

will…

Increase by a factor of 2

Increase by a factor of \sqrt{2}

Decrease by a factor of 2

Decrease by a factor of \sqrt{2}

None of the above

**Answer: ** Decrease by a factor of \sqrt{2}

Recall that the central limit theorem states that the STD of the
sample distribution is equal to
`(population STD) / np.sqrt(sample size)`

. So if we increase
the sample size by a factor of 2, the STD of the sample distribution
will decrease by a factor of \sqrt{2}.

The average score on this problem was 80%.

If Oren took 4000 bootstrap resamples instead of 1000, the standard
deviation of `boots`

will…

Increase by a factor of 4

Increase by a factor of 2

Decrease by a factor of 2

Decrease by a factor of 4

None of the above

**Answer: ** None of the above

Again, from our formula given by the central limit theorem, the
sample STD doesn’t depend on the number of bootstrap resamples so long
as it’s “sufficiently large”. Thus increasing our bootstrap sample from
1000 to 4000 will have no effect on the std of `boots`

The average score on this problem was 74%.

Write one line of code that evaluates to the **right
endpoint** of a 92% CLT-Based confidence interval for the mean
dog price. The following expressions may help:

```
1.75) # => 0.96
stats.norm.cdf(1.4) # => 0.92 stats.norm.cdf(
```

**Answer: ** `a + 1.75 * b / np.sqrt(c)`

Recall that a 92% confidence interval means an interval that consists
of the middle 92% of the distribution. In other words, we want to “chop”
off 4% from either end of the ditribution. Thus to get the right
endpoint, we want the value corresponding to the 96th percentile in the
mean dog price distribution, or
`mean + 1.75 * (SD of population / np.sqrt(sample size)`

or
`a + 1.75 * b / np.sqrt(c)`

(we divide by
`np.sqrt(c)`

due to the central limit theorem). Note that the
second line of information that was given
`stats.norm.cdf(1.4)`

is irrelavant to this particular
problem.

The average score on this problem was 48%.

An IKEA chair designer is experimenting with some new ideas for armchair designs. She has the idea of making the arm rests shaped like bell curves, or normal distributions. A cross-section of the armchair design is shown below.

This was created by taking the portion of the standard normal distribution from z=-4 to z=4 and adjoining two copies of it, one centered at z=0 and the other centered at z=8. Let’s call this shape the armchair curve.

Since the area under the standard normal curve from z=-4 to z=4 is approximately 1, the total area under the armchair curve is approximately 2.

Complete the implementation of the two functions below:

`area_left_of(z)`

should return the area under the armchair curve to the left of`z`

, assuming`-4 <= z <= 12`

, and`area_between(x, y)`

should return the area under the armchair curve between`x`

and`y`

, assuming`-4 <= x <= y <= 12`

.

```
import scipy
def area_left_of(z):
'''Returns the area under the armchair curve to the left of z.
Assume -4 <= z <= 12'''
if ___(a)___:
return ___(b)___
return scipy.stats.norm.cdf(z)
def area_between(x, y):
'''Returns the area under the armchair curve between x and y.
Assume -4 <= x <= y <= 12.'''
return ___(c)___
```

What goes in blank (a)?

**Answer: ** `z>4`

or
`z>=4`

The body of the function contains an `if`

statement
followed by a `return`

statement, which executes only when
the `if`

condition is false. In that case, the function
returns `scipy.stats.norm.cdf(z)`

, which is the area under
the standard normal curve to the left of `z`

. When
`z`

is in the left half of the armchair curve, the area under
the armchair curve to the left of `z`

is the area under the
standard normal curve to the left of `z`

because the left
half of the armchair curve is a standard normal curve, centered at 0. So
we want to execute the `return`

statement in that case, but
not if `z`

is in the right half of the armchair curve, since
in that case the area to the left of `z`

under the armchair
curve should be more than 1, and `scipy.stats.norm.cdf(z)`

can never exceed 1. This means the `if`

condition needs to
correspond to `z`

being in the right half of the armchair
curve, which corresponds to `z>4`

or `z>=4`

,
either of which is a correct solution.

The average score on this problem was 72%.

What goes in blank (b)?

**Answer: **
`1+scipy.stats.norm.cdf(z-8)`

This blank should contain the value we want to return when
`z`

is in the right half of the armchair curve. In this case,
the area under the armchair curve to the left of `z`

is the
sum of two areas:

- the area under the entire left half of the armchair curve, which is 1, and
- the area under the portion of the right half of the armchair curve
that falls to the left of
`z`

.

Since the right half of the armchair curve is just a standard normal
curve that’s been shifted to the right by 8 units, the area under that
normal curve to the left of `z`

is the same as the area to
the left of `z-8`

on the standard normal curve that’s
centered at 0. Adding the portion from the left half and the right half
of the armchair curve gives
`1+scipy.stats.norm.cdf(z-8)`

.

For example, if we want to find the area under the armchair curve to the left of 9, we need to total the yellow and blue areas in the image below.

The yellow area is 1 and the blue area is the same as the area under the standard normal curve (or the left half of the armchair curve) to the left of 1 because 1 is the point on the left half of the armchair curve that corresponds to 9 on the right half. In general, we need to subtract 8 from a value on the right half to get the corresponding value on the left half.

The average score on this problem was 54%.

What goes in blank (c)?

**Answer: **
`area_left_of(y) - area_left_of(x)`

In general, we can find the area under *any* curve between
`x`

and `y`

by taking the area under the curve to
the left of `y`

and subtracting the area under the curve to
the left of `x`

. Since we have a function to find the area to
the left of any given point in the armchair curve, we just need to call
that function twice with the appropriate inputs and subtract the
result.

The average score on this problem was 60%.

Suppose you have correctly implemented the function
`area_between(x, y)`

so that it returns the area under the
armchair curve between `x`

and `y`

, assuming the
inputs satisfy `-4 <= x <= y <= 12`

.

**Note:** You can still do this question, even if you
didn’t know how to do the previous one.

What is the approximate value of
`area_between(-2, 10)`

?

1.9

1.95

1.975

2

**Answer: ** 1.95

The area we want to find is shown below in two colors. We can find the area in each half of the armchair curve separately and add the results.

For the yellow area, we know that the area within 2 standard deviations of the mean on the standard normal curve is 0.95. The remaining 0.05 is split equally on both sides, so the yellow area is 0.975.

The blue area is the same by symmetry so the total shaded area is 0.975*2 = 1.95.

Equivalently, we can use the fact that the total area under the armchair curve is 2, and the amount of unshaded area on either side is 0.025, so the total shaded area is 2 - (0.025*2) = 1.95.

The average score on this problem was 76%.

What is the approximate value of
`area_between(0.37, 8.37)`

?

0.68

0.95

1

1.5

**Answer: ** 1

The area we want to find is shown below in two colors.

As we saw in Problem 12.2, the point on the left half of the armchair curve that corresponds to 8.37 is 0.37. This means that if we move the blue area from the right half of the armchair curve to the left half, it will fit perfectly, as shown below.

Therefore the total of the blue and yellow areas is the same as the area under one standard normal curve, which is 1.

The average score on this problem was 76%.