<- function(n) {
sum_one_to_n_1 <- seq(1,n)
sum_seq sum(sum_seq)
}
Homework 2 Solutions
Ch. 3, Coding Question 2
Approach 1
Approach 2
<- function(n) {
sum_one_to_n_2 *(n+1)/2
n }
Approach 3
<- function(n) {
sum_one_to_n_3 <- 0
total <- seq(1,n)
sum_seq for (i in 1:n) {
<- total + sum_seq[i]
total
}
total }
Finally, let’s check if all three functions give the same answer:
sum_one_to_n_1(100)
[1] 5050
sum_one_to_n_2(100)
[1] 5050
sum_one_to_n_3(100)
[1] 5050
Yes, they give the same answer.
Ch. 3, Coding Question 4
Part a
<- function(x) {
is_prime if (x==1 | x==2) {
return(TRUE)
}
<- TRUE
possibly_prime <- seq(2,x-1)
possible_factors for (z in possible_factors) {
<- x %% z
x_mod_z if (x_mod_z == 0) {
<- FALSE
possibly_prime break
}
}
possibly_prime }
Let me explain this code a little. The first if
indicates that we will call 1 and 2 prime numbers. Next, possible_factors
contains every integer from 2
to x-1
. If x
is divisible by any of these numbers, then it will not be prime. The for
loops over all possible factors and computes x %% z
where z
is a possible factor. If this is equal to 0, it indicates that z
is a factor of x
(and, hence, that x
is not prime). In that case, we set possibly_prime=FALSE
, and this is what we will return. As a side-comment, the break
line “jumps out” of the for loop if this condition holds (i.e., once we find a factor, we do not need to find any more), but the code will still work without this line. If we go through all possible factors and find that there are none, then we will never change possibly_prime
to be FALSE
and, therefore, we will return TRUE
indicating that x
is prime.
Let’s check if this works
is_prime(5)
[1] TRUE
is_prime(8)
[1] FALSE
is_prime(17)
[1] TRUE
is_prime(18)
[1] FALSE
Part b
Given that we have a way to check if a number is prime (from part a), it is fairly easy to compute all prime numbers from \(1\) to \(n\).
<- function(n) {
prime <- c()
out <- 1
counter for (i in 1:n) {
if (is_prime(i)) {
<- i
out[counter] <- counter+1
counter
}
}
out }
This code is easier than the previous one. First, we create a vector out
that is going to hold the list of the prime numbers. Second, counter
is going to hold the place in out
to put the next prime number. for
loops over all positive integers from \(1\) to \(n\) and checks if each one is prime or not. If it is, we add it to out
in the correct place (notice that counter <- counter+1
just means that we move to the next place in the out
vector that we are building up — we only do this if i
really is a prime number). Finally, we return the out
that we have created.
Let’s check if this works.
prime(100)
[1] 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89
[26] 97
This is the correct list of all prime numbers between 1 and 100.
Ch. 5, Extra Question 1
Part a
\[ \begin{aligned} \mathbb{E}[Y] &= \mathbb{E}[5+9X] \\ &= \mathbb{E}[5] + \mathbb{E}[9X] \\ &= 5 + 9\mathbb{E}[X] \\ &= 95 \end{aligned} \]
where the first equality holds by the definition of \(Y\), the second equality holds because expectations can pass through sums, the third equality holds because the expectation of a constant is just the constant itself and because constants can come outside of expectations, and the last equality holds because \(\mathbb{E}[X]=10\).
Part b
\[ \begin{aligned} \mathrm{var}(Y) &= \mathrm{var}(5+9X) \\ &= \mathrm{var}(9X) \\ &= 81 \mathrm{var}(X) \\ &= 162 \end{aligned} \]
where the first equality holds by the definition of \(Y\), the second equality holds because \(5\) is a constant and doesn’t contribute to the variance, the third equality holds because constants can come out of the variance (after squaring it), and the last equality holds because \(\mathrm{var}(X)=2\).
Ch. 5, Extra Question 2
\[ \begin{aligned} \mathrm{var}(bX) &= \mathbb{E}\big[ (bX - \mathbb{E}[bX])^2 \big] \\ &= \mathbb{E}\big[ (bX - b\mathbb{E}[X])^2 \big] \\ &= \mathbb{E}\Big[ \big(b(X-\mathbb{E}[X])\big)^2\Big] \\ &= \mathbb{E}\big[b^2 (X-\mathbb{E}[X])^2\big] \\ &= b^2 \mathbb{E}\big[(X-\mathbb{E}[X])^2\big] \\ &= b^2 \mathrm{var}(X) \end{aligned} \]
where the first equality holds by the definition of variance, the second equality holds because \(b\) can come out of the inside expectation because it is a constant, the third equality factors out the \(b\) from both terms, the fourth equality squares the inside terms, the fifth equality holds because \(b^2\) is a constant and can therefore come out of the expectation, the last equality holds because \(\mathrm{var}(X) = \mathbb{E}[(X-\mathbb{E}[X])^2]\) (which is just the definition of the variance of \(X\)).
Ch. 5, Extra Question 3
Part a
\[ \begin{aligned} \mathbb{E}[Y] &= \mathbb{E}[Y|X=1] \mathrm{P}(X=1) + \mathbb{E}[Y|X=0]\mathrm{P}(X=0) \\ &= \mathbb{E}[Y|X=1] \mathrm{P}(X=1) + \mathbb{E}[Y|X=0](1-\mathrm{P}(X=1)) \\ &= 5^{'} 4^{''} (0.5) + 5^{'} 9^{''} (0.5) \\ &= 5^{'} 6.5^{''} \end{aligned} \]
Part b
The answer from part a is related to the law of iterated expectations because the key step in that problem is to relate the overall expectation, \(\mathbb{E}[Y]\), to the conditional expectations, \(\mathbb{E}[Y|X=0]\) and \(\mathbb{E}[Y|X=1]\). The law of iterated expectations says that unconditional expectations are equal to averages of conditional expectations, which is what we use in the first step of the answer for part a.
Ch. 5, Extra Question 4
Part a
\(f_X(21) = 0.1\). We know this because the sum of the pdfs across all possible values of \(X\) must add up to 1.
Part b
\[ \begin{aligned} \mathbb{E}[X] &= \sum_{x \in \mathcal{X}} x f_X(x) \\ &= 2 f_X(2) + 7 f_X(7) + 13 f_X(13) + 21 f_X(21) \\ &= 2 (0.5) + 7 (0.25) + 13 (0.15) + 21 (0.1) \\ &= 6.8 \end{aligned} \]
Part c
To calculate the variance, I’ll use the expression \(\mathrm{var}(X) = \mathbb{E}[X^2] - \mathbb{E}[X]^2\). Thus, the main new thing to calculate is \(\mathbb{E}[X^2]\):
\[ \begin{aligned} \mathbb{E}[X^2] &= \sum_{x \in \mathcal{X}} x^2 f_X(x) \\ &= 2^2 f_X(2) + 7^2 f_X(7) + 13^2 f_X(13) + 21^2 f_X(21) \\ &= 4 (0.5) + 49 (0.25) + 169 (0.15) + 441 (0.1) \\ &= 83.7 \end{aligned} \]
Since, we already calculated \(\mathbb{E}[X] = 6.8\) in part a, this implies that \(\mathbb{E}[X]^2 = 46.24\). Thus, \[ \begin{aligned} \mathrm{var}(X) &= 83.7 - 46.24 \\ &= 37.46 \end{aligned} \]
Part d
\[ F_X(1) = 0 \]
since the smallest possible value of \(X\) is 2.
\[ \begin{aligned} F_X(7) &= f_X(2) + f_X(7) \\ &= 0.75 \end{aligned} \]
\[ \begin{aligned} F_X(8) &= f_X(2) + f_X(7) \\ &= 0.75 \end{aligned} \] \[ \begin{aligned} F_X(25) &= 1 \qquad \end{aligned} \]
since all possible values that \(X\) can take are less than 25.