From e578600c848ece93bc73258e4bd20ada5bf51051 Mon Sep 17 00:00:00 2001 From: Quarto GHA Workflow Runner Date: Mon, 28 Oct 2024 10:22:45 +0000 Subject: [PATCH] Built site for gh-pages --- .nojekyll | 2 +- assignments/assignment7.html | 467 ++++-------------- assignments/search.json | 6 +- assignments/template1.html | 4 +- .../figure-html/unnamed-chunk-10-2.png | Bin 67321 -> 67418 bytes sitemap.xml | 24 +- 6 files changed, 119 insertions(+), 384 deletions(-) diff --git a/.nojekyll b/.nojekyll index c72921c2..02243e9a 100644 --- a/.nojekyll +++ b/.nojekyll @@ -1 +1 @@ -f1410d11 \ No newline at end of file +bd251570 \ No newline at end of file diff --git a/assignments/assignment7.html b/assignments/assignment7.html index 7f7ff0b7..4a04122c 100644 --- a/assignments/assignment7.html +++ b/assignments/assignment7.html @@ -341,371 +341,108 @@

1 General informa

1.1 Assignment questions

For convenience the assignment questions are copied below. Answer the questions in MyCourses.

-Lecture 7/Chapter 5 of BDA Quiz (96% of grade) - -This week's assignment focuses on hierarchical models and modelling with brms. - -1. Exchangeability -An important building block of hierarchical models is the assumption of exchangeability. Let's review. - -1.1 Consider parameters \(\theta_j\) for j in 1...J. Which of these statements correctly describes exchangeability? - - -1.2 What best describes the difference between independence and exchangeability? - - -Consider the following: assume a box has N black and white balls but we do not know how many of each color. We pick a ball \(y_1\) at random, and we do not put it back, we then pick another ball \(y_2\) at random. Denote the number of black balls by B and white by W. - -1.3: Are observations \( y_1 \) and \( y_2 \) exchangeable? - - -1.4: Are observations \(y_1\) and \(y_2\) independent? - - -1.5: Can we act as if the two observations are independent? - - -1.6: Exchangeability allows us to express dependencies of data and parameters in a convenient form. Suppose we model a sequence of exchangeable random variables \( \theta \) via a governing, or population distribution, where conditional on some unknown parameters \( \phi \), we may assume independence between the elements of \( \theta \). Assume that \( \theta \) has J elements, write down an equation that conveniently factors the joint probability \( p(\theta,\phi) \): - - -De Finetti's theorem provides the theoretical basis for the equivalence to the independence assumption when J goes to infinity. In practice J is finite, but the difference may be small when J is relatively large. Check out the examples mentioned in the Chapter notes if you need more convincing. - -\( \phi \) is in general unknown. so the marginal prior for \( \theta \) must average over uncertainty in \( \phi \): \( \int \prod^J_{j=1} p(\theta_j | \phi) p(\phi)d\phi \). - -1.7 Based on the marginal prior formulation in the paragraph above, what can you say about the covariances \( \text{cov}( \theta_i, \theta_j) \)? - - -1.8 As with the parameters above, we often think of exchangeability as arising for our data model conditional on extra information x, such that the tuple \((x_i,y_i)\) are exchangeable, whereas \(y_i\) might not be. In which modeling context is this useful? Assume that the target data is denoted by \( y_i \). - - -2. Overview of hierarchical models - -2.1 Which of these best describes a hierarchical model? - - - -2.2: Consider that there are observations \(y\) indexed by observation number \(i\) and group \(j\). Suppose the data are modeled dependent on parameters \( \theta_j \) where \( j = 1,\dotsc,J\) indexes some meaningful grouping such as hospital-j specific health-outcomes, conditional on parameters \( \phi \) which are hyper-parameters of the prior distribution of \( \theta_j \). \( \phi \) are themselved modeled by prior distribution \( p(\phi) \). We think of the distribution \( p( \phi ) \) as the population distribution which generates the values for \( \theta \) in the hierarchical model. What are some of the benefits of hierarchical models compared to seperate models, which assume no relationship between j (and seperate models are estimated), and pooled models, which consider all j jointly, but do not model j specific parameters? - - -Throughout the rest of the course, we will often compare the hierarchical model, to a seperate model and the pooled model. Suppose for the questions below that you are modeling data \( y_{ij} \) where \( i \) refers to an observation within the \( j^{\text{th}}\) group, the observation model for \( y_{ij} \) is normal, and we consider hierarchies at the level of the parameters describing the location of \( y_{ij} \). - -2.3 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a seperate model for \( y_{ij} \)? \(\pi() \) stands for some prior distribution and \( \eta_j \) may be a vector of parameters such that \(cov(\eta_s,\eta_r) = 0 \) for \( s \neq r \). - - -2.4 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \( y_{ij} \)? \(\pi() \) stands for some prior distribution and \( \eta_j \) may be a vector of parameters such that \(cov(\eta_s,\eta_r) = 0 \) for \( s \neq r )\. - - - -2.5: Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \( y_{ij} \)? \(\pi() \) stands for some prior distribution and \( \eta_j \) may be a vector where \(cov(\eta_s,\eta_r) = 0 \) for \( s \neq r \). - - - -2.6: Why are hierarchical models sometimes also referred to as partially pooled models. You may find it helpful to review the first unnumbered equation on page 115 of BDA3? - - -It may help, before translating the model to code, to first describe the relationship between variables as a directed acyclic graph (DAG) (see lecture 7). We interpret the DAG starting from top to bottom as describing the generative mechanism implied by priors and observation model for \( y_{ij} \). Top level variables feed into distributions of lower level parameters and the observation model. Distributions are typically not further described in the DAG. By drawing variables sequentially from top to bottom, you can generate fake observations (push-forward distribution). In the case that the parameters have not yet been updated by the data information, this push-forward distribution is called the prior predictive distribution of \( y \). You have already created such a prior predictive distribution in Assignment 1, question 7 and we will return to this in the sections below. - -2.7: What is the difference between sequential draws from priors and the data model as described above to drawing from the joint posterior in Stan? - - -In the Figure 1 below, assume that all circular nodes indicate that the object inside can be generated according to some distribution. - -Figure 1 - -2.8: Which of these equations properly describes the posterior for the model shown in the diagram? - - - -3. Meta-analysis and hierarchical models - -Often similar research studies in areas such as medicine or social science will be published under slightly different conditions or replicated with different subjects. It is of interest to summarise and integrate those findings for which hierarchical models have become increasingly popular. - -3.1: Suppose \(y_i\) is the point estimate for an effect size of a single study, \( i \). Why is it often appropriate to model \( y_i \) by a normal distribution with known standard deviation \( \sigma_i \) which is taken as the standard error estimate for \( y_i \)? - - -3.2: Why are hiearchical models preferable to seperate and pooled models for meta-analysis? - - -3.3: Suppose the assumption of exchangeability is false because you know the estimates of effects across studies depends on extra information \( x_i \), e.g. geolocation and geolocation has a significant impact on the estimates. What should you do in this circumstance? - - -3.4: Based on the discussion above, which of the below would refer to a hierarchical model for \( y_i\)? - - - -4. Introduction to brms - -brms is an R package which makes writing models with Stan easier. - -Suppose you have oberved the following variables, from different groups: \(x, z, y\). \(i\) is the observation number and \(j\) the group indicator. Assume a model \(y_ij \sim N(\mu_ij, \sigma)\). -Translate the following equations for the linear predictor term (\mu_ij\) into brms syntax: - -4.1 \(\mu_ij = \alpha_0\): - - - - -4.2 \(\mu_ij = \alpha_0 + \beta_1 x_i\) - - - -4.3 \(\mu_ij = \alpha_0 + \beta_1 x_i + \beta_2 z_i\) - - - -4.4 \(\mu_ij = \alpha_0 + \alpha_j + \beta_1 x_i\) - - - -5. Simulation warmup - -In this task, you will simulate data from a hierarchical model to gain better insight into it. - - -The following R code simulates data from a hierarchical structure, and then plots the results. Experiment with this function by using it on different values of the arguments, and answer the following questions. This code is also included in the notebook for this assignment. - -hierarchical_sim <- function(group_pop_mean, - between_group_sd, - within_group_sd, - n_groups, - n_obs_per_group - ) { - # Generate group means - group_means <- rnorm( - n = n_groups, - mean = group_pop_mean, - sd = between_group_sd - ) - - # Generate observations - - ## Create an empty vector for observations - y <- numeric() - ## Create a vector for the group identifier - group <- rep(1:n_groups, each = n_obs_per_group) - - for (j in 1:n_groups) { - ### Generate one group observations - group_y <- rnorm( - n = n_obs_per_group, - mean = group_means[j], - sd = within_group_sd - ) - ### Append the group observations to the vector - y <- c(y, group_y) - } - - # Combine into a data frame - data <- data.frame( - group = factor(group), - y = y - ) - - # Plot the data - ggplot(data, aes(x = y, y = group)) + - geom_point() + - geom_vline(xintercept = group_pop_mean, linetype = "dashed") -} - -5.1 Which of the following generative models does the code correspond to? - -\(i\) is the observation number, \(j\) is the group indicator. - - - -5.2 What does the vertical dashed line in the plot represent? - - -5.3 Which function call would plausibly create a plot like the following? - - - -5.4 Which of these statements correctly describes the behaviour when the number of groups is increased? - - -5.5 Which of these statements correctly describes the behaviour when the ratio of the between group and within group variance is changed? - - -6. Sleep deprivation -In many cases the same people will have several data points collected (e.g. at different time points). A hierarchical model is well suited for this, with each group corresponding to a person. The sleepstudy dataset contains observations of reaction times for different people after differing number of days of sleep deprivation. - -Your task is to fit a hierarchical normal linear model in brms. -The observation model will be \(Reaction_{ij} \sim N(\mu_{ij}, \sigma)\). But depending on the setup, the \(\mu_{ij}\) term will differ. - -First fit a model with a population-level intercept, population-level effect of Days and varying intercepts per Subject. Note: in order to have the Intercept parameter be directly interpretable, use `center = FALSE` when creating the brms formula. See the code notebook for more details. - -Use the following priors (check the code notebook for how to specify): - -\(\alpha_0 \sim normal(250, 100)\) -\(\beta_0 \sim normal(0, 20)\) -\(\alpha_j \sim normal(0, \tau)\) -\(\tau \sim normal^+(0, 100)\) -\(\sigma \sim normal^+(0, 100)\) - - -6.1 Which of these formulae correctly defines the linear predictor term in a model with population-level intercept, population-level effect of Days and varying intercepts per Subject? - - -6.2 Which is the correct brms formula for this model? - - - -6.3 Based on the posterior, the estimate of the population-level intercept is . - -6.4 The population-level intercept can be interpreted as: - - -6.5 Based on the posterior, the estimate of the population-level effect of Days on Reaction is . - -6.6 The population-level effect of Days can be interpreted as: - - -6.7 Based on the posterior, the estimate of the standard deviation of the Intercept between Subjects is . - -6.8 The standard deviation of the Subject-specific Intercept can be interpreted as: - - -Next fit a model with subject-specific effects of Days in addition to the other terms. - -Use the prior \(\beta_j \sim normal(0, 20)\) -In this model, we can consider a correlation between the by-Subject intercept and Days effects. Use an \(LKJ(2)\) prior on this, \(\rho \sim LKJ(2)\). - -6.9 Which of these formulae correctly defines the linear predictor in this case? - - -6.10 Which is the correct brms formula for this model? - - - -6.11 Based on the posterior, the estimate of the standard deviation of Subject-specific effect of Days is . - -6.12 The the standard deviation of the Subject specific Intercept can be interpreted as: - -6.13 Based on the posterior, the estimate of correlation between the Subject-specific Intercept and effect of Days is . - -6.14 After fitting both models, which of the statements describe the results best (here interpret "plausible" as what is contained within the 95% posterior interval): - - - - -7. School calendar dataset - -As you've learned from the above, hierarchical models are also useful for meta-analyses. -The dataset dat.konstantopolous2011 from the metadat package contains results from different studies conducted on the effect of changing the school calendar from a standard one with a long summer break to a modified one with more regular but shorter breaks. - -Each result of a study is a standardized estimated mean effect on student achievement, where positive values indicate improvement (yi) and the variance of the estimate (vi) for a school. - -The meta-analysis model can be written as follows: \(y_{ijk} \sim normal(\mu_{ijk}, \sigma_{ijk})\). \(i\) refers to an observation, \(j\) refers to a school, \(k\) refers to a district. \(\mu_{ijk}\) thus refers to one observation \(i\) at school \(j\) in district \(k\). \(\mu_0\) is the population-level effect, \(\mu_j\) is the school-specific effect, and \(\mu_k\) is the district-specific effect. - -In this case, the \(\sigma_{ijk}\) values are known (the standard errors reported from each study) and the \(\mu_{ijk}\) term will differ depending on the model. - -In this exercise you will fit four different models to the same data set: Pooled, separate, partially pooled within school-specific effects, and partially pooled within schools and district effects. - -For all models, use brms with the default priors and use the following settings: -iter = 2000, warmup = 1000, chains = 4, seed = 2024 - -The dataset has separate columns for school and district, but for the models, we will want a unique identifier for each school. Before fitting any models, add a new column to the dataset called "district_school" which is the combination of the district and the school. This is then unique for each school, and will be used in the model formulae. - - -Pooled model: - -Use brms to fit a pooled model and answer the following questions. Check the code notebook for help starting. - -The pooled model formula is: \(\mu_{ijk} = \mu_0\). -7.1 The pooled model is written as: - - - -7.2 How many parameters are estimated in the pooled model? - - -7.3 What is the Rhat value for the Intercept term? - - -7.4 Based on the Rhat value, have the chains converged? - - -7.5 What is the posterior mean (labelled Estimate) and lower and upper 95% posterior interval bounds (labelled CI) for the Intercept? -Mean: , lower 95% interval bound: , upper 95% interval bound: - -7.6 Based on the posterior of the Intercept, what would you conclude about the effect of the intervention: - - -7.7 Suppose there is a new school in an existing district (School = 9, District = 86). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument. - - -7.8 Suppose there is a new school in a new district (School = 1, District = 30). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument. - - -Separate model: - -Use brms to fit a separate model and answer the following questions. Check the code notebook for help starting. - -The separate model formula is: \(\mu_{ijk}= \mu_{ijk}\). -7.9 The separate model is written as: - - - -7.10 How many parameters are estimated in the separate model? - - -7.11 What is the estimated effect for School 3 in District 71? -Mean: , lower 95% interval bound: , upper 95% interval bound: - -7.12 What is the estimated effect of School 7 in District 86? -Mean: , lower 95% interval bound: , upper 95% interval bound: - -7.13 Based on the posterior for the separate model, what could reasonably be concluded about the effect of the intervention: - - -7.14 Suppose there is a new school in an existing district (District = 86, School = 9). Why can we not easily predict the effect for this school based on the separate model posterior? - - -Partially pooled model for schools. - -The partially pooled model formula is: \(\mu_{ijk} = \mu_0 + \mu_j\) -7.15 And the partially pooled hierarchical model: - - - -7.16 How many parameters are estimated in the partially pooled for schools model? - - -7.17 Based on the posterior for the pooled model, what could reasonably be concluded about the effect of the intervention: - - -7.18 What is the estimated effect for School 3 in District 71? -Mean: , lower 95% interval bound: , upper 95% interval bound: - -7.19 What is the estimated effect of School 7 in District 86? -Mean: , lower 95% interval bound: , upper 95% interval bound: - -7.20 Suppose there is a new school in an existing district (District = 86, School = 9). What would the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE. - - -7.21 Suppose there is a new school in a new district (District = 30, School = 1). What would the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE. - - -Partially pooled model for schools in districts: - -In this data set, as there is a two-level structure, where schools are nested in districts, we can add another level to the hierarchy. The additional hierarchy formula is: \(\mu_{ijk} = \mu_0 + \mu_j + \mu_k\) - -7.22 What is the correct brms formula? - - -7.23 How many parameters are estimated in the partially pooled for schools in districts model? - - -7.24 Suppose there is a new school in an existing district (District = 86, School = 9). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE. - - -7.25 Suppose there is a new school in a new district (District = 30, School = 1). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the `newdata` argument with `allow_new_levels = TRUE`. - - -7.26 Which of the following statements are true relating to exchangeability assumptions in the models: - - -7.27 After fitting all the models, choose which of the following statements relating to the results are true: +Lecture 7/Chapter 5 of BDA Quiz (96% of grade)

This week's assignment focuses on hierarchical models and modelling with brms.

+

1. Exchangeability

An important building block of hierarchical models is the assumption of exchangeability. Let's review.

1.1 Consider parameters \(\theta_j\) for j in 1...J. Which of these statements correctly describes exchangeability?


1.2 What best describes the difference between independence and exchangeability? 


+

Consider the following:  assume a box has n black and white balls but we do not know how many of each color. We pick a ball \(y_1\) at random, we do not put it back, and pick another ball \(y_2\) at random. Denote the number of black balls by B and white by W.

1.3: Are observations \( y_1 \) and  \( y_2 \) exchangeable?


1.4: Are observations \(y_1\) and \(y_2\) independent?


1.5: Can we treat the two observations as if they are independent?


1.6: Exchangeability allows us to express dependencies of data and parameters in a convenient form. Suppose we model a sequence of exchangeable random variables \( \theta \) via a governing, or population distribution, where conditional on some unknown parameters \( \phi \), we may assume independence between the elements of  \( \theta\). Assume that \(\theta\) has J elements, write down an equation that conveniently factors the joint probability \( p(\theta,\phi) \):


De Finetti's theorem provides the theoretical basis for the equivalence to the independence assumption when J goes to infinity. In practice J is finite, but the difference may be small when J is relatively large. Check out the examples mentioned in the Chapter notes if you need more convincing. 

\( \phi \) is in general unknown. so the marginal prior for \( \theta \) must average over uncertainty in \( \phi \): \( \int \prod^J_{j=1} p(\theta_j | \phi) p(\phi)d\phi \). 

1.7 Based on the marginal prior formulation in the paragraph above, what can you say about the covariances \( \text{cov}( \theta_i, \theta_j) \)?


1.8 As with the parameters above, we often think of exchangeability as arising for our data model conditional on extra information x, such that the tuple \((x_i,y_i)\) are exchangeable whereas \(y_i\) might not be. In which modeling context is this useful? Assume that the target data is denoted by \( y_i \)
 

+

2. Overview of hierarchical models


2.1 Which of these best describes a hierarchical model?



2.2: Consider that there are observations \(y\) indexed by observation number \(i\) and group \(j\). Suppose the data are modeled dependent on parameters \( \theta_j \) where \( j = 1,\dotsc,J\) indexes some meaningful grouping such as hospital-j specific health-outcomes, conditional on parameters \( \phi \) which are hyper-parameters of the prior distribution of \( \theta_j \). \( \phi \) are modeled by prior distribution \( p(\phi) \). We think of the distribution \( p( \theta_j | \phi  ) \) as the population distribution which generates the values for \( \theta \) in the hierarchical model. What are some of the benefits of hierarchical models compared to separate models, which assume no relationship between j (and separate models are estimated), and pooled models, which consider all j jointly, but do not model j specific parameters?
 

Throughout the rest of the course, we will often compare the hierarchical model, to a separate model and the pooled model. Suppose for the questions below that you are modeling data \( y_{ij} \) where \( i \) refers to an observation within the \( j^{\text{th}}\) group, the observation model for \( y_{ij} \)  is normal, and we consider hierarchies at the level of the parameters describing the location of  \( y_{ij} \). 

2.3 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a separate model for \( y_{ij} \)? \(\pi() \) stands for some prior distribution and \( \eta_j \) may be a vector of parameters such that  \(cov(\eta_s,\eta_r) = 0 \) for \( s \neq r \).

+

+2.4 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \( y_{ij} \)? \(\pi() \) stands for some prior distribution and \( \eta_j \)  may be a vector of parameters such that  \(cov(\eta_s,\eta_r) = 0 \) for \( s \neq r \).


2.5: Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a hierarchical model for \( y_{ij} \)? \(\pi() \) stands for some prior distribution and \( \eta_j \) may be a vector where \(cov(\eta_s,\eta_r) = 0 \) for \( s \neq r \).



2.6: Why are hierarchical models sometimes also referred to as partially pooled models. You may find it helpful to review the first unnumbered equation on page 115 of BDA3?


It may help, before translating the model to code, to first describe the relationship between variables as a directed acyclic graph (DAG) (see lecture 7,slide 3).  We interpret the DAG starting from top to bottom as describing the generative mechanism implied by priors and observation model for \( y_{ij} \). Top level variables feed into distributions of lower level parameters and the observation model. Distributions are typically not further described in the DAG.  By drawing variables sequentially from top to bottom, you can generate fake observations (push-forward distribution). In the case that the parameters have not yet been updated by the data information, this push-forward distribution is called the prior predictive distribution of  \( y \).  You have already created such a prior predictive distribution in Assignment 1, question 7 and we will return to this in the sections below. 

2.7: What is the difference between sequential draws from priors and the data model as described above to drawing from the joint posterior in Stan?


In the Figure 1 below, assume that all circular nodes indicate that the object inside can be generated according to some distribution, conditional on the parent nodes.

+Figure 1 +

2.8: Which of these equations properly describes the posterior for the model shown in the diagram?



+

3. Meta-analysis and hierarchical models

+

Often similar research studies in areas such as medicine or social science will be published under slightly different conditions or replicated with different subjects. It is of interest to summarise and integrate those findings for which hierarchical models have become increasingly popular. 

+

3.1: Suppose \(y_i\) is the point estimate for an effect size of a single study, \( i \). Why is it often appropriate to model \( y_i \) by a normal distribution with known standard deviation \( \sigma_i \) which is taken as the standard error estimate for \( y_i \)?


3.2: Why are hiearchical models preferable to separate and pooled models for meta-analysis?

+

3.3: Suppose the assumption of exchangeability is false because you know the estimates of effects across studies depends on extra information \( x_i \), e.g. geolocation and geolocation has a significant impact on the estimates. What should you do in this circumstance?


3.4: Based on the discussion above, which of the below would refer to a hierarchical model for \( y_i\)?



+

4. Introduction to brms


brms is an R package which makes writing models with Stan easier.

Suppose you have oberved the following variables, from different groups: \(x, z, y\). \(i\) is the observation number and \(j\) the group indicator. Assume a model \(y_{ij} \sim\) normal\((\mu_{ij}, \sigma)\).
Translate the following equations for the linear predictor term \( \mu_{ij}\) into brms syntax:

4.1 \(\mu_{ij} = \alpha_0\):




4.2 \(\mu_{ij} = \alpha_0 + \beta_1 x_i\)



4.3 \(\mu_{ij} = \alpha_0 + \beta_1 x_i + \beta_2 z_i\)



4.4 \(\mu_{ij} = \alpha_0 + \alpha_j + \beta_1 x_i\)



Note that in within brms, coefficients that do not vary according to some grouping index (e.g. \( \mu_{ij} = \alpha_0 \)) are called population effects while coefficients that vary according to some grouping are called varying effects (e.g. \( \mu_{ij} = \alpha_j \)). Some literatures refer to these parameters as fixed and random effects respectively, however in the context of Bayesian inference, this terminology can be misleading, since parameters in a model are treated as random variables. See here for more discussion on this. For the questions below, we will use brms terminology. 

+

5. Simulation warmup


In this task, you will simulate data from a hierarchical model to gain better insight into it.
+


The following R code simulates data from a hierarchical structure, and then plots the results. Experiment with this function by using it on different values of the arguments, and answer the following questions. This code is also included in the notebook for this assignment.

+

hierarchical_sim <- function(group_pop_mean,
                             between_group_sd,
                             within_group_sd,
                             n_groups,
                             n_obs_per_group
                             ) {
  # Generate group means
  group_means <- rnorm(
    n = n_groups,
    mean = group_pop_mean,
    sd = between_group_sd
  )

  # Generate observations

  ## Create an empty vector for observations
  y <- numeric()
  ## Create a vector for the group identifier
  group <- rep(1:n_groups, each = n_obs_per_group)

  for (j in 1:n_groups) {
    ### Generate one group observations
    group_y <- rnorm(
      n = n_obs_per_group,
      mean = group_means[j],
      sd = within_group_sd
    )
    ### Append the group observations to the vector
    y <- c(y, group_y)
  }

  # Combine into a data frame
  data <- data.frame(
    group = factor(group),
    y = y
  )

  # Plot the data
  ggplot(data, aes(x = y, y = group)) +
    geom_point() +
    geom_vline(xintercept = group_pop_mean, linetype = "dashed")
}

+

5.1 Which of the following generative models does the code correspond to?

+

\(i\) is the observation number, \(j\) is the group indicator.

+


+

5.2 What does the vertical dashed line in the plot represent?

+

5.3 Which function call would plausibly create Figure 2 below?

Figure 2

+


+

5.4 Which of these statements correctly describes the behaviour when the number of groups is increased?

+

5.5 Which of these statements correctly describes the behaviour when the ratio of the between group and within group variance is changed?


+

6. Sleep deprivation

In many studies, data will have been collected for the same people repeatedly (e.g. at different time points). A hierarchical model is well suited for such data as we can specify a grouping structure corresponding to the person/subject id. The sleepstudy +dataset contains observations of reaction times for different people +after differing number of days of sleep deprivation.

Your task is +to fit a hierarchical normal linear model in brms.
The observation model will be Reaction\(_{ij} \sim\) normal\((\mu_{ij}, \sigma)\) where i refers to an observation id and j to the subject id.  But depending on the model, the \(\mu_{ij}\) term will be differently parameterised.

First fit a model with a population-level intercept, population-level effect of Days and varying intercept per Subject. Note: in order to have the Intercept parameter be more clearly interpretable, use `center = FALSE` when creating the brms formula (see the Parameterization of the population-level intercept secion in the [brms manual](https://rdrr.io/cran/brms/man/brmsformula.html). Centering refers here to data transformations made within the Stan model, that among other things makes sampling more efficient, but change the interpretation of the intercept. Section 5 of this demo provides some more insight into this.
Use the following priors (check the code notebook for how to specify):

\(\alpha_0 \sim normal(250, 100)\)
\(\beta_0 \sim normal(0, 20)\)
\(\alpha_j \sim normal(0, \tau)\)
\(\tau \sim normal^+(0, 100)\)
\(\sigma \sim normal^+(0, 100)\)
+


6.1 Which of these formulae correctly defines the linear predictor term in a model with population-level intercept, population-level effect of Days and varying intercepts per Subject?


6.2 Which is the correct brms formula for this model?

+



6.3 Based on the posterior, the estimate of the population-level intercept is .

6.4 The population-level intercept can be interpreted as:

+

6.5 Based on the posterior, the estimate of the population-level effect of Days on Reaction is .

+

6.6 The population-level effect of Days can be interpreted as:

+

6.7 Based on the posterior, the estimate of the standard deviation of the Intercept between Subjects is .

+

6.8 The standard deviation of the Subject-specific Intercept can be interpreted as:

+

Next fit a model with Subject-specific effects of Days in addition to the other terms.

In this model, we can consider a correlation between the by-Subject Intercept and Days effects. This means the priors on \(\alpha_j\) and \(\beta_j\) can be considered as a multivariate normal \((\alpha_j, \beta_j) \sim N(0, \Sigma)\). It is common to decompose this into a prior on \(\alpha_j\) and \(\beta_j\) and a prior on the correlation matrix \(R\).

Use the priors \(\alpha_j \sim normal(0, \tau_{\alpha})\), \(\beta_j \sim normal(0, \tau_{\beta})\), \(\tau_{\alpha} \sim normal^+(0, 100)\), \(\tau_{\beta} \sim normal^+(0, 20)\) and \(R \sim LKJ(2)\).

+

6.9 Which of these formulae + correctly defines the linear predictor in this case?


6.10 Which is the correct brms formula for this model?

+



6.11 Based on the posterior, the estimate of the standard deviation of Subject-specific effect of Days is .

6.13 Based on the posterior, the estimate of correlation between the Subject-specific Intercept and effect of Days is .

6.14 After fitting both models, which of the statements describe the results best (here interpret "plausible" as what is contained within the 95% posterior interval):

+



+

+

7. School calendar dataset

+

As you've learned from the above, hierarchical models are also useful for meta-analyses.

The dataset dat.konstantopolous2011 from the metadat package contains results from different studies conducted on the effect of changing the school calendar from a standard one with a long summer break to a modified one with more regular but shorter breaks.

Each result of a study is a standardized estimated mean effect on student achievement, where positive values indicate improvement (yi) and the variance of the estimate (vi) for a school.

+

The meta-analysis model can be written as follows: \(y_{ijk} \sim normal(\mu_{ijk}, \sigma_{ijk})\). \(i\) refers to an observation, \(j\) refers to a school, \(k\) + refers to a district. \(\mu_{ijk}\) thus refers to one observation \(i\) at school \(j\) in district \(k\). \(\mu_0\) is the + population-level effect, \(\mu_j\) is the school-specific effect, + and \(\mu_k\) is the district-specific effect.

+

In this case, the \(\sigma_{ijk}\) values are known (the standard errors reported from each study) and the \(\mu_{ijk}\) term will differ depending on the model.

+

In this exercise you will fit four different models to the same data set: Pooled, separate, partially pooled within school-specific effects, and partially pooled within schools and district effects.

+

For all models, use brms with the default priors and use the following settings:
iter = 2000, warmup = 1000, chains = 4, seed = 2024

+

The dataset has separate columns for school and district, but for the models, we will want a unique identifier for each school. Before fitting any models, add a new column to the dataset called "district_school" which is the combination of the district and the school. This is then unique for each school, and will be used in the model formulae.

+


Pooled model:

+

Use brms to fit a pooled model and answer the following questions. Check the code notebook for help starting.

+

The pooled model formula is: \(\mu_{ijk} = \mu_0\).

7.1 The pooled model is written as:
+

+

7.2 How many parameters are estimated in the pooled model?

+

7.3 What is the Rhat value for the Intercept term?

+

7.4 Based on the Rhat value, have the chains converged?

+

7.5 What is the posterior mean (labelled Estimate) and lower and upper 95% posterior interval bounds (labelled CI) for the Intercept?
Mean: , lower 95% interval bound: , upper 95% interval bound:

+

7.6 Based on the posterior of the Intercept, what would you conclude about the effect of the intervention:


7.7 Suppose there is a new school in an existing district (School = 9, District = 86). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument.

+

7.8 Suppose there is a new school in a new district (School = 1, + District = 30). What is the mean prediction for the effect in this + school? Use the function`posterior_epred` and the newdata argument.

+

Separate model:

+

Use brms to fit a separate model and answer the following questions. Check the code notebook for help starting.

+

+

+

The separate model formula is: \(\mu_{ijk}= \mu_{jk}\).

7.9 The separate model is written as:

+


7.10 How many parameters are estimated in the separate model?

+

7.11 What is the estimated effect for School 3 in District 71?
Mean: , lower 95% interval bound: , upper 95% interval bound:

+

7.12 What is the estimated effect of School 7 in District 86?
Mean: , lower 95% interval bound: , upper 95% interval bound:

7.13 Based on the posterior for the separate model, what could reasonably be concluded about the effect of the intervention:


7.14 Suppose there is a new + school in an existing district (District = 86, School = 9). Why can we not easily predict the effect for this school based on the separate model posterior?

+

Partially pooled model for schools.

+

+

The partially pooled model formula is: \(\mu_{ijk} = \mu_0 + \mu_j\)

7.15 And the partially pooled hierarchical model:
+

+

+

7.16 How many parameters are estimated in the partially pooled for schools model?

+

7.17 Based on the posterior for the pooled model, what could reasonably be concluded about the effect of the intervention:

+

7.18 What is the estimated effect for School 3 in District 71?
Mean: , lower 95% interval bound: , upper 95% interval bound:

+

7.19 What is the estimated effect of School 7 in District 86?
Mean: , lower 95% interval bound: , upper 95% interval bound:

+

+

7.20 Suppose there is a new + school in an existing district (District = 86, School = 9). What would + the mean prediction for the effect in this school? Use the + function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.

+

7.21 Suppose there is a new school in a new district (District = 30, School = 1). What would the mean prediction for the effect in this + school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.


+

+

+

Partially pooled model for schools in districts:

+

+

In this data set, as there is a two-level structure, where schools are + nested in districts, we can add another level to the hierarchy. The additional hierarchy formula is: \(\mu_{ijk} = \mu_0 + \mu_j + \mu_k\)


+

7.22 What is the correct brms formula?


7.23 How many parameters are estimated in the partially pooled for schools in districts model?

+

+

7.24 Suppose there is a new + school in an existing district (District = 86, School = 9). What is + the mean prediction for the effect in this school? Use the + function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.

+

7.25 Suppose there is a new school in a new district (District = 30, School = 1). What is the mean prediction for the effect in this + school? Use the function`posterior_epred` and the `newdata` argument with `allow_new_levels = TRUE`.


7.26 Which of the following statements are true relating to exchangeability assumptions in the models:

+

7.27 After fitting all the models, choose which of the following statements relating to the results are true:

diff --git a/assignments/search.json b/assignments/search.json index dd1315b3..ef325f65 100644 --- a/assignments/search.json +++ b/assignments/search.json @@ -378,7 +378,7 @@ "href": "template1.html", "title": "Notebook for Assignment 1", "section": "", - "text": "1 General information\nThe exercises here refer to the lecture 1/BDA chapter 1 content, not the course infrastructure quiz. This assignment is meant to test whether or not you have sufficient knowledge to participate in the course. The first question checks that you remember basic terms of probability calculus. The second exercise checks you recognise the most important notation used throughout the course and used in BDA3. The third-fifth exercise you will solve some basic Bayes theorem questions to check your understanding on the basics of probability theory. The 6th exercise checks on whether you recall the three steps of Bayesian Data Ananlysis as mentioned in chapter 1 of BDA3. The last exercise walks you through an example of how we can use models to generate distributions for outcomes of interest, applied to a setting of a simplified Roulette table.\nThis quarto document is not intended to be submitted, but to render the questions as they appear on Mycourses to be available also outside of it. The following will set-up markmyassignment to check your functions at the end of the notebook:\n\nlibrary(markmyassignment)\nassignment_path = paste(\"https://github.com/avehtari/BDA_course_Aalto/\",\n\"blob/master/tests/assignment1.yml\", sep=\"\")\nset_assignment(assignment_path)\n\nAssignment set:\nassignment1: Bayesian Data Analysis: Assignment 1\nThe assignment contain the following (3) tasks:\n- p_red\n- p_box\n- p_identical_twin\n\n\n\n\n2 1. Basic probability theory notation and terms\n\n\n3 2. Notation\n\n\n4 3. Bayes’ theorem 1\nIf you use pen and paper, it may help to draw pictures as follows (see also assignment_instructions#fig-workflow):\n\n\n\n\n\n\nFigure 1: Parts of Bayesian workflow\n\n\n\nSee Figure 1 for illustration of parts of Bayesian workflow.\n\n\n5 4. Bayes’ theorem 2\nThe following will help you implementing a function to calculate the required probabilities for this exercise. Keep the below name and format for the function to work with markmyassignment:\n\nboxes_test <- matrix(c(2,2,1,5,5,1), ncol = 2,\n dimnames = list(c(\"A\", \"B\", \"C\"), c(\"red\", \"white\")))\n\np_red <- function(boxes) {\n # Do computation here, and return as below.\n # This is the correct return value for the test data provided above.\n 0.3928571\n}\n\np_box <- function(boxes) {\n # Do computation here, and return as below.\n # This is the correct return value for the test data provided above.\n c(0.29090909,0.07272727,0.63636364)\n}\n\n\n\n6 5. Bayes’ theorem 3\nThe R functions below might help you calculating the requited probabilities.\n\nfraternal_prob = 1/125\nidentical_prob = 1/300\n\nKeep the below name and format for the function to work with markmyassignment:\n\np_identical_twin <- function(fraternal_prob, identical_prob) {\n # Do computation here, and return as below.\n # This is the correct return value for the test data provided above.\n 0.4545455\n}\n\n\n\n7 6. The three steps of Bayesian data analysis\n\n\n8 7. A Binomial Model for the Roulette Table\nIncomplete code can be found below.\n\n# Ratio of red/black\ntheta <- # declare probability parameter for the binomial model\n\n# Sequence of trials\n\ntrials <- seq(#start value of sequence,#end value of sequence,#value for spacing)\n\n# Number of simulation draws from the model\nnsims <- # number of of simulations from the binomial model\n\n# Helper function for getting the ratios\nbinom_gen <- function(trials,theta,nsims){\n df <- as.data.frame(rbinom(nsims,trials,theta)/trials) |> mutate(nsims = nsims,trials = trials)\n colnames(df) <- c(\"Ratios\",\"Nsims\",\"Trials\")\n return(df)\n}\n\n# Create a data frame containing the draws for each number of trials\nratio_60 <- do.call(rbind, lapply(trials, binom_gen, theta, nsims)) # lapply applies elements in trials column to binom_gen function, which is then rowbound via do.call\n\nNow plot a histogram of the computed ratios for 10, 50 and 1000 trials, using the code below\n\n# Plot the Distributions\nsubset_df60 <- ratio_60[ratio_60$Trials %in% c(#trial values), ] # Subset your dataframe\n\nsubset_df60 |> ggplot(aes(Ratios)) +\n geom_histogram(position = \"identity\" ,bins = 40) +\n facet_grid(cols = vars(Trials)) +\n ggtitle(\"Ratios for specific trials\")\n\nSuppose you are now certain that theta = 0.6, plot the probability density given 1000 trials using the code below.\n\nsize = # number of trials\nprob = # probability of success\n\nbinom_data <- data.frame(\n Success = 0:size,\n Probability = dbinom(0:size, size = size, prob = prob)\n)\n\nggplot(binom_data, aes(x = Success, y = Probability)) +\n geom_point() +\n geom_line() +\n labs(title = \"PMF of Binomial Distribution\", x = \"Number of Successes\", y = \"PDF\")\n\n\n\n\n\n\n\nmarkmyassignment\n\n\n\n\n\nThe following will check the functions for which markmyassignment has been set up:\n\nmark_my_assignment()\n\n✔ | F W S OK | Context\n\n⠏ | 0 | task-1-subtask-1-tests \n⠏ | 0 | p_red() \n✖ | 1 3 | p_red()\n────────────────────────────────────────────────────────────────────────────────\nFailure ('test-task-1-subtask-1-tests.R:21:3'): p_red()\np_red(boxes = boxes) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.393 - 0.5 == -0.107\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n────────────────────────────────────────────────────────────────────────────────\n\n⠏ | 0 | task-2-subtask-1-tests \n⠏ | 0 | p_box() \n✖ | 1 3 | p_box()\n────────────────────────────────────────────────────────────────────────────────\nFailure ('test-task-2-subtask-1-tests.R:19:3'): p_box()\np_box(boxes = boxes) not equivalent to c(0.4, 0.1, 0.5).\n3/3 mismatches (average diff: 0.0909)\n[1] 0.2909 - 0.4 == -0.1091\n[2] 0.0727 - 0.1 == -0.0273\n[3] 0.6364 - 0.5 == 0.1364\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n────────────────────────────────────────────────────────────────────────────────\n\n⠏ | 0 | task-3-subtask-1-tests \n⠏ | 0 | p_identical_twin() \n✖ | 2 3 | p_identical_twin()\n────────────────────────────────────────────────────────────────────────────────\nFailure ('test-task-3-subtask-1-tests.R:16:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/100, identical_prob = 1/500) not equivalent to 0.2857143.\n1/1 mismatches\n[1] 0.455 - 0.286 == 0.169\nError: Incorrect result for fraternal_prob = 1/100 and identical_prob = 1/500\n\nFailure ('test-task-3-subtask-1-tests.R:19:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/10, identical_prob = 1/20) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.455 - 0.5 == -0.0455\nError: Incorrect result for fraternal_prob = 1/10 and identical_prob = 1/20\n────────────────────────────────────────────────────────────────────────────────\n\n══ Results ═════════════════════════════════════════════════════════════════════\n── Failed tests ────────────────────────────────────────────────────────────────\nFailure ('test-task-1-subtask-1-tests.R:21:3'): p_red()\np_red(boxes = boxes) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.393 - 0.5 == -0.107\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n\nFailure ('test-task-2-subtask-1-tests.R:19:3'): p_box()\np_box(boxes = boxes) not equivalent to c(0.4, 0.1, 0.5).\n3/3 mismatches (average diff: 0.0909)\n[1] 0.2909 - 0.4 == -0.1091\n[2] 0.0727 - 0.1 == -0.0273\n[3] 0.6364 - 0.5 == 0.1364\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n\nFailure ('test-task-3-subtask-1-tests.R:16:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/100, identical_prob = 1/500) not equivalent to 0.2857143.\n1/1 mismatches\n[1] 0.455 - 0.286 == 0.169\nError: Incorrect result for fraternal_prob = 1/100 and identical_prob = 1/500\n\nFailure ('test-task-3-subtask-1-tests.R:19:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/10, identical_prob = 1/20) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.455 - 0.5 == -0.0455\nError: Incorrect result for fraternal_prob = 1/10 and identical_prob = 1/20\n\n[ FAIL 4 | WARN 0 | SKIP 0 | PASS 9 ]\n\nKeep trying!", + "text": "1 General information\nThe exercises here refer to the lecture 1/BDA chapter 1 content, not the course infrastructure quiz. This assignment is meant to test whether or not you have sufficient knowledge to participate in the course. The first question checks that you remember basic terms of probability calculus. The second exercise checks you recognise the most important notation used throughout the course and used in BDA3. The third-fifth exercise you will solve some basic Bayes theorem questions to check your understanding on the basics of probability theory. The 6th exercise checks on whether you recall the three steps of Bayesian Data Ananlysis as mentioned in chapter 1 of BDA3. The last exercise walks you through an example of how we can use models to generate distributions for outcomes of interest, applied to a setting of a simplified Roulette table.\nThis quarto document is not intended to be submitted, but to render the questions as they appear on Mycourses to be available also outside of it. The following will set-up markmyassignment to check your functions at the end of the notebook:\n\nlibrary(markmyassignment)\nassignment_path = paste(\"https://github.com/avehtari/BDA_course_Aalto/\",\n\"blob/master/tests/assignment1.yml\", sep=\"\")\nset_assignment(assignment_path)\n\nAssignment set:\nassignment1: Bayesian Data Analysis: Assignment 1\nThe assignment contain the following (3) tasks:\n- p_red\n- p_box\n- p_identical_twin\n\n\n\n\n2 1. Basic probability theory notation and terms\n\n\n3 2. Notation\n\n\n4 3. Bayes’ theorem 1\nIf you use pen and paper, it may help to draw pictures as follows (see also assignment_instructions#fig-workflow):\n\n\n\n\n\n\nFigure 1: Parts of Bayesian workflow\n\n\n\nSee Figure 1 for illustration of parts of Bayesian workflow.\n\n\n5 4. Bayes’ theorem 2\nThe following will help you implementing a function to calculate the required probabilities for this exercise. Keep the below name and format for the function to work with markmyassignment:\n\nboxes_test <- matrix(c(2,2,1,5,5,1), ncol = 2,\n dimnames = list(c(\"A\", \"B\", \"C\"), c(\"red\", \"white\")))\n\np_red <- function(boxes) {\n # Do computation here, and return as below.\n # This is the correct return value for the test data provided above.\n 0.3928571\n}\n\np_box <- function(boxes) {\n # Do computation here, and return as below.\n # This is the correct return value for the test data provided above.\n c(0.29090909,0.07272727,0.63636364)\n}\n\n\n\n6 5. Bayes’ theorem 3\nThe R functions below might help you calculating the requited probabilities.\n\nfraternal_prob = 1/125\nidentical_prob = 1/300\n\nKeep the below name and format for the function to work with markmyassignment:\n\np_identical_twin <- function(fraternal_prob, identical_prob) {\n # Do computation here, and return as below.\n # This is the correct return value for the test data provided above.\n 0.4545455\n}\n\n\n\n7 6. The three steps of Bayesian data analysis\n\n\n8 7. A Binomial Model for the Roulette Table\nIncomplete code can be found below.\n\n# Ratio of red/black\ntheta <- # declare probability parameter for the binomial model\n\n# Sequence of trials\n\ntrials <- seq(#start value of sequence,#end value of sequence,#value for spacing)\n\n# Number of simulation draws from the model\nnsims <- # number of of simulations from the binomial model\n\n# Helper function for getting the ratios\nbinom_gen <- function(trials,theta,nsims){\n df <- as.data.frame(rbinom(nsims,trials,theta)/trials) |> mutate(nsims = nsims,trials = trials)\n colnames(df) <- c(\"Ratios\",\"Nsims\",\"Trials\")\n return(df)\n}\n\n# Create a data frame containing the draws for each number of trials\nratio_60 <- do.call(rbind, lapply(trials, binom_gen, theta, nsims)) # lapply applies elements in trials column to binom_gen function, which is then rowbound via do.call\n\nNow plot a histogram of the computed ratios for 10, 50 and 1000 trials, using the code below\n\n# Plot the Distributions\nsubset_df60 <- ratio_60[ratio_60$Trials %in% c(#trial values), ] # Subset your dataframe\n\nsubset_df60 |> ggplot(aes(Ratios)) +\n geom_histogram(position = \"identity\" ,bins = 40) +\n facet_grid(cols = vars(Trials)) +\n ggtitle(\"Ratios for specific trials\")\n\nSuppose you are now certain that theta = 0.6, plot the probability density given 1000 trials using the code below.\n\nsize = # number of trials\nprob = # probability of success\n\nbinom_data <- data.frame(\n Success = 0:size,\n Probability = dbinom(0:size, size = size, prob = prob)\n)\n\nggplot(binom_data, aes(x = Success, y = Probability)) +\n geom_point() +\n geom_line() +\n labs(title = \"PMF of Binomial Distribution\", x = \"Number of Successes\", y = \"PDF\")\n\n\n\n\n\n\n\nmarkmyassignment\n\n\n\n\n\nThe following will check the functions for which markmyassignment has been set up:\n\nmark_my_assignment()\n\n✔ | F W S OK | Context\n\n⠏ | 0 | task-1-subtask-1-tests \n⠏ | 0 | p_red() \n✖ | 1 3 | p_red()\n────────────────────────────────────────────────────────────────────────────────\nFailure ('test-task-1-subtask-1-tests.R:21:3'): p_red()\np_red(boxes = boxes) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.393 - 0.5 == -0.107\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n────────────────────────────────────────────────────────────────────────────────\n\n⠏ | 0 | task-2-subtask-1-tests \n⠏ | 0 | p_box() \n✖ | 1 3 | p_box()\n────────────────────────────────────────────────────────────────────────────────\nFailure ('test-task-2-subtask-1-tests.R:19:3'): p_box()\np_box(boxes = boxes) not equivalent to c(0.4, 0.1, 0.5).\n3/3 mismatches (average diff: 0.0909)\n[1] 0.2909 - 0.4 == -0.1091\n[2] 0.0727 - 0.1 == -0.0273\n[3] 0.6364 - 0.5 == 0.1364\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n────────────────────────────────────────────────────────────────────────────────\n\n⠏ | 0 | task-3-subtask-1-tests \n⠏ | 0 | p_identical_twin() \n✖ | 2 3 | p_identical_twin()\n────────────────────────────────────────────────────────────────────────────────\nFailure ('test-task-3-subtask-1-tests.R:16:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/100, identical_prob = 1/500) not equivalent to 0.2857143.\n1/1 mismatches\n[1] 0.455 - 0.286 == 0.169\nError: Incorrect result for fraternal_prob = 1/100 and identical_prob = 1/500\n\nFailure ('test-task-3-subtask-1-tests.R:19:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/10, identical_prob = 1/20) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.455 - 0.5 == -0.0455\nError: Incorrect result for fraternal_prob = 1/10 and identical_prob = 1/20\n────────────────────────────────────────────────────────────────────────────────\n\n══ Results ═════════════════════════════════════════════════════════════════════\n── Failed tests ────────────────────────────────────────────────────────────────\nFailure ('test-task-1-subtask-1-tests.R:21:3'): p_red()\np_red(boxes = boxes) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.393 - 0.5 == -0.107\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n\nFailure ('test-task-2-subtask-1-tests.R:19:3'): p_box()\np_box(boxes = boxes) not equivalent to c(0.4, 0.1, 0.5).\n3/3 mismatches (average diff: 0.0909)\n[1] 0.2909 - 0.4 == -0.1091\n[2] 0.0727 - 0.1 == -0.0273\n[3] 0.6364 - 0.5 == 0.1364\nError: Incorrect result for matrix(c(1,1,1,1,1,1), ncol = 2)\n\nFailure ('test-task-3-subtask-1-tests.R:16:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/100, identical_prob = 1/500) not equivalent to 0.2857143.\n1/1 mismatches\n[1] 0.455 - 0.286 == 0.169\nError: Incorrect result for fraternal_prob = 1/100 and identical_prob = 1/500\n\nFailure ('test-task-3-subtask-1-tests.R:19:3'): p_identical_twin()\np_identical_twin(fraternal_prob = 1/10, identical_prob = 1/20) not equivalent to 0.5.\n1/1 mismatches\n[1] 0.455 - 0.5 == -0.0455\nError: Incorrect result for fraternal_prob = 1/10 and identical_prob = 1/20\n\n[ FAIL 4 | WARN 0 | SKIP 0 | PASS 9 ]", "crumbs": [ "Templates", "Notebook for Assignment 1" @@ -389,7 +389,7 @@ "href": "assignment7.html", "title": "Assignment 7", "section": "", - "text": "The exercises here refer to the lecture 7/BDA chapter 5 content. The main topics for this assignment are the MCSE and importance sampling.\nThe exercises constitute 96% of the Quiz 7 grade.\nWe prepared a quarto notebook specific to this assignment to help you get started. You still need to fill in your answers on Mycourses! You can inspect this and future templates\n\nas a rendered html file (to access the qmd file click the “</> Code” button at the top right hand corner of the template)\n\n\n\n\n\n\n\nGeneral Instructions for Answering the Assignment Questions\n\n\n\n\n\n\nQuestions below are exact copies of the text found in the MyCourses quiz and should serve as a notebook where you can store notes and code.\nWe recommend opening these notebooks in the Aalto JupyterHub, see how to use R and RStudio remotely.\nFor inspiration for code, have a look at the BDA R Demos and the specific Assignment code notebooks\nRecommended additional self study exercises for each chapter in BDA3 are listed in the course web page. These will help to gain deeper understanding of the topic.\nCommon questions and answers regarding installation and technical problems can be found in Frequently Asked Questions (FAQ).\nDeadlines for all assignments can be found on the course web page and in MyCourses.\nYou are allowed to discuss assignments with your friends, but it is not allowed to copy solutions directly from other students or from internet.\nDo not share your answers publicly.\nDo not copy answers from the internet or from previous years. We compare the answers to the answers from previous years and to the answers from other students this year.\nUse of AI is allowed on the course, but the most of the work needs to by the student, and you need to report whether you used AI and in which way you used them (See points 5 and 6 in Aalto guidelines for use of AI in teaching).\nAll suspected plagiarism will be reported and investigated. See more about the Aalto University Code of Academic Integrity and Handling Violations Thereof.\nIf you have any suggestions or improvements to the course material, please post in the course chat feedback channel, create an issue, or submit a pull request to the public repository!\n\n\n\n\n\n\nFor convenience the assignment questions are copied below. Answer the questions in MyCourses.\nLecture 7/Chapter 5 of BDA Quiz (96% of grade)\n\nThis week's assignment focuses on hierarchical models and modelling with brms.\n\n1. Exchangeability\nAn important building block of hierarchical models is the assumption of exchangeability. Let's review.\n\n1.1 Consider parameters \\(\\theta_j\\) for j in 1...J. Which of these statements correctly describes exchangeability?\n\n\n1.2 What best describes the difference between independence and exchangeability? \n\n\nConsider the following: assume a box has N black and white balls but we do not know how many of each color. We pick a ball \\(y_1\\) at random, and we do not put it back, we then pick another ball \\(y_2\\) at random. Denote the number of black balls by B and white by W.\n\n1.3: Are observations \\( y_1 \\) and \\( y_2 \\) exchangeable?\n\n\n1.4: Are observations \\(y_1\\) and \\(y_2\\) independent?\n\n\n1.5: Can we act as if the two observations are independent?\n\n\n1.6: Exchangeability allows us to express dependencies of data and parameters in a convenient form. Suppose we model a sequence of exchangeable random variables \\( \\theta \\) via a governing, or population distribution, where conditional on some unknown parameters \\( \\phi \\), we may assume independence between the elements of \\( \\theta \\). Assume that \\( \\theta \\) has J elements, write down an equation that conveniently factors the joint probability \\( p(\\theta,\\phi) \\):\n\n\nDe Finetti's theorem provides the theoretical basis for the equivalence to the independence assumption when J goes to infinity. In practice J is finite, but the difference may be small when J is relatively large. Check out the examples mentioned in the Chapter notes if you need more convincing. \n\n\\( \\phi \\) is in general unknown. so the marginal prior for \\( \\theta \\) must average over uncertainty in \\( \\phi \\): \\( \\int \\prod^J_{j=1} p(\\theta_j | \\phi) p(\\phi)d\\phi \\). \n\n1.7 Based on the marginal prior formulation in the paragraph above, what can you say about the covariances \\( \\text{cov}( \\theta_i, \\theta_j) \\)?\n\n\n1.8 As with the parameters above, we often think of exchangeability as arising for our data model conditional on extra information x, such that the tuple \\((x_i,y_i)\\) are exchangeable, whereas \\(y_i\\) might not be. In which modeling context is this useful? Assume that the target data is denoted by \\( y_i \\).\n \n\n2. Overview of hierarchical models\n\n2.1 Which of these best describes a hierarchical model?\n\n\n\n2.2: Consider that there are observations \\(y\\) indexed by observation number \\(i\\) and group \\(j\\). Suppose the data are modeled dependent on parameters \\( \\theta_j \\) where \\( j = 1,\\dotsc,J\\) indexes some meaningful grouping such as hospital-j specific health-outcomes, conditional on parameters \\( \\phi \\) which are hyper-parameters of the prior distribution of \\( \\theta_j \\). \\( \\phi \\) are themselved modeled by prior distribution \\( p(\\phi) \\). We think of the distribution \\( p( \\phi ) \\) as the population distribution which generates the values for \\( \\theta \\) in the hierarchical model. What are some of the benefits of hierarchical models compared to seperate models, which assume no relationship between j (and seperate models are estimated), and pooled models, which consider all j jointly, but do not model j specific parameters?\n \n\nThroughout the rest of the course, we will often compare the hierarchical model, to a seperate model and the pooled model. Suppose for the questions below that you are modeling data \\( y_{ij} \\) where \\( i \\) refers to an observation within the \\( j^{\\text{th}}\\) group, the observation model for \\( y_{ij} \\) is normal, and we consider hierarchies at the level of the parameters describing the location of \\( y_{ij} \\). \n\n2.3 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a seperate model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector of parameters such that \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).\n\n\n2.4 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector of parameters such that \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r )\\.\n\n\n\n2.5: Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector where \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).\n\n\n\n2.6: Why are hierarchical models sometimes also referred to as partially pooled models. You may find it helpful to review the first unnumbered equation on page 115 of BDA3?\n\n\nIt may help, before translating the model to code, to first describe the relationship between variables as a directed acyclic graph (DAG) (see lecture 7). We interpret the DAG starting from top to bottom as describing the generative mechanism implied by priors and observation model for \\( y_{ij} \\). Top level variables feed into distributions of lower level parameters and the observation model. Distributions are typically not further described in the DAG. By drawing variables sequentially from top to bottom, you can generate fake observations (push-forward distribution). In the case that the parameters have not yet been updated by the data information, this push-forward distribution is called the prior predictive distribution of \\( y \\). You have already created such a prior predictive distribution in Assignment 1, question 7 and we will return to this in the sections below. \n\n2.7: What is the difference between sequential draws from priors and the data model as described above to drawing from the joint posterior in Stan?\n\n\nIn the Figure 1 below, assume that all circular nodes indicate that the object inside can be generated according to some distribution.\n\nFigure 1\n\n2.8: Which of these equations properly describes the posterior for the model shown in the diagram?\n\n\n\n3. Meta-analysis and hierarchical models\n\nOften similar research studies in areas such as medicine or social science will be published under slightly different conditions or replicated with different subjects. It is of interest to summarise and integrate those findings for which hierarchical models have become increasingly popular. \n\n3.1: Suppose \\(y_i\\) is the point estimate for an effect size of a single study, \\( i \\). Why is it often appropriate to model \\( y_i \\) by a normal distribution with known standard deviation \\( \\sigma_i \\) which is taken as the standard error estimate for \\( y_i \\)?\n\n\n3.2: Why are hiearchical models preferable to seperate and pooled models for meta-analysis?\n\n\n3.3: Suppose the assumption of exchangeability is false because you know the estimates of effects across studies depends on extra information \\( x_i \\), e.g. geolocation and geolocation has a significant impact on the estimates. What should you do in this circumstance?\n\n\n3.4: Based on the discussion above, which of the below would refer to a hierarchical model for \\( y_i\\)?\n\n\n\n4. Introduction to brms\n\nbrms is an R package which makes writing models with Stan easier.\n\nSuppose you have oberved the following variables, from different groups: \\(x, z, y\\). \\(i\\) is the observation number and \\(j\\) the group indicator. Assume a model \\(y_ij \\sim N(\\mu_ij, \\sigma)\\).\nTranslate the following equations for the linear predictor term (\\mu_ij\\) into brms syntax:\n\n4.1 \\(\\mu_ij = \\alpha_0\\):\n\n\n\n\n4.2 \\(\\mu_ij = \\alpha_0 + \\beta_1 x_i\\)\n\n\n\n4.3 \\(\\mu_ij = \\alpha_0 + \\beta_1 x_i + \\beta_2 z_i\\)\n\n\n\n4.4 \\(\\mu_ij = \\alpha_0 + \\alpha_j + \\beta_1 x_i\\)\n\n\n\n5. Simulation warmup\n\nIn this task, you will simulate data from a hierarchical model to gain better insight into it.\n\n\nThe following R code simulates data from a hierarchical structure, and then plots the results. Experiment with this function by using it on different values of the arguments, and answer the following questions. This code is also included in the notebook for this assignment.\n\nhierarchical_sim <- function(group_pop_mean,\n between_group_sd,\n within_group_sd,\n n_groups,\n n_obs_per_group\n ) {\n # Generate group means\n group_means <- rnorm(\n n = n_groups,\n mean = group_pop_mean,\n sd = between_group_sd\n )\n\n # Generate observations\n\n ## Create an empty vector for observations\n y <- numeric()\n ## Create a vector for the group identifier\n group <- rep(1:n_groups, each = n_obs_per_group)\n\n for (j in 1:n_groups) {\n ### Generate one group observations\n group_y <- rnorm(\n n = n_obs_per_group,\n mean = group_means[j],\n sd = within_group_sd\n )\n ### Append the group observations to the vector\n y <- c(y, group_y)\n }\n\n # Combine into a data frame\n data <- data.frame(\n group = factor(group),\n y = y\n )\n\n # Plot the data\n ggplot(data, aes(x = y, y = group)) +\n geom_point() +\n geom_vline(xintercept = group_pop_mean, linetype = \"dashed\")\n}\n\n5.1 Which of the following generative models does the code correspond to?\n\n\\(i\\) is the observation number, \\(j\\) is the group indicator.\n\n\n\n5.2 What does the vertical dashed line in the plot represent?\n\n\n5.3 Which function call would plausibly create a plot like the following?\n\n\n\n5.4 Which of these statements correctly describes the behaviour when the number of groups is increased?\n\n\n5.5 Which of these statements correctly describes the behaviour when the ratio of the between group and within group variance is changed?\n\n\n6. Sleep deprivation\nIn many cases the same people will have several data points collected (e.g. at different time points). A hierarchical model is well suited for this, with each group corresponding to a person. The sleepstudy dataset contains observations of reaction times for different people after differing number of days of sleep deprivation.\n\nYour task is to fit a hierarchical normal linear model in brms.\nThe observation model will be \\(Reaction_{ij} \\sim N(\\mu_{ij}, \\sigma)\\). But depending on the setup, the \\(\\mu_{ij}\\) term will differ.\n\nFirst fit a model with a population-level intercept, population-level effect of Days and varying intercepts per Subject. Note: in order to have the Intercept parameter be directly interpretable, use `center = FALSE` when creating the brms formula. See the code notebook for more details.\n\nUse the following priors (check the code notebook for how to specify):\n\n\\(\\alpha_0 \\sim normal(250, 100)\\)\n\\(\\beta_0 \\sim normal(0, 20)\\)\n\\(\\alpha_j \\sim normal(0, \\tau)\\)\n\\(\\tau \\sim normal^+(0, 100)\\)\n\\(\\sigma \\sim normal^+(0, 100)\\)\n\n\n6.1 Which of these formulae correctly defines the linear predictor term in a model with population-level intercept, population-level effect of Days and varying intercepts per Subject?\n\n\n6.2 Which is the correct brms formula for this model?\n\n\n\n6.3 Based on the posterior, the estimate of the population-level intercept is .\n\n6.4 The population-level intercept can be interpreted as:\n\n\n6.5 Based on the posterior, the estimate of the population-level effect of Days on Reaction is .\n\n6.6 The population-level effect of Days can be interpreted as:\n\n\n6.7 Based on the posterior, the estimate of the standard deviation of the Intercept between Subjects is .\n\n6.8 The standard deviation of the Subject-specific Intercept can be interpreted as:\n\n\nNext fit a model with subject-specific effects of Days in addition to the other terms.\n\nUse the prior \\(\\beta_j \\sim normal(0, 20)\\)\nIn this model, we can consider a correlation between the by-Subject intercept and Days effects. Use an \\(LKJ(2)\\) prior on this, \\(\\rho \\sim LKJ(2)\\).\n\n6.9 Which of these formulae correctly defines the linear predictor in this case?\n\n\n6.10 Which is the correct brms formula for this model?\n\n\n\n6.11 Based on the posterior, the estimate of the standard deviation of Subject-specific effect of Days is .\n\n6.12 The the standard deviation of the Subject specific Intercept can be interpreted as:\n\n6.13 Based on the posterior, the estimate of correlation between the Subject-specific Intercept and effect of Days is .\n\n6.14 After fitting both models, which of the statements describe the results best (here interpret \"plausible\" as what is contained within the 95% posterior interval):\n\n\n\n\n7. School calendar dataset\n\nAs you've learned from the above, hierarchical models are also useful for meta-analyses.\nThe dataset dat.konstantopolous2011 from the metadat package contains results from different studies conducted on the effect of changing the school calendar from a standard one with a long summer break to a modified one with more regular but shorter breaks.\n\nEach result of a study is a standardized estimated mean effect on student achievement, where positive values indicate improvement (yi) and the variance of the estimate (vi) for a school.\n\nThe meta-analysis model can be written as follows: \\(y_{ijk} \\sim normal(\\mu_{ijk}, \\sigma_{ijk})\\). \\(i\\) refers to an observation, \\(j\\) refers to a school, \\(k\\) refers to a district. \\(\\mu_{ijk}\\) thus refers to one observation \\(i\\) at school \\(j\\) in district \\(k\\). \\(\\mu_0\\) is the population-level effect, \\(\\mu_j\\) is the school-specific effect, and \\(\\mu_k\\) is the district-specific effect.\n\nIn this case, the \\(\\sigma_{ijk}\\) values are known (the standard errors reported from each study) and the \\(\\mu_{ijk}\\) term will differ depending on the model.\n\nIn this exercise you will fit four different models to the same data set: Pooled, separate, partially pooled within school-specific effects, and partially pooled within schools and district effects.\n\nFor all models, use brms with the default priors and use the following settings:\niter = 2000, warmup = 1000, chains = 4, seed = 2024\n\nThe dataset has separate columns for school and district, but for the models, we will want a unique identifier for each school. Before fitting any models, add a new column to the dataset called \"district_school\" which is the combination of the district and the school. This is then unique for each school, and will be used in the model formulae.\n\n\nPooled model:\n\nUse brms to fit a pooled model and answer the following questions. Check the code notebook for help starting.\n\nThe pooled model formula is: \\(\\mu_{ijk} = \\mu_0\\).\n7.1 The pooled model is written as:\n\n\n\n7.2 How many parameters are estimated in the pooled model?\n\n\n7.3 What is the Rhat value for the Intercept term?\n\n\n7.4 Based on the Rhat value, have the chains converged?\n\n\n7.5 What is the posterior mean (labelled Estimate) and lower and upper 95% posterior interval bounds (labelled CI) for the Intercept?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.6 Based on the posterior of the Intercept, what would you conclude about the effect of the intervention:\n\n\n7.7 Suppose there is a new school in an existing district (School = 9, District = 86). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument.\n\n\n7.8 Suppose there is a new school in a new district (School = 1, District = 30). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument.\n\n\nSeparate model:\n\nUse brms to fit a separate model and answer the following questions. Check the code notebook for help starting.\n\nThe separate model formula is: \\(\\mu_{ijk}= \\mu_{ijk}\\).\n7.9 The separate model is written as:\n\n\n\n7.10 How many parameters are estimated in the separate model?\n\n\n7.11 What is the estimated effect for School 3 in District 71?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.12 What is the estimated effect of School 7 in District 86?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.13 Based on the posterior for the separate model, what could reasonably be concluded about the effect of the intervention:\n\n\n7.14 Suppose there is a new school in an existing district (District = 86, School = 9). Why can we not easily predict the effect for this school based on the separate model posterior?\n\n\nPartially pooled model for schools.\n\nThe partially pooled model formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j\\)\n7.15 And the partially pooled hierarchical model:\n\n\n\n7.16 How many parameters are estimated in the partially pooled for schools model?\n\n\n7.17 Based on the posterior for the pooled model, what could reasonably be concluded about the effect of the intervention:\n\n\n7.18 What is the estimated effect for School 3 in District 71?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.19 What is the estimated effect of School 7 in District 86?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.20 Suppose there is a new school in an existing district (District = 86, School = 9). What would the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\n7.21 Suppose there is a new school in a new district (District = 30, School = 1). What would the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\nPartially pooled model for schools in districts:\n\nIn this data set, as there is a two-level structure, where schools are nested in districts, we can add another level to the hierarchy. The additional hierarchy formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j + \\mu_k\\)\n\n7.22 What is the correct brms formula?\n\n\n7.23 How many parameters are estimated in the partially pooled for schools in districts model?\n\n\n7.24 Suppose there is a new school in an existing district (District = 86, School = 9). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\n7.25 Suppose there is a new school in a new district (District = 30, School = 1). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the `newdata` argument with `allow_new_levels = TRUE`.\n\n\n7.26 Which of the following statements are true relating to exchangeability assumptions in the models:\n\n\n7.27 After fitting all the models, choose which of the following statements relating to the results are true:", + "text": "The exercises here refer to the lecture 7/BDA chapter 5 content. The main topics for this assignment are the MCSE and importance sampling.\nThe exercises constitute 96% of the Quiz 7 grade.\nWe prepared a quarto notebook specific to this assignment to help you get started. You still need to fill in your answers on Mycourses! You can inspect this and future templates\n\nas a rendered html file (to access the qmd file click the “</> Code” button at the top right hand corner of the template)\n\n\n\n\n\n\n\nGeneral Instructions for Answering the Assignment Questions\n\n\n\n\n\n\nQuestions below are exact copies of the text found in the MyCourses quiz and should serve as a notebook where you can store notes and code.\nWe recommend opening these notebooks in the Aalto JupyterHub, see how to use R and RStudio remotely.\nFor inspiration for code, have a look at the BDA R Demos and the specific Assignment code notebooks\nRecommended additional self study exercises for each chapter in BDA3 are listed in the course web page. These will help to gain deeper understanding of the topic.\nCommon questions and answers regarding installation and technical problems can be found in Frequently Asked Questions (FAQ).\nDeadlines for all assignments can be found on the course web page and in MyCourses.\nYou are allowed to discuss assignments with your friends, but it is not allowed to copy solutions directly from other students or from internet.\nDo not share your answers publicly.\nDo not copy answers from the internet or from previous years. We compare the answers to the answers from previous years and to the answers from other students this year.\nUse of AI is allowed on the course, but the most of the work needs to by the student, and you need to report whether you used AI and in which way you used them (See points 5 and 6 in Aalto guidelines for use of AI in teaching).\nAll suspected plagiarism will be reported and investigated. See more about the Aalto University Code of Academic Integrity and Handling Violations Thereof.\nIf you have any suggestions or improvements to the course material, please post in the course chat feedback channel, create an issue, or submit a pull request to the public repository!\n\n\n\n\n\n\nFor convenience the assignment questions are copied below. Answer the questions in MyCourses.\nLecture 7/Chapter 5 of BDA Quiz (96% of grade)This week's assignment focuses on hierarchical models and modelling with brms.\nAn important building block of hierarchical models is the assumption of exchangeability. Let's review.1.1 Consider parameters \\(\\theta_j\\) for j in 1...J. Which of these statements correctly describes exchangeability?1.2 What best describes the difference between independence and exchangeability? \nConsider the following:  assume a box has n black and white balls but we do not know how many of each color. We pick a ball \\(y_1\\) at random, we do not put it back, and pick another ball \\(y_2\\) at random. Denote the number of black balls by B and white by W.1.3: Are observations \\( y_1 \\) and  \\( y_2 \\) exchangeable?1.4: Are observations \\(y_1\\) and \\(y_2\\) independent?1.5: Can we treat the two observations as if they are independent?1.6: Exchangeability allows us to express dependencies of data and parameters in a convenient form. Suppose we model a sequence of exchangeable random variables \\( \\theta \\) via a governing, or population distribution, where conditional on some unknown parameters \\( \\phi \\), we may assume independence between the elements of  \\( \\theta\\). Assume that \\(\\theta\\) has J elements, write down an equation that conveniently factors the joint probability \\( p(\\theta,\\phi) \\):De Finetti's theorem provides the theoretical basis for the equivalence to the independence assumption when J goes to infinity. In practice J is finite, but the difference may be small when J is relatively large. Check out the examples mentioned in the Chapter notes if you need more convincing. \\( \\phi \\) is in general unknown. so the marginal prior for \\( \\theta \\) must average over uncertainty in \\( \\phi \\): \\( \\int \\prod^J_{j=1} p(\\theta_j | \\phi) p(\\phi)d\\phi \\). 1.7 Based on the marginal prior formulation in the paragraph above, what can you say about the covariances \\( \\text{cov}( \\theta_i, \\theta_j) \\)?1.8 As with the parameters above, we often think of exchangeability as arising for our data model conditional on extra information x, such that the tuple \\((x_i,y_i)\\) are exchangeable whereas \\(y_i\\) might not be. In which modeling context is this useful? Assume that the target data is denoted by \\( y_i \\) \n2.1 Which of these best describes a hierarchical model?2.2: Consider that there are observations \\(y\\) indexed by observation number \\(i\\) and group \\(j\\). Suppose the data are modeled dependent on parameters \\( \\theta_j \\) where \\( j = 1,\\dotsc,J\\) indexes some meaningful grouping such as hospital-j specific health-outcomes, conditional on parameters \\( \\phi \\) which are hyper-parameters of the prior distribution of \\( \\theta_j \\). \\( \\phi \\) are modeled by prior distribution \\( p(\\phi) \\). We think of the distribution \\( p( \\theta_j | \\phi  ) \\) as the population distribution which generates the values for \\( \\theta \\) in the hierarchical model. What are some of the benefits of hierarchical models compared to separate models, which assume no relationship between j (and separate models are estimated), and pooled models, which consider all j jointly, but do not model j specific parameters? Throughout the rest of the course, we will often compare the hierarchical model, to a separate model and the pooled model. Suppose for the questions below that you are modeling data \\( y_{ij} \\) where \\( i \\) refers to an observation within the \\( j^{\\text{th}}\\) group, the observation model for \\( y_{ij} \\)  is normal, and we consider hierarchies at the level of the parameters describing the location of  \\( y_{ij} \\). 2.3 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a separate model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector of parameters such that  \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).\n\n2.4 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\)  may be a vector of parameters such that  \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).2.5: Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a hierarchical model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector where \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).2.6: Why are hierarchical models sometimes also referred to as partially pooled models. You may find it helpful to review the first unnumbered equation on page 115 of BDA3?It may help, before translating the model to code, to first describe the relationship between variables as a directed acyclic graph (DAG) (see lecture 7,slide 3).  We interpret the DAG starting from top to bottom as describing the generative mechanism implied by priors and observation model for \\( y_{ij} \\). Top level variables feed into distributions of lower level parameters and the observation model. Distributions are typically not further described in the DAG.  By drawing variables sequentially from top to bottom, you can generate fake observations (push-forward distribution). In the case that the parameters have not yet been updated by the data information, this push-forward distribution is called the prior predictive distribution of  \\( y \\).  You have already created such a prior predictive distribution in Assignment 1, question 7 and we will return to this in the sections below. 2.7: What is the difference between sequential draws from priors and the data model as described above to drawing from the joint posterior in Stan?In the Figure 1 below, assume that all circular nodes indicate that the object inside can be generated according to some distribution, conditional on the parent nodes.\nFigure 1\n2.8: Which of these equations properly describes the posterior for the model shown in the diagram?\n\nOften similar research studies in areas such as medicine or social science will be published under slightly different conditions or replicated with different subjects. It is of interest to summarise and integrate those findings for which hierarchical models have become increasingly popular. \n3.1: Suppose \\(y_i\\) is the point estimate for an effect size of a single study, \\( i \\). Why is it often appropriate to model \\( y_i \\) by a normal distribution with known standard deviation \\( \\sigma_i \\) which is taken as the standard error estimate for \\( y_i \\)?3.2: Why are hiearchical models preferable to separate and pooled models for meta-analysis?\n3.3: Suppose the assumption of exchangeability is false because you know the estimates of effects across studies depends on extra information \\( x_i \\), e.g. geolocation and geolocation has a significant impact on the estimates. What should you do in this circumstance?3.4: Based on the discussion above, which of the below would refer to a hierarchical model for \\( y_i\\)?\nbrms is an R package which makes writing models with Stan easier.Suppose you have oberved the following variables, from different groups: \\(x, z, y\\). \\(i\\) is the observation number and \\(j\\) the group indicator. Assume a model \\(y_{ij} \\sim\\) normal\\((\\mu_{ij}, \\sigma)\\).Translate the following equations for the linear predictor term \\( \\mu_{ij}\\) into brms syntax:4.1 \\(\\mu_{ij} = \\alpha_0\\): 4.2 \\(\\mu_{ij} = \\alpha_0 + \\beta_1 x_i\\)4.3 \\(\\mu_{ij} = \\alpha_0 + \\beta_1 x_i + \\beta_2 z_i\\)4.4 \\(\\mu_{ij} = \\alpha_0 + \\alpha_j + \\beta_1 x_i\\)Note that in within brms, coefficients that do not vary according to some grouping index (e.g. \\( \\mu_{ij} = \\alpha_0 \\)) are called population effects while coefficients that vary according to some grouping are called varying effects (e.g. \\( \\mu_{ij} = \\alpha_j \\)). Some literatures refer to these parameters as fixed and random effects respectively, however in the context of Bayesian inference, this terminology can be misleading, since parameters in a model are treated as random variables. See here for more discussion on this. For the questions below, we will use brms terminology. \nIn this task, you will simulate data from a hierarchical model to gain better insight into it.\nThe following R code simulates data from a hierarchical structure, and then plots the results. Experiment with this function by using it on different values of the arguments, and answer the following questions. This code is also included in the notebook for this assignment.\nhierarchical_sim <- function(group_pop_mean,                             between_group_sd,                             within_group_sd,                             n_groups,                             n_obs_per_group                             ) {  # Generate group means  group_means <- rnorm(    n = n_groups,    mean = group_pop_mean,    sd = between_group_sd  )  # Generate observations  ## Create an empty vector for observations  y <- numeric()  ## Create a vector for the group identifier  group <- rep(1:n_groups, each = n_obs_per_group)  for (j in 1:n_groups) {    ### Generate one group observations    group_y <- rnorm(      n = n_obs_per_group,      mean = group_means[j],      sd = within_group_sd    )    ### Append the group observations to the vector    y <- c(y, group_y)  }  # Combine into a data frame  data <- data.frame(    group = factor(group),    y = y  )  # Plot the data  ggplot(data, aes(x = y, y = group)) +    geom_point() +    geom_vline(xintercept = group_pop_mean, linetype = \"dashed\")}\n5.1 Which of the following generative models does the code correspond to?\n\\(i\\) is the observation number, \\(j\\) is the group indicator.\n\n5.2 What does the vertical dashed line in the plot represent?\n5.3 Which function call would plausibly create Figure 2 below?Figure 2\n\n5.4 Which of these statements correctly describes the behaviour when the number of groups is increased?\n5.5 Which of these statements correctly describes the behaviour when the ratio of the between group and within group variance is changed?\nIn many studies, data will have been collected for the same people repeatedly (e.g. at different time points). A hierarchical model is well suited for such data as we can specify a grouping structure corresponding to the person/subject id. The sleepstudy\ndataset contains observations of reaction times for different people\nafter differing number of days of sleep deprivation.Your task is\nto fit a hierarchical normal linear model in brms. The observation model will be Reaction\\(_{ij} \\sim\\) normal\\((\\mu_{ij}, \\sigma)\\) where i refers to an observation id and j to the subject id.  But depending on the model, the \\(\\mu_{ij}\\) term will be differently parameterised.First fit a model with a population-level intercept, population-level effect of Days and varying intercept per Subject. Note: in order to have the Intercept parameter be more clearly interpretable, use `center = FALSE` when creating the brms formula (see the Parameterization of the population-level intercept secion in the [brms manual](https://rdrr.io/cran/brms/man/brmsformula.html). Centering refers here to data transformations made within the Stan model, that among other things makes sampling more efficient, but change the interpretation of the intercept. Section 5 of this demo provides some more insight into this.Use the following priors (check the code notebook for how to specify):\\(\\alpha_0 \\sim normal(250, 100)\\)\\(\\beta_0 \\sim normal(0, 20)\\)\\(\\alpha_j \\sim normal(0, \\tau)\\)\\(\\tau \\sim normal^+(0, 100)\\)\\(\\sigma \\sim normal^+(0, 100)\\)\n6.1 Which of these formulae correctly defines the linear predictor term in a model with population-level intercept, population-level effect of Days and varying intercepts per Subject?6.2 Which is the correct brms formula for this model?\n6.3 Based on the posterior, the estimate of the population-level intercept is .6.4 The population-level intercept can be interpreted as:\n6.5 Based on the posterior, the estimate of the population-level effect of Days on Reaction is .\n6.6 The population-level effect of Days can be interpreted as:\n6.7 Based on the posterior, the estimate of the standard deviation of the Intercept between Subjects is .\n6.8 The standard deviation of the Subject-specific Intercept can be interpreted as:\nNext fit a model with Subject-specific effects of Days in addition to the other terms.In this model, we can consider a correlation between the by-Subject Intercept and Days effects. This means the priors on \\(\\alpha_j\\) and \\(\\beta_j\\) can be considered as a multivariate normal \\((\\alpha_j, \\beta_j) \\sim N(0, \\Sigma)\\). It is common to decompose this into a prior on \\(\\alpha_j\\) and \\(\\beta_j\\) and a prior on the correlation matrix \\(R\\). Use the priors \\(\\alpha_j \\sim normal(0, \\tau_{\\alpha})\\), \\(\\beta_j \\sim normal(0, \\tau_{\\beta})\\), \\(\\tau_{\\alpha} \\sim normal^+(0, 100)\\), \\(\\tau_{\\beta} \\sim normal^+(0, 20)\\) and \\(R \\sim LKJ(2)\\).\n6.9 Which of these formulae\n correctly defines the linear predictor in this case?6.10 Which is the correct brms formula for this model?\n6.11 Based on the posterior, the estimate of the standard deviation of Subject-specific effect of Days is .6.13 Based on the posterior, the estimate of correlation between the Subject-specific Intercept and effect of Days is .6.14 After fitting both models, which of the statements describe the results best (here interpret \"plausible\" as what is contained within the 95% posterior interval):\n\n\n\nAs you've learned from the above, hierarchical models are also useful for meta-analyses. The dataset dat.konstantopolous2011 from the metadat package contains results from different studies conducted on the effect of changing the school calendar from a standard one with a long summer break to a modified one with more regular but shorter breaks.Each result of a study is a standardized estimated mean effect on student achievement, where positive values indicate improvement (yi) and the variance of the estimate (vi) for a school.\nThe meta-analysis model can be written as follows: \\(y_{ijk} \\sim normal(\\mu_{ijk}, \\sigma_{ijk})\\). \\(i\\) refers to an observation, \\(j\\) refers to a school, \\(k\\)\n refers to a district. \\(\\mu_{ijk}\\) thus refers to one observation \\(i\\) at school \\(j\\) in district \\(k\\). \\(\\mu_0\\) is the\n population-level effect, \\(\\mu_j\\) is the school-specific effect,\n and \\(\\mu_k\\) is the district-specific effect.\nIn this case, the \\(\\sigma_{ijk}\\) values are known (the standard errors reported from each study) and the \\(\\mu_{ijk}\\) term will differ depending on the model.\nIn this exercise you will fit four different models to the same data set: Pooled, separate, partially pooled within school-specific effects, and partially pooled within schools and district effects.\nFor all models, use brms with the default priors and use the following settings:iter = 2000, warmup = 1000, chains = 4, seed = 2024\nThe dataset has separate columns for school and district, but for the models, we will want a unique identifier for each school. Before fitting any models, add a new column to the dataset called \"district_school\" which is the combination of the district and the school. This is then unique for each school, and will be used in the model formulae.\nPooled model:\nUse brms to fit a pooled model and answer the following questions. Check the code notebook for help starting.\nThe pooled model formula is: \\(\\mu_{ijk} = \\mu_0\\).7.1 The pooled model is written as:\n\n7.2 How many parameters are estimated in the pooled model?\n7.3 What is the Rhat value for the Intercept term?\n7.4 Based on the Rhat value, have the chains converged?\n7.5 What is the posterior mean (labelled Estimate) and lower and upper 95% posterior interval bounds (labelled CI) for the Intercept?Mean: , lower 95% interval bound: , upper 95% interval bound: \n7.6 Based on the posterior of the Intercept, what would you conclude about the effect of the intervention:7.7 Suppose there is a new school in an existing district (School = 9, District = 86). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument.\n7.8 Suppose there is a new school in a new district (School = 1,\n District = 30). What is the mean prediction for the effect in this\n school? Use the function`posterior_epred` and the newdata argument.\nSeparate model:\nUse brms to fit a separate model and answer the following questions. Check the code notebook for help starting.\n\n\nThe separate model formula is: \\(\\mu_{ijk}= \\mu_{jk}\\).7.9 The separate model is written as:\n7.10 How many parameters are estimated in the separate model?\n7.11 What is the estimated effect for School 3 in District 71?Mean: , lower 95% interval bound: , upper 95% interval bound: \n7.12 What is the estimated effect of School 7 in District 86?Mean: , lower 95% interval bound: , upper 95% interval bound: 7.13 Based on the posterior for the separate model, what could reasonably be concluded about the effect of the intervention:7.14 Suppose there is a new\n school in an existing district (District = 86, School = 9). Why can we not easily predict the effect for this school based on the separate model posterior?\nPartially pooled model for schools.\n\nThe partially pooled model formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j\\)7.15 And the partially pooled hierarchical model:\n\n\n7.16 How many parameters are estimated in the partially pooled for schools model?\n7.17 Based on the posterior for the pooled model, what could reasonably be concluded about the effect of the intervention:\n7.18 What is the estimated effect for School 3 in District 71?Mean: , lower 95% interval bound: , upper 95% interval bound: \n7.19 What is the estimated effect of School 7 in District 86?Mean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.20 Suppose there is a new\n school in an existing district (District = 86, School = 9). What would\n the mean prediction for the effect in this school? Use the\n function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n7.21 Suppose there is a new school in a new district (District = 30, School = 1). What would the mean prediction for the effect in this\n school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\nPartially pooled model for schools in districts:\n\nIn this data set, as there is a two-level structure, where schools are\n nested in districts, we can add another level to the hierarchy. The additional hierarchy formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j + \\mu_k\\)\n7.22 What is the correct brms formula?7.23 How many parameters are estimated in the partially pooled for schools in districts model?\n\n7.24 Suppose there is a new\n school in an existing district (District = 86, School = 9). What is\n the mean prediction for the effect in this school? Use the\n function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n7.25 Suppose there is a new school in a new district (District = 30, School = 1). What is the mean prediction for the effect in this\n school? Use the function`posterior_epred` and the `newdata` argument with `allow_new_levels = TRUE`.7.26 Which of the following statements are true relating to exchangeability assumptions in the models:\n7.27 After fitting all the models, choose which of the following statements relating to the results are true:", "crumbs": [ "Assignments", "Assignment 7" @@ -400,7 +400,7 @@ "href": "assignment7.html#assignment-questions", "title": "Assignment 7", "section": "", - "text": "For convenience the assignment questions are copied below. Answer the questions in MyCourses.\nLecture 7/Chapter 5 of BDA Quiz (96% of grade)\n\nThis week's assignment focuses on hierarchical models and modelling with brms.\n\n1. Exchangeability\nAn important building block of hierarchical models is the assumption of exchangeability. Let's review.\n\n1.1 Consider parameters \\(\\theta_j\\) for j in 1...J. Which of these statements correctly describes exchangeability?\n\n\n1.2 What best describes the difference between independence and exchangeability? \n\n\nConsider the following: assume a box has N black and white balls but we do not know how many of each color. We pick a ball \\(y_1\\) at random, and we do not put it back, we then pick another ball \\(y_2\\) at random. Denote the number of black balls by B and white by W.\n\n1.3: Are observations \\( y_1 \\) and \\( y_2 \\) exchangeable?\n\n\n1.4: Are observations \\(y_1\\) and \\(y_2\\) independent?\n\n\n1.5: Can we act as if the two observations are independent?\n\n\n1.6: Exchangeability allows us to express dependencies of data and parameters in a convenient form. Suppose we model a sequence of exchangeable random variables \\( \\theta \\) via a governing, or population distribution, where conditional on some unknown parameters \\( \\phi \\), we may assume independence between the elements of \\( \\theta \\). Assume that \\( \\theta \\) has J elements, write down an equation that conveniently factors the joint probability \\( p(\\theta,\\phi) \\):\n\n\nDe Finetti's theorem provides the theoretical basis for the equivalence to the independence assumption when J goes to infinity. In practice J is finite, but the difference may be small when J is relatively large. Check out the examples mentioned in the Chapter notes if you need more convincing. \n\n\\( \\phi \\) is in general unknown. so the marginal prior for \\( \\theta \\) must average over uncertainty in \\( \\phi \\): \\( \\int \\prod^J_{j=1} p(\\theta_j | \\phi) p(\\phi)d\\phi \\). \n\n1.7 Based on the marginal prior formulation in the paragraph above, what can you say about the covariances \\( \\text{cov}( \\theta_i, \\theta_j) \\)?\n\n\n1.8 As with the parameters above, we often think of exchangeability as arising for our data model conditional on extra information x, such that the tuple \\((x_i,y_i)\\) are exchangeable, whereas \\(y_i\\) might not be. In which modeling context is this useful? Assume that the target data is denoted by \\( y_i \\).\n \n\n2. Overview of hierarchical models\n\n2.1 Which of these best describes a hierarchical model?\n\n\n\n2.2: Consider that there are observations \\(y\\) indexed by observation number \\(i\\) and group \\(j\\). Suppose the data are modeled dependent on parameters \\( \\theta_j \\) where \\( j = 1,\\dotsc,J\\) indexes some meaningful grouping such as hospital-j specific health-outcomes, conditional on parameters \\( \\phi \\) which are hyper-parameters of the prior distribution of \\( \\theta_j \\). \\( \\phi \\) are themselved modeled by prior distribution \\( p(\\phi) \\). We think of the distribution \\( p( \\phi ) \\) as the population distribution which generates the values for \\( \\theta \\) in the hierarchical model. What are some of the benefits of hierarchical models compared to seperate models, which assume no relationship between j (and seperate models are estimated), and pooled models, which consider all j jointly, but do not model j specific parameters?\n \n\nThroughout the rest of the course, we will often compare the hierarchical model, to a seperate model and the pooled model. Suppose for the questions below that you are modeling data \\( y_{ij} \\) where \\( i \\) refers to an observation within the \\( j^{\\text{th}}\\) group, the observation model for \\( y_{ij} \\) is normal, and we consider hierarchies at the level of the parameters describing the location of \\( y_{ij} \\). \n\n2.3 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a seperate model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector of parameters such that \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).\n\n\n2.4 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector of parameters such that \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r )\\.\n\n\n\n2.5: Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector where \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).\n\n\n\n2.6: Why are hierarchical models sometimes also referred to as partially pooled models. You may find it helpful to review the first unnumbered equation on page 115 of BDA3?\n\n\nIt may help, before translating the model to code, to first describe the relationship between variables as a directed acyclic graph (DAG) (see lecture 7). We interpret the DAG starting from top to bottom as describing the generative mechanism implied by priors and observation model for \\( y_{ij} \\). Top level variables feed into distributions of lower level parameters and the observation model. Distributions are typically not further described in the DAG. By drawing variables sequentially from top to bottom, you can generate fake observations (push-forward distribution). In the case that the parameters have not yet been updated by the data information, this push-forward distribution is called the prior predictive distribution of \\( y \\). You have already created such a prior predictive distribution in Assignment 1, question 7 and we will return to this in the sections below. \n\n2.7: What is the difference between sequential draws from priors and the data model as described above to drawing from the joint posterior in Stan?\n\n\nIn the Figure 1 below, assume that all circular nodes indicate that the object inside can be generated according to some distribution.\n\nFigure 1\n\n2.8: Which of these equations properly describes the posterior for the model shown in the diagram?\n\n\n\n3. Meta-analysis and hierarchical models\n\nOften similar research studies in areas such as medicine or social science will be published under slightly different conditions or replicated with different subjects. It is of interest to summarise and integrate those findings for which hierarchical models have become increasingly popular. \n\n3.1: Suppose \\(y_i\\) is the point estimate for an effect size of a single study, \\( i \\). Why is it often appropriate to model \\( y_i \\) by a normal distribution with known standard deviation \\( \\sigma_i \\) which is taken as the standard error estimate for \\( y_i \\)?\n\n\n3.2: Why are hiearchical models preferable to seperate and pooled models for meta-analysis?\n\n\n3.3: Suppose the assumption of exchangeability is false because you know the estimates of effects across studies depends on extra information \\( x_i \\), e.g. geolocation and geolocation has a significant impact on the estimates. What should you do in this circumstance?\n\n\n3.4: Based on the discussion above, which of the below would refer to a hierarchical model for \\( y_i\\)?\n\n\n\n4. Introduction to brms\n\nbrms is an R package which makes writing models with Stan easier.\n\nSuppose you have oberved the following variables, from different groups: \\(x, z, y\\). \\(i\\) is the observation number and \\(j\\) the group indicator. Assume a model \\(y_ij \\sim N(\\mu_ij, \\sigma)\\).\nTranslate the following equations for the linear predictor term (\\mu_ij\\) into brms syntax:\n\n4.1 \\(\\mu_ij = \\alpha_0\\):\n\n\n\n\n4.2 \\(\\mu_ij = \\alpha_0 + \\beta_1 x_i\\)\n\n\n\n4.3 \\(\\mu_ij = \\alpha_0 + \\beta_1 x_i + \\beta_2 z_i\\)\n\n\n\n4.4 \\(\\mu_ij = \\alpha_0 + \\alpha_j + \\beta_1 x_i\\)\n\n\n\n5. Simulation warmup\n\nIn this task, you will simulate data from a hierarchical model to gain better insight into it.\n\n\nThe following R code simulates data from a hierarchical structure, and then plots the results. Experiment with this function by using it on different values of the arguments, and answer the following questions. This code is also included in the notebook for this assignment.\n\nhierarchical_sim <- function(group_pop_mean,\n between_group_sd,\n within_group_sd,\n n_groups,\n n_obs_per_group\n ) {\n # Generate group means\n group_means <- rnorm(\n n = n_groups,\n mean = group_pop_mean,\n sd = between_group_sd\n )\n\n # Generate observations\n\n ## Create an empty vector for observations\n y <- numeric()\n ## Create a vector for the group identifier\n group <- rep(1:n_groups, each = n_obs_per_group)\n\n for (j in 1:n_groups) {\n ### Generate one group observations\n group_y <- rnorm(\n n = n_obs_per_group,\n mean = group_means[j],\n sd = within_group_sd\n )\n ### Append the group observations to the vector\n y <- c(y, group_y)\n }\n\n # Combine into a data frame\n data <- data.frame(\n group = factor(group),\n y = y\n )\n\n # Plot the data\n ggplot(data, aes(x = y, y = group)) +\n geom_point() +\n geom_vline(xintercept = group_pop_mean, linetype = \"dashed\")\n}\n\n5.1 Which of the following generative models does the code correspond to?\n\n\\(i\\) is the observation number, \\(j\\) is the group indicator.\n\n\n\n5.2 What does the vertical dashed line in the plot represent?\n\n\n5.3 Which function call would plausibly create a plot like the following?\n\n\n\n5.4 Which of these statements correctly describes the behaviour when the number of groups is increased?\n\n\n5.5 Which of these statements correctly describes the behaviour when the ratio of the between group and within group variance is changed?\n\n\n6. Sleep deprivation\nIn many cases the same people will have several data points collected (e.g. at different time points). A hierarchical model is well suited for this, with each group corresponding to a person. The sleepstudy dataset contains observations of reaction times for different people after differing number of days of sleep deprivation.\n\nYour task is to fit a hierarchical normal linear model in brms.\nThe observation model will be \\(Reaction_{ij} \\sim N(\\mu_{ij}, \\sigma)\\). But depending on the setup, the \\(\\mu_{ij}\\) term will differ.\n\nFirst fit a model with a population-level intercept, population-level effect of Days and varying intercepts per Subject. Note: in order to have the Intercept parameter be directly interpretable, use `center = FALSE` when creating the brms formula. See the code notebook for more details.\n\nUse the following priors (check the code notebook for how to specify):\n\n\\(\\alpha_0 \\sim normal(250, 100)\\)\n\\(\\beta_0 \\sim normal(0, 20)\\)\n\\(\\alpha_j \\sim normal(0, \\tau)\\)\n\\(\\tau \\sim normal^+(0, 100)\\)\n\\(\\sigma \\sim normal^+(0, 100)\\)\n\n\n6.1 Which of these formulae correctly defines the linear predictor term in a model with population-level intercept, population-level effect of Days and varying intercepts per Subject?\n\n\n6.2 Which is the correct brms formula for this model?\n\n\n\n6.3 Based on the posterior, the estimate of the population-level intercept is .\n\n6.4 The population-level intercept can be interpreted as:\n\n\n6.5 Based on the posterior, the estimate of the population-level effect of Days on Reaction is .\n\n6.6 The population-level effect of Days can be interpreted as:\n\n\n6.7 Based on the posterior, the estimate of the standard deviation of the Intercept between Subjects is .\n\n6.8 The standard deviation of the Subject-specific Intercept can be interpreted as:\n\n\nNext fit a model with subject-specific effects of Days in addition to the other terms.\n\nUse the prior \\(\\beta_j \\sim normal(0, 20)\\)\nIn this model, we can consider a correlation between the by-Subject intercept and Days effects. Use an \\(LKJ(2)\\) prior on this, \\(\\rho \\sim LKJ(2)\\).\n\n6.9 Which of these formulae correctly defines the linear predictor in this case?\n\n\n6.10 Which is the correct brms formula for this model?\n\n\n\n6.11 Based on the posterior, the estimate of the standard deviation of Subject-specific effect of Days is .\n\n6.12 The the standard deviation of the Subject specific Intercept can be interpreted as:\n\n6.13 Based on the posterior, the estimate of correlation between the Subject-specific Intercept and effect of Days is .\n\n6.14 After fitting both models, which of the statements describe the results best (here interpret \"plausible\" as what is contained within the 95% posterior interval):\n\n\n\n\n7. School calendar dataset\n\nAs you've learned from the above, hierarchical models are also useful for meta-analyses.\nThe dataset dat.konstantopolous2011 from the metadat package contains results from different studies conducted on the effect of changing the school calendar from a standard one with a long summer break to a modified one with more regular but shorter breaks.\n\nEach result of a study is a standardized estimated mean effect on student achievement, where positive values indicate improvement (yi) and the variance of the estimate (vi) for a school.\n\nThe meta-analysis model can be written as follows: \\(y_{ijk} \\sim normal(\\mu_{ijk}, \\sigma_{ijk})\\). \\(i\\) refers to an observation, \\(j\\) refers to a school, \\(k\\) refers to a district. \\(\\mu_{ijk}\\) thus refers to one observation \\(i\\) at school \\(j\\) in district \\(k\\). \\(\\mu_0\\) is the population-level effect, \\(\\mu_j\\) is the school-specific effect, and \\(\\mu_k\\) is the district-specific effect.\n\nIn this case, the \\(\\sigma_{ijk}\\) values are known (the standard errors reported from each study) and the \\(\\mu_{ijk}\\) term will differ depending on the model.\n\nIn this exercise you will fit four different models to the same data set: Pooled, separate, partially pooled within school-specific effects, and partially pooled within schools and district effects.\n\nFor all models, use brms with the default priors and use the following settings:\niter = 2000, warmup = 1000, chains = 4, seed = 2024\n\nThe dataset has separate columns for school and district, but for the models, we will want a unique identifier for each school. Before fitting any models, add a new column to the dataset called \"district_school\" which is the combination of the district and the school. This is then unique for each school, and will be used in the model formulae.\n\n\nPooled model:\n\nUse brms to fit a pooled model and answer the following questions. Check the code notebook for help starting.\n\nThe pooled model formula is: \\(\\mu_{ijk} = \\mu_0\\).\n7.1 The pooled model is written as:\n\n\n\n7.2 How many parameters are estimated in the pooled model?\n\n\n7.3 What is the Rhat value for the Intercept term?\n\n\n7.4 Based on the Rhat value, have the chains converged?\n\n\n7.5 What is the posterior mean (labelled Estimate) and lower and upper 95% posterior interval bounds (labelled CI) for the Intercept?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.6 Based on the posterior of the Intercept, what would you conclude about the effect of the intervention:\n\n\n7.7 Suppose there is a new school in an existing district (School = 9, District = 86). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument.\n\n\n7.8 Suppose there is a new school in a new district (School = 1, District = 30). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument.\n\n\nSeparate model:\n\nUse brms to fit a separate model and answer the following questions. Check the code notebook for help starting.\n\nThe separate model formula is: \\(\\mu_{ijk}= \\mu_{ijk}\\).\n7.9 The separate model is written as:\n\n\n\n7.10 How many parameters are estimated in the separate model?\n\n\n7.11 What is the estimated effect for School 3 in District 71?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.12 What is the estimated effect of School 7 in District 86?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.13 Based on the posterior for the separate model, what could reasonably be concluded about the effect of the intervention:\n\n\n7.14 Suppose there is a new school in an existing district (District = 86, School = 9). Why can we not easily predict the effect for this school based on the separate model posterior?\n\n\nPartially pooled model for schools.\n\nThe partially pooled model formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j\\)\n7.15 And the partially pooled hierarchical model:\n\n\n\n7.16 How many parameters are estimated in the partially pooled for schools model?\n\n\n7.17 Based on the posterior for the pooled model, what could reasonably be concluded about the effect of the intervention:\n\n\n7.18 What is the estimated effect for School 3 in District 71?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.19 What is the estimated effect of School 7 in District 86?\nMean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.20 Suppose there is a new school in an existing district (District = 86, School = 9). What would the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\n7.21 Suppose there is a new school in a new district (District = 30, School = 1). What would the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\nPartially pooled model for schools in districts:\n\nIn this data set, as there is a two-level structure, where schools are nested in districts, we can add another level to the hierarchy. The additional hierarchy formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j + \\mu_k\\)\n\n7.22 What is the correct brms formula?\n\n\n7.23 How many parameters are estimated in the partially pooled for schools in districts model?\n\n\n7.24 Suppose there is a new school in an existing district (District = 86, School = 9). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\n7.25 Suppose there is a new school in a new district (District = 30, School = 1). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the `newdata` argument with `allow_new_levels = TRUE`.\n\n\n7.26 Which of the following statements are true relating to exchangeability assumptions in the models:\n\n\n7.27 After fitting all the models, choose which of the following statements relating to the results are true:", + "text": "For convenience the assignment questions are copied below. Answer the questions in MyCourses.\nLecture 7/Chapter 5 of BDA Quiz (96% of grade)This week's assignment focuses on hierarchical models and modelling with brms.\nAn important building block of hierarchical models is the assumption of exchangeability. Let's review.1.1 Consider parameters \\(\\theta_j\\) for j in 1...J. Which of these statements correctly describes exchangeability?1.2 What best describes the difference between independence and exchangeability? \nConsider the following:  assume a box has n black and white balls but we do not know how many of each color. We pick a ball \\(y_1\\) at random, we do not put it back, and pick another ball \\(y_2\\) at random. Denote the number of black balls by B and white by W.1.3: Are observations \\( y_1 \\) and  \\( y_2 \\) exchangeable?1.4: Are observations \\(y_1\\) and \\(y_2\\) independent?1.5: Can we treat the two observations as if they are independent?1.6: Exchangeability allows us to express dependencies of data and parameters in a convenient form. Suppose we model a sequence of exchangeable random variables \\( \\theta \\) via a governing, or population distribution, where conditional on some unknown parameters \\( \\phi \\), we may assume independence between the elements of  \\( \\theta\\). Assume that \\(\\theta\\) has J elements, write down an equation that conveniently factors the joint probability \\( p(\\theta,\\phi) \\):De Finetti's theorem provides the theoretical basis for the equivalence to the independence assumption when J goes to infinity. In practice J is finite, but the difference may be small when J is relatively large. Check out the examples mentioned in the Chapter notes if you need more convincing. \\( \\phi \\) is in general unknown. so the marginal prior for \\( \\theta \\) must average over uncertainty in \\( \\phi \\): \\( \\int \\prod^J_{j=1} p(\\theta_j | \\phi) p(\\phi)d\\phi \\). 1.7 Based on the marginal prior formulation in the paragraph above, what can you say about the covariances \\( \\text{cov}( \\theta_i, \\theta_j) \\)?1.8 As with the parameters above, we often think of exchangeability as arising for our data model conditional on extra information x, such that the tuple \\((x_i,y_i)\\) are exchangeable whereas \\(y_i\\) might not be. In which modeling context is this useful? Assume that the target data is denoted by \\( y_i \\) \n2.1 Which of these best describes a hierarchical model?2.2: Consider that there are observations \\(y\\) indexed by observation number \\(i\\) and group \\(j\\). Suppose the data are modeled dependent on parameters \\( \\theta_j \\) where \\( j = 1,\\dotsc,J\\) indexes some meaningful grouping such as hospital-j specific health-outcomes, conditional on parameters \\( \\phi \\) which are hyper-parameters of the prior distribution of \\( \\theta_j \\). \\( \\phi \\) are modeled by prior distribution \\( p(\\phi) \\). We think of the distribution \\( p( \\theta_j | \\phi  ) \\) as the population distribution which generates the values for \\( \\theta \\) in the hierarchical model. What are some of the benefits of hierarchical models compared to separate models, which assume no relationship between j (and separate models are estimated), and pooled models, which consider all j jointly, but do not model j specific parameters? Throughout the rest of the course, we will often compare the hierarchical model, to a separate model and the pooled model. Suppose for the questions below that you are modeling data \\( y_{ij} \\) where \\( i \\) refers to an observation within the \\( j^{\\text{th}}\\) group, the observation model for \\( y_{ij} \\)  is normal, and we consider hierarchies at the level of the parameters describing the location of  \\( y_{ij} \\). 2.3 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a separate model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector of parameters such that  \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).\n\n2.4 Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a pooled model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\)  may be a vector of parameters such that  \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).2.5: Based on the description of the above, the lecture and BDA chapter 5 content, which of these below would suggest a hierarchical model for \\( y_{ij} \\)? \\(\\pi() \\) stands for some prior distribution and \\( \\eta_j \\) may be a vector where \\(cov(\\eta_s,\\eta_r) = 0 \\) for \\( s \\neq r \\).2.6: Why are hierarchical models sometimes also referred to as partially pooled models. You may find it helpful to review the first unnumbered equation on page 115 of BDA3?It may help, before translating the model to code, to first describe the relationship between variables as a directed acyclic graph (DAG) (see lecture 7,slide 3).  We interpret the DAG starting from top to bottom as describing the generative mechanism implied by priors and observation model for \\( y_{ij} \\). Top level variables feed into distributions of lower level parameters and the observation model. Distributions are typically not further described in the DAG.  By drawing variables sequentially from top to bottom, you can generate fake observations (push-forward distribution). In the case that the parameters have not yet been updated by the data information, this push-forward distribution is called the prior predictive distribution of  \\( y \\).  You have already created such a prior predictive distribution in Assignment 1, question 7 and we will return to this in the sections below. 2.7: What is the difference between sequential draws from priors and the data model as described above to drawing from the joint posterior in Stan?In the Figure 1 below, assume that all circular nodes indicate that the object inside can be generated according to some distribution, conditional on the parent nodes.\nFigure 1\n2.8: Which of these equations properly describes the posterior for the model shown in the diagram?\n\nOften similar research studies in areas such as medicine or social science will be published under slightly different conditions or replicated with different subjects. It is of interest to summarise and integrate those findings for which hierarchical models have become increasingly popular. \n3.1: Suppose \\(y_i\\) is the point estimate for an effect size of a single study, \\( i \\). Why is it often appropriate to model \\( y_i \\) by a normal distribution with known standard deviation \\( \\sigma_i \\) which is taken as the standard error estimate for \\( y_i \\)?3.2: Why are hiearchical models preferable to separate and pooled models for meta-analysis?\n3.3: Suppose the assumption of exchangeability is false because you know the estimates of effects across studies depends on extra information \\( x_i \\), e.g. geolocation and geolocation has a significant impact on the estimates. What should you do in this circumstance?3.4: Based on the discussion above, which of the below would refer to a hierarchical model for \\( y_i\\)?\nbrms is an R package which makes writing models with Stan easier.Suppose you have oberved the following variables, from different groups: \\(x, z, y\\). \\(i\\) is the observation number and \\(j\\) the group indicator. Assume a model \\(y_{ij} \\sim\\) normal\\((\\mu_{ij}, \\sigma)\\).Translate the following equations for the linear predictor term \\( \\mu_{ij}\\) into brms syntax:4.1 \\(\\mu_{ij} = \\alpha_0\\): 4.2 \\(\\mu_{ij} = \\alpha_0 + \\beta_1 x_i\\)4.3 \\(\\mu_{ij} = \\alpha_0 + \\beta_1 x_i + \\beta_2 z_i\\)4.4 \\(\\mu_{ij} = \\alpha_0 + \\alpha_j + \\beta_1 x_i\\)Note that in within brms, coefficients that do not vary according to some grouping index (e.g. \\( \\mu_{ij} = \\alpha_0 \\)) are called population effects while coefficients that vary according to some grouping are called varying effects (e.g. \\( \\mu_{ij} = \\alpha_j \\)). Some literatures refer to these parameters as fixed and random effects respectively, however in the context of Bayesian inference, this terminology can be misleading, since parameters in a model are treated as random variables. See here for more discussion on this. For the questions below, we will use brms terminology. \nIn this task, you will simulate data from a hierarchical model to gain better insight into it.\nThe following R code simulates data from a hierarchical structure, and then plots the results. Experiment with this function by using it on different values of the arguments, and answer the following questions. This code is also included in the notebook for this assignment.\nhierarchical_sim <- function(group_pop_mean,                             between_group_sd,                             within_group_sd,                             n_groups,                             n_obs_per_group                             ) {  # Generate group means  group_means <- rnorm(    n = n_groups,    mean = group_pop_mean,    sd = between_group_sd  )  # Generate observations  ## Create an empty vector for observations  y <- numeric()  ## Create a vector for the group identifier  group <- rep(1:n_groups, each = n_obs_per_group)  for (j in 1:n_groups) {    ### Generate one group observations    group_y <- rnorm(      n = n_obs_per_group,      mean = group_means[j],      sd = within_group_sd    )    ### Append the group observations to the vector    y <- c(y, group_y)  }  # Combine into a data frame  data <- data.frame(    group = factor(group),    y = y  )  # Plot the data  ggplot(data, aes(x = y, y = group)) +    geom_point() +    geom_vline(xintercept = group_pop_mean, linetype = \"dashed\")}\n5.1 Which of the following generative models does the code correspond to?\n\\(i\\) is the observation number, \\(j\\) is the group indicator.\n\n5.2 What does the vertical dashed line in the plot represent?\n5.3 Which function call would plausibly create Figure 2 below?Figure 2\n\n5.4 Which of these statements correctly describes the behaviour when the number of groups is increased?\n5.5 Which of these statements correctly describes the behaviour when the ratio of the between group and within group variance is changed?\nIn many studies, data will have been collected for the same people repeatedly (e.g. at different time points). A hierarchical model is well suited for such data as we can specify a grouping structure corresponding to the person/subject id. The sleepstudy\ndataset contains observations of reaction times for different people\nafter differing number of days of sleep deprivation.Your task is\nto fit a hierarchical normal linear model in brms. The observation model will be Reaction\\(_{ij} \\sim\\) normal\\((\\mu_{ij}, \\sigma)\\) where i refers to an observation id and j to the subject id.  But depending on the model, the \\(\\mu_{ij}\\) term will be differently parameterised.First fit a model with a population-level intercept, population-level effect of Days and varying intercept per Subject. Note: in order to have the Intercept parameter be more clearly interpretable, use `center = FALSE` when creating the brms formula (see the Parameterization of the population-level intercept secion in the [brms manual](https://rdrr.io/cran/brms/man/brmsformula.html). Centering refers here to data transformations made within the Stan model, that among other things makes sampling more efficient, but change the interpretation of the intercept. Section 5 of this demo provides some more insight into this.Use the following priors (check the code notebook for how to specify):\\(\\alpha_0 \\sim normal(250, 100)\\)\\(\\beta_0 \\sim normal(0, 20)\\)\\(\\alpha_j \\sim normal(0, \\tau)\\)\\(\\tau \\sim normal^+(0, 100)\\)\\(\\sigma \\sim normal^+(0, 100)\\)\n6.1 Which of these formulae correctly defines the linear predictor term in a model with population-level intercept, population-level effect of Days and varying intercepts per Subject?6.2 Which is the correct brms formula for this model?\n6.3 Based on the posterior, the estimate of the population-level intercept is .6.4 The population-level intercept can be interpreted as:\n6.5 Based on the posterior, the estimate of the population-level effect of Days on Reaction is .\n6.6 The population-level effect of Days can be interpreted as:\n6.7 Based on the posterior, the estimate of the standard deviation of the Intercept between Subjects is .\n6.8 The standard deviation of the Subject-specific Intercept can be interpreted as:\nNext fit a model with Subject-specific effects of Days in addition to the other terms.In this model, we can consider a correlation between the by-Subject Intercept and Days effects. This means the priors on \\(\\alpha_j\\) and \\(\\beta_j\\) can be considered as a multivariate normal \\((\\alpha_j, \\beta_j) \\sim N(0, \\Sigma)\\). It is common to decompose this into a prior on \\(\\alpha_j\\) and \\(\\beta_j\\) and a prior on the correlation matrix \\(R\\). Use the priors \\(\\alpha_j \\sim normal(0, \\tau_{\\alpha})\\), \\(\\beta_j \\sim normal(0, \\tau_{\\beta})\\), \\(\\tau_{\\alpha} \\sim normal^+(0, 100)\\), \\(\\tau_{\\beta} \\sim normal^+(0, 20)\\) and \\(R \\sim LKJ(2)\\).\n6.9 Which of these formulae\n correctly defines the linear predictor in this case?6.10 Which is the correct brms formula for this model?\n6.11 Based on the posterior, the estimate of the standard deviation of Subject-specific effect of Days is .6.13 Based on the posterior, the estimate of correlation between the Subject-specific Intercept and effect of Days is .6.14 After fitting both models, which of the statements describe the results best (here interpret \"plausible\" as what is contained within the 95% posterior interval):\n\n\n\nAs you've learned from the above, hierarchical models are also useful for meta-analyses. The dataset dat.konstantopolous2011 from the metadat package contains results from different studies conducted on the effect of changing the school calendar from a standard one with a long summer break to a modified one with more regular but shorter breaks.Each result of a study is a standardized estimated mean effect on student achievement, where positive values indicate improvement (yi) and the variance of the estimate (vi) for a school.\nThe meta-analysis model can be written as follows: \\(y_{ijk} \\sim normal(\\mu_{ijk}, \\sigma_{ijk})\\). \\(i\\) refers to an observation, \\(j\\) refers to a school, \\(k\\)\n refers to a district. \\(\\mu_{ijk}\\) thus refers to one observation \\(i\\) at school \\(j\\) in district \\(k\\). \\(\\mu_0\\) is the\n population-level effect, \\(\\mu_j\\) is the school-specific effect,\n and \\(\\mu_k\\) is the district-specific effect.\nIn this case, the \\(\\sigma_{ijk}\\) values are known (the standard errors reported from each study) and the \\(\\mu_{ijk}\\) term will differ depending on the model.\nIn this exercise you will fit four different models to the same data set: Pooled, separate, partially pooled within school-specific effects, and partially pooled within schools and district effects.\nFor all models, use brms with the default priors and use the following settings:iter = 2000, warmup = 1000, chains = 4, seed = 2024\nThe dataset has separate columns for school and district, but for the models, we will want a unique identifier for each school. Before fitting any models, add a new column to the dataset called \"district_school\" which is the combination of the district and the school. This is then unique for each school, and will be used in the model formulae.\nPooled model:\nUse brms to fit a pooled model and answer the following questions. Check the code notebook for help starting.\nThe pooled model formula is: \\(\\mu_{ijk} = \\mu_0\\).7.1 The pooled model is written as:\n\n7.2 How many parameters are estimated in the pooled model?\n7.3 What is the Rhat value for the Intercept term?\n7.4 Based on the Rhat value, have the chains converged?\n7.5 What is the posterior mean (labelled Estimate) and lower and upper 95% posterior interval bounds (labelled CI) for the Intercept?Mean: , lower 95% interval bound: , upper 95% interval bound: \n7.6 Based on the posterior of the Intercept, what would you conclude about the effect of the intervention:7.7 Suppose there is a new school in an existing district (School = 9, District = 86). What is the mean prediction for the effect in this school? Use the function`posterior_epred` and the newdata argument.\n7.8 Suppose there is a new school in a new district (School = 1,\n District = 30). What is the mean prediction for the effect in this\n school? Use the function`posterior_epred` and the newdata argument.\nSeparate model:\nUse brms to fit a separate model and answer the following questions. Check the code notebook for help starting.\n\n\nThe separate model formula is: \\(\\mu_{ijk}= \\mu_{jk}\\).7.9 The separate model is written as:\n7.10 How many parameters are estimated in the separate model?\n7.11 What is the estimated effect for School 3 in District 71?Mean: , lower 95% interval bound: , upper 95% interval bound: \n7.12 What is the estimated effect of School 7 in District 86?Mean: , lower 95% interval bound: , upper 95% interval bound: 7.13 Based on the posterior for the separate model, what could reasonably be concluded about the effect of the intervention:7.14 Suppose there is a new\n school in an existing district (District = 86, School = 9). Why can we not easily predict the effect for this school based on the separate model posterior?\nPartially pooled model for schools.\n\nThe partially pooled model formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j\\)7.15 And the partially pooled hierarchical model:\n\n\n7.16 How many parameters are estimated in the partially pooled for schools model?\n7.17 Based on the posterior for the pooled model, what could reasonably be concluded about the effect of the intervention:\n7.18 What is the estimated effect for School 3 in District 71?Mean: , lower 95% interval bound: , upper 95% interval bound: \n7.19 What is the estimated effect of School 7 in District 86?Mean: , lower 95% interval bound: , upper 95% interval bound: \n\n7.20 Suppose there is a new\n school in an existing district (District = 86, School = 9). What would\n the mean prediction for the effect in this school? Use the\n function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n7.21 Suppose there is a new school in a new district (District = 30, School = 1). What would the mean prediction for the effect in this\n school? Use the function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n\n\nPartially pooled model for schools in districts:\n\nIn this data set, as there is a two-level structure, where schools are\n nested in districts, we can add another level to the hierarchy. The additional hierarchy formula is: \\(\\mu_{ijk} = \\mu_0 + \\mu_j + \\mu_k\\)\n7.22 What is the correct brms formula?7.23 How many parameters are estimated in the partially pooled for schools in districts model?\n\n7.24 Suppose there is a new\n school in an existing district (District = 86, School = 9). What is\n the mean prediction for the effect in this school? Use the\n function`posterior_epred` and the newdata argument with allow_new_levels = TRUE.\n7.25 Suppose there is a new school in a new district (District = 30, School = 1). What is the mean prediction for the effect in this\n school? Use the function`posterior_epred` and the `newdata` argument with `allow_new_levels = TRUE`.7.26 Which of the following statements are true relating to exchangeability assumptions in the models:\n7.27 After fitting all the models, choose which of the following statements relating to the results are true:", "crumbs": [ "Assignments", "Assignment 7" diff --git a/assignments/template1.html b/assignments/template1.html index 65b713b3..9f95fb24 100644 --- a/assignments/template1.html +++ b/assignments/template1.html @@ -553,9 +553,7 @@

8 7. A Binomial M [1] 0.455 - 0.5 == -0.0455 Error: Incorrect result for fraternal_prob = 1/10 and identical_prob = 1/20 -[ FAIL 4 | WARN 0 | SKIP 0 | PASS 9 ] - -Keep trying! +[ FAIL 4 | WARN 0 | SKIP 0 | PASS 9 ] diff --git a/assignments/template3_files/figure-html/unnamed-chunk-10-2.png b/assignments/template3_files/figure-html/unnamed-chunk-10-2.png index 94ca4cc889e3282cf297b5b3c3818e1f83e8918e..1a381ea04b557d807c39ab51ada47114ea9a0d58 100644 GIT binary patch literal 67418 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 CwP_Oo literal 67321 zcmc$`c{G-L_&)lYA}T6UgjA+X6)KrZp$SQbjFm!$lzDg!6(vJbB!nWFr_8ek3L%*@ z7Lr-!*|{G3`#Wc?^T%0dt#j5nt-aT_^S;mUdG61BU-xxg_w)Foiqd9!HhL0?wE66r z)0apjniC`vRT&*6{>Fv+^b`DN0J8 z49m%&u2T#$_n3YhX`5VLb-dbPSY`a&qQAtkY4}6z=OoO{)6ZV5+m`02kRaWTH=Q?2BtD9 z;)fm@x}NppOi=#6e;97hJhzpCimICMqY;ipb7di0iQDMQv1ogLeZ+2}=R-rBs#MV-{*={!0q&o_d`UAXUTjQI-|*nq zM=ypD5q)ci7?Ptnu}&TxnkhQL&!4L|7HcMJ|MIJNeR*+VAj+in)!>*WY2xte*lp6Q z{tAEg^Dl(d8iaLo$P*uEJKH%`KmDU1wLT3CTkH*xll}L3yTVUj66b9A5zDX(M=gKa zwx(axNWA>`@#DKj&qLyRkq|FQr z=arT1G`Dy9t7}x=ym?c#i)4iUZiMs?Nl z@^S?Q1w3|*G=r5lk2u2)Ui&y+x;Ey=R%1McOIVxDEybhf7Z=Y`i&4ZuB9B<=I6D`J zB?<;b^JDcFm%7*7x?SgJXlYyG)%MBCuCB~=t6sQ}Rm!BqQStWe+q2Jk?FN6u>SUX} zdGqGiuU|D`62qN^b9r}rYop{0`^JqMtV&mA|Abo+!DQByc<4dkB^VP|7ct0z_(B_U)$TkBMUsLXU@Dl zcun4Shwy>R@l0%NKVP4GFc9V5byn+e;xog#W4+oe;lrYImNp+)0>u_DAdX7cR>o&X z+m#d)f(5lw@Ag($75!7}D&OP2G@2W@Pw9w7Yr0;(H8(f6a+vsFLtI^v)0EH-Uzu#j z%XJjz&fSaFE3~g!e7T>GZy>zp#$hao;DG~G75~V;AM>e1O5chR3C+Y)c9Kg`i+Q*> z=)HAcqcB!F@k*v~iJeCL#a~l(a&;OXv9m1Kd`0#0zOU|^suE0#cWFvcSL%F^uWs1P z)~9QI;zXJI>J-<54_6B>Jld_Opmw{fNb+_^-qWW~@6&IjquY7t`sbP9mh*08oV6|A z#)RF)Zmh#;ysP+#j&7=+q{KjLh7pTGWo4z)P(mDiqSozixzCSH9NdwhLAvO(GHT`i zT+Vg4IYn&eChHxprEV+qot?+K=I46@SQHY}J91W?sos| zz4gkKD>NGVeuk5;UcJiga;~nc6YXYu#K?8~a456F<0nrvbBq2}usaP0FGSeN^!gdG z?A#gu$D*q!e{{$~uu>rJ`<LRbI<Py|IawO~<7hY8NdLY%)x4_Q%H_C*Hjz@-rP0K;kLFiw@=ZJN&d8wlHAfrCW4n?(zFf;~S!@yjQgjypO!8i&!r-{3-)k?*nP!@uR&4L8R{Iw!u? zdUmYuU|7wcu3{I%ygMgvCm_^u|4CYDw==YnCQ5HLyzA?`F%yF_6Tm6sT=|Tre5qMC z_x32hVQ-()@dH~d$Flu}pw<|!17DT8)8kPfBPfVN82GY^j*x1Qj_Autsl8o-D#z(I&^`7ff?66J&cQT`>AL=yfB5GEs{0i=jTU3wEC=NU+(3~@y#9xA#Sj{$SHF<6SXct zW>!1)T=28!&rv24WtnrXm;1D3ny@Ykk6ivZyo-+`>AKAd&6~}s`FpJ$qYi~$SXr9W zO5>EW8){6|FI=1%=G(tN8S61O)_J(STC`LT8x47wp1UeYV5;xAs_gXlQ_jV!-`|{? z8mL2n=7f#*RX#_;b450?Y5ILjhW5@*hwhUTbY4%&M77h)j-SF3;s(qjK3vZb(oR32 zlDl2L!=c+%Qc}`s_}MOt?u;?i%|(^KlMgn;#>Vzr2F&Qa{@44ZI>1lS$eH-Fi0pUs zA-0FuO61;7y`X&)SiYg$sku4#fd~id&OvG0zZa+e)TA)h-=|@ieDNp#Q=V!4-q4eA z4Z=EEXCm@=V&mc%xnw&EQW04!z4LG1z0*w6R5lhgELmohTYj2!2#FPoALN9{LD~wP zE3Dr74C}FhnmT?E&v0efa7`!Udie`sU1T(FvG%e3TSoj9%veZ4*PWDlHg7oP=$Ka! zs~RPHWLCy*D5%4M*shB0`zE&YUU(WcG_zRl%Q|p8P{79;zd-0zS!85nEHoRuHMGwE z5vendKrqYDPCkzyi_m#(kQUP0#Ix(3=N{N zKOGsdSZY^)Cb+k9RxXxm$!~;Z$YL!$Jskz^NK1V+`y&Q!)T8GwUz$b`wH4JNaM$Dt zt=-i+3Tb+ZqG;wFW$c?aIN3AHBQxx25e>;Q`ts!U>ph`Us5n+#(mC!t{i@-K?rWksP=)J9Ahr$@#FkMFAIJnW%$OFT@$cSnD?n3&j9pb}@GWOcA$h~QU;o@?aE zO1}QMOyioWT&B!63mFMPEAH9dQHP8wzDjRq6VJ2mKUdPWZQHhFlQe%ei33)g!{Z{J z--lAi3&!`g=UVBOs>)iCl9~HMI!wiNx`Pdh9PgF{k98JmJ-n9qjCvyR8Ist9 zcJM(DhYeZ_vEW_}oEz*9?MjZJsh61y6Qpg*h zGX3tzw^=aG*OF$Kt3Qv5{Akmz>n>-5$&%Se zcNC&b9;j@|H!(I&)y++PZDH;Gqjq6xhi^YNsM&ELp%LT>QGS!tr#)vTdVu}tg*z%l z7qI2~N5*b<7F0f3wz&l?KC?3XOt5msPdz|GEr0m__YEe7TP4%#rcqi?J=)@wi<+Sq zu-6R_ctNCWy5|97bE3w1<+!*w!(!*AMfHFoNe`o~WvnW$)G89UJC3yvhZe6c4qI1r z-lL*@!Xc$O;%rF%r@)@{>~lp$Rd}IKQ>S{I^Hj}IOEMC86FyWWSGqVPIIPOyxHH9Y z*Y(~)Y~AHDnSDx6vefiTUWn*B57cr<$XqQW4Rg&EElv+k;UW@mJ+I8V+pEYPN~E$< z_qFI8rT(HW?Po~435~JmS?v~cnXb3Jzq#<|?3pw3z%)%+o8~P6CO$pf%noP*+|%Vc z*Gbm;^&)wkgVnhpcjY{hYOAtFX$vyiHjTU$^~nY|siIMZU-AMo0U(P(9H=H_CA zLzh7O)30B@^3GjO(P^^xcUnR89k!Ioe!r)An0>T8w@$H^`_x0`>_Z3QW-G4e(v!|5 zd3ccW$l=bsyGHC@+5_LpZJf9C zph5LIhTKO!Bf!gBQ6cKpm~~4%R8y-~DDr2vIjf7IN&3pClth$@3m5#tRL-82wE5!~ zWC9Q8i#lSRgR<GHh;dMHEpu(EU;tX z5Xv6-Y{JK?SH}#X{oid3t>0EYu>K2Sb5)h$?ESAk(4dSRGuWr)4R}#5d-8T0030jnF4QVuE+wEeB0=6{-}xvtE#SReUW8zBYQv3u99whW^$ z_M< zq+{{gEtiU`DXb*HjV5|^LCe}K4+=%lQ2ckFsVw6b=`u6L@f|;GNRRd*IA_}TjV>4G z$f{itJ*2ZA5C6`Hm1bqXj#Oi$#pJNm?7B8u8l661tq2SOy3#$tb~Mw@+2+UvtyDY%Ztrv?16EDkGLuj z`JB>@cYeG*%Oa@xtz0Kf9K=MeFy)n=LtQt30_| z_M{kwX)w(wck&E89p3ebE9v^37Mg2sUOB8^_=(8xSn{bn{`z|=QL-|PJ~Q$WvkaRz z2M@}3Z+`cl(^a@@BF*Ie)Ua+Tm13&ku-~VhJ9Zp#Tb@S{T6N^zZH!k#?fe?fhjN>e z+hx}FK9=lVtx`TL{LFu;kjLq4_>}X$v?o*^_icw7&u$UcNmFqD^^s=bs*Tz}o#>VK zZ_!WCZrPpQwUd*RlZ#6Zy$X_g8lK^g*z-zHc4wGSumz7AS`SZjMM{2(6iaK}^(Aqq z^uqn`XSGguwVPb#Btm8?`RvapcKubs2)-&gbhhdjRWjT3zAH61+!N8uyQ*5;eEy2_ zAB*VU88(k=Jw2&IUz{&GHhyq%VS(t(0rus+0dWEKZ+Dlt0^>GUe_cUoLVjOHUp|s> zRIA#H2{^VD4{xNq#p$m^YVq#a{bPfnqtVvY8C4+zQTI9A6#8Oa75gQL4bC<6;fV3( zU7H@>mwg|(dc%a;d}Zgei08>g@`orL7iRQrc4Fnb0qOw~C(xZ@jRu=j!k10a5#-9@N@BBhJ4K{Np*wgXoV)Re|x_KSb+pn z@1-AJXqu(g0ee(y?zhrmojlpEA9wYU-d3kuQEE;qbric(#T|a@`MyJ2AN%@M{$BCn znOkW7_|}RX|3%A~KmAH`%ZmxQAuBUG(h5l3>rcMz;IkrOj-5LlL5?KcYFUqbVs{d- zOxK6G?2)HuBkGbemz-P2ukm<6PUn53JcTb$IBaU7!Jh?MLoUm$>b&oimoY<97$xS9)Z?2gnKK(9p(FxU=0NsxMbS7c-aPlN7JvDWg2*4 zpjg3dvf+v2Cu@P{zG3@*7T-0dZMpO5n}FzwG4+anz$rO&ISqW40d?RWIP{*Ycq^$xzCunh z<}QFH;!tbN0zU-)scT>DtnFW3n6i#2dbZTwy~^7F3a!Nd70~v3*Jhi|M>%m9KLuK8 zv`!nem|Tu*1_(KTySRAq=}h7?EZyT7%E2G#sj!Je)-JQIr8lP;%1PcG1E2&LQnxA? z0G%K*d~@m{BbUKQg_P#TmdhcU*jKiLKge=bwY8kb?!4Ah-XkRRZBfba*w{gx?rTJ? zL*ZjEv((WEo7rs5K2S>zP({N4eBL;Xc8->jQ}5yf(0sn4CHyX0*dacPhq;%6?|0FW zy5f;btz8??s8$QyQizZ<%(1v4DKiQ>_z0(P2`ck;RcW=i7eD8)8j{si_8VlI1(P4j zg~+Wf+f?}NdXkv6zrzu`=vLfS6TPkdzwNNWiAFT}$L=x)Zln?3hQYx>4k`O@GvwMZ z33HGG2i)EF?b}DYnJp;kDfkl*NL6yIB6_W9hNVSwl%OkH!Bj77{|@4?NFm=hVq8i9 z3?vopmTywKT}N6ofb_5dzY2p!shY_PjM-uYRI|HVlQ|afihv~TjWJ3Ava_v5d@8Rl zt|ebixb$cX2mPYK0w3? zxQv~Tv~qNEZZ0JAFXQfGd(w9Mh`Srm{Tdix<>E?v$D-i$C)5O#({sUqXnsM>WYgy4 zw)z;Ql-%yTyD>Y3Lq2}`gffaNz8un=J4?{mxERn$%?ukWY2WC7^Z#bRDf8s7VXlEsG^Lgy!^Q zwJ2(cX6mC1^1>t{2asn5TaaPP79hQj^lJ}h#AZKy_y7zYT(mH-14QLvB9g$Ie5t7D zDse4Dl0o7TRlJAzK7ZkYIGcZOh5r&jJ*Ue^1~^)D@8jL2?k%bM%}3vGIrRmC_536J zLG2NEpvS7x|2)G=fUm$!;6OFJ%3+OobbI&8yT+QN=HK9QU%s2Fuz6Hc7Wj`H1j z&|MOs4C6s#Oks5dyPWjs4w2_4KqSYHE7nw1IsYqXjZ=;40-yEw?_WS6&^@azvf#iFRN3-7QCifVN8 z?p%Arb3UzT(x>Atssq6mPYXV#KtP*C?VR!Hk}j9= z;`?lR1dXeTZiPW+M<3gQJ@YDDfZ=zks+wt>Z1Ymrde*4rY8qjH6o7N-N?ah z>P3~T%(i>2deBl+e~XYhI$m`R)P1u8%S?#0uyBp@$;l#dwi*ySjULLu<88`rLnFhx zXgQP0%1+q1pz$A-)LgJ`6litkSOUAqS}4O)y7yVs4%?<*@v=rHY4hmeZb+i`<_0z_ z%C+MW4lFjVck;1h`eLSNJVEqk3(ysA8y!|%nCu6BT?48Alb`S4!8?dZBv&_paeoUL zm)VX|_fkHgxzT}vxv|3WlB$PY6(CcY@M* zlawxQ`u%G43t{v%&Rqc`(y}@!_Mn0wI|Z6Vkh872-RdG`*5<#+(F=d)E=oO0c|xFP ze0&X>$rUSsp=GCA%k%%%(|o2j^2qF1=MuIZqWC>Jo$@3eLo6Bl5sRIY);CH-KX2K* zd1ZBJd~J2ER9B8=q^th&|I~!MKCRPUlLfLdlUb2e$NUP%_vFqs9N*x~BKD-re9r@LTSOxr(X#q`0jKNj z?G@BW>>D5F;^ZVW8qmh7v*WjAD4}+3wd=)31kY|Ie(T3u z$2ugJ&f9;zc0pBj?YFP!hD|%Mj~=|gSv_Q1(9_dX6)c#0tKmJ>X{tW3MFEkzZPv;ojgnF(#2BT8B^` zHA3DA71l8u*8|2#S=okyeZ5J;WgkRck`pB6PhJ{lc6E zcG`f`Q54b_2i-RiVlTrEA@5S9)R@S$pr9aB@}xmz-OB9l9`nCq9<+N2`Imo1C&xmd z0hJ*=&<1e`zSXRtm0{)$^Xobir#GP)zn&iMDlQ~%?!ro!%>VW!XA0}(-TCt^)T{u| zvrcv?+4m=H-6@=xsg6)!gWMpO5nKq$@wE(XPbN`(E4SNi=_7+^BVvXSC#||=ZU26M z#&aG5+g=B!@!~mfsvRvi@^-mym^hIv�^I#Yyt`aRbB+_DVJ%A^RW(hDK(~rs_>d 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 https://avehtari.github.io/BDA_course_Aalto/ta_info_gsu.html - 2024-10-28T10:12:01.676Z + 2024-10-28T10:19:03.418Z https://avehtari.github.io/BDA_course_Aalto/project.html - 2024-10-28T10:12:01.252Z + 2024-10-28T10:19:02.982Z https://avehtari.github.io/BDA_course_Aalto/gsu2023.html - 2024-10-28T10:12:01.252Z + 2024-10-28T10:19:02.982Z https://avehtari.github.io/BDA_course_Aalto/assignments_gsu.html - 2024-10-28T10:12:01.204Z + 2024-10-28T10:19:02.934Z https://avehtari.github.io/BDA_course_Aalto/FAQ.html - 2024-10-28T10:12:01.204Z + 2024-10-28T10:19:02.934Z https://avehtari.github.io/BDA_course_Aalto/Aalto2024.html - 2024-10-28T10:12:01.204Z + 2024-10-28T10:19:02.934Z https://avehtari.github.io/BDA_course_Aalto/Aalto2023.html - 2024-10-28T10:12:01.204Z + 2024-10-28T10:19:02.934Z https://avehtari.github.io/BDA_course_Aalto/BDA3_notes.html - 2024-10-28T10:12:01.204Z + 2024-10-28T10:19:02.934Z https://avehtari.github.io/BDA_course_Aalto/assignments.html - 2024-10-28T10:12:01.204Z + 2024-10-28T10:19:02.934Z https://avehtari.github.io/BDA_course_Aalto/demos.html - 2024-10-28T10:12:01.204Z + 2024-10-28T10:19:02.934Z https://avehtari.github.io/BDA_course_Aalto/index.html - 2024-10-28T10:12:01.252Z + 2024-10-28T10:19:02.982Z https://avehtari.github.io/BDA_course_Aalto/project_gsu.html - 2024-10-28T10:12:01.252Z + 2024-10-28T10:19:02.982Z