---
title: "Getting What You Paid For:  Student Version"
author: "Carolyn J. Anderson"
date: "9/3/2021"
output: 
   html_document:
       toc: yes
---
# Introduction

For this exercise you will need to write some R to fit a linear regression model to data where the outcome (response) variable is the state Total SAT scores (ave_tot) and the predictor (explanatory) variable is expenditure per student (exp_pp).  

Below is the code that sets up the data and a template of what you'll need to do.  You will have to write code to get some practice with this.  You will make mistakes and part of this exercise is to learn to interpret errors messages.

# Libraries
Library that I used
```{r setup, message=FALSE, warning=FALSE, include=TRUE}
library(rjags)
library(runjags)
library(jagsUI)
library(coda)
library(HDInterval)  # for high density interval
```

# Data

You can find the data on the course web-site.  You need to change the path to where ever you put the data.

```{r}
df <- read.table("D:/Dropbox/edps 590BAY/Lectures/3 Normal/getting_what_paid_for_data.txt", header=TRUE)
names(df)
head(df)
```

# Plot the Data

..and overlay the normal distribution.  There are a number of ways to do this and what's below keeps things in terms of frequencies.  The first line sets up the histogram and saves it as "h".  The next two lines get data for horizontal and vertical axis.  The third command puts density values of vertical fit values into scale of frequencies and uses information from the historgram.  The "lines" command puts in the normal curve.  

```{r}
h =hist(df$ave_tot, breaks = 10, density = 10,
            col = "darkblue", 
            xlab = "Average Total SAT", 
            ylab = "Frequency",
            main="Normal curve Over histogram")
xfit <- seq(min(df$ave_tot), max(df$ave_tot), length = 50) 
yfit <- dnorm(xfit, mean = mean(df$ave_to), sd = sd(df$ave_tot)) 
yfit <- yfit * diff(h$mids[1:2]) * length(df$ave_tot) 
lines(xfit, yfit, col = "black", lwd = 2)
```

# Sample Statistics

We need the sample size and observed sample mean.  We will pretend that we know what the variance equals and use the sample variance for this.

```{r}
n <- nrow(df)
ybar <- mean(df$ave_tot)
std <- sd(df$ave_tot)
s2 <- var(df$ave_tot)


descriptive <- c(n, ybar, std, s2)
names(descriptive) <- c("N","Ybar","std","s^2")
descriptive
```

# OLS Simple Linear Regression
```{r}
summary(ols <- lm(ave_tot ~ exp_pp, data=df))
```

# Bayesian

## Data


## Model for Simple Linear Regression



## Starting Values



## Create Model Object


## Get Samples



## Did it Converge?





## Summary Statistics of Posteriors


# Monte Carlo
Simulate posterior distribution of state average SAT total scores and use these to


###    Compute the mean per state 

###     Compare with data

###     Any other statistics that interests you
