From 35daa8cd104e1efa21cf7e1feeba507afc79da4b Mon Sep 17 00:00:00 2001 From: Travis Gerke Date: Fri, 22 Sep 2023 16:42:56 -0700 Subject: [PATCH 1/6] ignore .DS_Store --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 662eae8..be4978d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ /.quarto/ .Rproj.user + +.DS_Store From 6930bd92fbaecd62b3686d65ef08540077b605f7 Mon Sep 17 00:00:00 2001 From: Travis Gerke Date: Fri, 22 Sep 2023 18:32:34 -0700 Subject: [PATCH 2/6] prediction versus causal modeling draft --- posts/prediction-explanation/image.png | Bin 0 -> 26319 bytes posts/prediction-explanation/index.qmd | 88 +++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 posts/prediction-explanation/image.png create mode 100644 posts/prediction-explanation/index.qmd diff --git a/posts/prediction-explanation/image.png b/posts/prediction-explanation/image.png new file mode 100644 index 0000000000000000000000000000000000000000..e90214b3ba20522c7cfce0f8b2176d2bba970afd GIT binary patch literal 26319 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 wuiMTT0rFa`v}^Tf + ggplot() + + geom_point(aes(x = x1, y = x2)) +``` + +Also, $y$ is very noisy + +```{r} +df_sim |> + ggplot() + + geom_histogram(aes(x = y)) +``` + +If we use the true causal model we get a prediction RMSE of + +```{r} +preds_causal <- 10*df_sim$x1 + df_sim$x2 +sqrt(mean(df_sim$y - preds_causal)^2) +``` + +With the biased prediction model, we get a smaller RMSE of + +```{r} +preds_biased <- 10*df_sim$x1 +sqrt(mean(df_sim$y - preds_biased)^2) +``` + +And that's it! Our true causal model is not as good at predicting the outcome compared to a biased model. From a9228c5954bb58aded1adae7f8f697ae6c943b85 Mon Sep 17 00:00:00 2001 From: Travis Gerke Date: Mon, 25 Sep 2023 11:20:08 -0700 Subject: [PATCH 3/6] theme plots --- posts/prediction-explanation/index.qmd | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/posts/prediction-explanation/index.qmd b/posts/prediction-explanation/index.qmd index 751e446..4c21224 100644 --- a/posts/prediction-explanation/index.qmd +++ b/posts/prediction-explanation/index.qmd @@ -60,7 +60,8 @@ We see that $x_1$ and $x_2$ are highly correlated, with $x_2$ having a small ran ```{r} df_sim |> ggplot() + - geom_point(aes(x = x1, y = x2)) + geom_point(aes(x = x1, y = x2)) + + hrbrthemes::theme_ipsum_rc() ``` Also, $y$ is very noisy @@ -68,7 +69,8 @@ Also, $y$ is very noisy ```{r} df_sim |> ggplot() + - geom_histogram(aes(x = y)) + geom_histogram(aes(x = y)) + + hrbrthemes::theme_ipsum_rc() ``` If we use the true causal model we get a prediction RMSE of From 9a47baef4ed33bc713b95ea674291d648591f405 Mon Sep 17 00:00:00 2001 From: Travis Gerke Date: Mon, 25 Sep 2023 11:52:58 -0700 Subject: [PATCH 4/6] swap to yardstick --- posts/prediction-explanation/index.qmd | 32 +++++++++++++++++++++----- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/posts/prediction-explanation/index.qmd b/posts/prediction-explanation/index.qmd index 4c21224..b84bc13 100644 --- a/posts/prediction-explanation/index.qmd +++ b/posts/prediction-explanation/index.qmd @@ -60,7 +60,10 @@ We see that $x_1$ and $x_2$ are highly correlated, with $x_2$ having a small ran ```{r} df_sim |> ggplot() + - geom_point(aes(x = x1, y = x2)) + + geom_point( + aes(x = x1, y = x2), + alpha = .7, color = "steelblue", size = 3 + ) + hrbrthemes::theme_ipsum_rc() ``` @@ -69,22 +72,39 @@ Also, $y$ is very noisy ```{r} df_sim |> ggplot() + - geom_histogram(aes(x = y)) + + geom_histogram( + aes(x = y), + fill = "steelblue", bins = 35, alpha = .8, color = "steelblue" + ) + hrbrthemes::theme_ipsum_rc() ``` +Let's add predictions from the true causal model and the biased prediction model to our data frame, also calculating the errors between their predictions and observed values. + +```{r} +df_preds <- df_sim |> + mutate( + preds_causal = 10*x1 + x2, + preds_biased = 10*x1, + errors_causal = y - preds_causal, + errors_biased = y - preds_biased + ) +``` + If we use the true causal model we get a prediction RMSE of ```{r} -preds_causal <- 10*df_sim$x1 + df_sim$x2 -sqrt(mean(df_sim$y - preds_causal)^2) +df_preds |> + yardstick::rmse(y, preds_causal) |> + pull(.estimate) ``` With the biased prediction model, we get a smaller RMSE of ```{r} -preds_biased <- 10*df_sim$x1 -sqrt(mean(df_sim$y - preds_biased)^2) +df_preds |> + yardstick::rmse(y, preds_biased) |> + pull(.estimate) ``` And that's it! Our true causal model is not as good at predicting the outcome compared to a biased model. From 3512962591c41136adeeb7efb7a19edfd447a7a6 Mon Sep 17 00:00:00 2001 From: Travis Gerke Date: Mon, 25 Sep 2023 12:29:27 -0700 Subject: [PATCH 5/6] parameterize betas --- posts/prediction-explanation/index.qmd | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/posts/prediction-explanation/index.qmd b/posts/prediction-explanation/index.qmd index b84bc13..2f9ec48 100644 --- a/posts/prediction-explanation/index.qmd +++ b/posts/prediction-explanation/index.qmd @@ -40,17 +40,22 @@ will result in improved prediction accuracy. We set up a simulation for a correct causal model $y = 10x_1 + x_2$ as so: ```{r} +#| message: false + library(tidyverse) set.seed(8675309) n <- 100 # simulate the exposure variables -x1 <- 100*rnorm(n) -x2 <- x1/100 + rnorm(n, sd = .1) +x1 <- rnorm(n) +x2 <- x1/100 + rnorm(n, sd = .01) + +beta_1 <- 1 +beta_2 <- 1 # simulate the outcome -y <- 10*x1 + x2 + rnorm(n, sd = 100) +y <- beta_1*x1 + beta_2*x2 + rnorm(n, sd = 100) df_sim <- tibble(y = y, x1 = x1, x2 = x2) ``` @@ -84,10 +89,8 @@ Let's add predictions from the true causal model and the biased prediction model ```{r} df_preds <- df_sim |> mutate( - preds_causal = 10*x1 + x2, - preds_biased = 10*x1, - errors_causal = y - preds_causal, - errors_biased = y - preds_biased + preds_causal = beta_1*x1 + beta_2*x2, + preds_biased = beta_1*x1 ) ``` From e51717eff9c7ee4ee5ec9fff2044a21b350ee1e5 Mon Sep 17 00:00:00 2001 From: Travis Gerke Date: Mon, 25 Sep 2023 13:11:52 -0700 Subject: [PATCH 6/6] simplify --- posts/prediction-explanation/index.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/prediction-explanation/index.qmd b/posts/prediction-explanation/index.qmd index 2f9ec48..ce559ba 100644 --- a/posts/prediction-explanation/index.qmd +++ b/posts/prediction-explanation/index.qmd @@ -49,7 +49,7 @@ n <- 100 # simulate the exposure variables x1 <- rnorm(n) -x2 <- x1/100 + rnorm(n, sd = .01) +x2 <- x1/10 + rnorm(n, sd = .01) beta_1 <- 1 beta_2 <- 1