#clear the environment 
rm(list=ls()) 
#setwd(path)
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
## ------------------------------------------------------------------------
## QUESTION 2 
## ------------------------------------------------------------------------

# Define parameters
r_W <- 0.02  # Interest rate on wealth
n <- 5  # Number of periods
net_income <- c(0,100, 200, 300, 200, 150)
discount_factors <- c(0, 1 / (1 + r_W)^(0:(n-1)))
print(discount_factors)
sum_discount_factors <- sum(discount_factors)

# Case 1: W_1 - W_6 / (1+r^W)^5 = 0
wealth <- numeric(n+1)
wealth[1] <- 200 
wealth[6]<- (1+r_W)^5*wealth[1]
C <- (sum(net_income * discount_factors) + ((1+r_W)*wealth[1] - wealth[6] / (1 + r_W)^4)) / sum_discount_factors

for (t in 2:n) {
  wealth[t] <- (1 + r_W) * wealth[t-1] + net_income[t] - C
}

case1_table <- data.frame(
  Year = 1:(n+1),
  Net_Income = net_income,
  Consumption = c(0,rep(C, n)),
  Wealth = wealth
)
print(case1_table)

# Case 2: W_t+5 = 0
# Define parameters
r_W <- 0.02  # Interest rate on wealth
n <- 5  # Number of periods
net_income <- c(0,100, 200, 300, 200, 150)
discount_factors <- c(0, 1 / (1 + r_W)^(0:(n-1)))
print(discount_factors)
sum_discount_factors <- sum(discount_factors)

# 
wealth2 <- numeric(n+1)
wealth2[1] <- 200 
wealth2[6]<- 0
C2 <- (sum(net_income * discount_factors) + ((1+r_W)*wealth2[1] - wealth2[6] / (1 + r_W)^4)) / sum_discount_factors

for (t in 2:n) {
  wealth2[t] <- (1 + r_W) * wealth2[t - 1] + net_income[t ] - C2
}

case2_table <- data.frame(
  Year = 1:(n+1),
  Net_Income = net_income,
  Consumption = c(0,rep(C2, n)),
  Wealth = wealth2
)
print(case2_table)


## ------------------------------------------------------------------------
## QUESTION 4 
## ------------------------------------------------------------------------


# Define parameters fo the baseline scenario 

r_W <- 0.02  # Interest rate on wealth
n <- 5  # Number of periods
net_income <- c(0,100, 200, 300, 200, 150)
discount_factors <- c(0, 1 / (1 + r_W)^(0:(n-1)))
print(discount_factors)
sum_discount_factors <- sum(discount_factors)

wealth <- numeric(n+1)
wealth[1] <- 200 
wealth[6]<-  (1+r_W)^n*wealth[1]

#solve for consumption and wealth 

C <- (sum(net_income * discount_factors) + ((1+r_W)*wealth[1] - wealth[6] / (1 + r_W)^4)) / sum_discount_factors

for (t in 2:n) {
  wealth[t] <- (1 + r_W) * wealth[t-1] + net_income[t] - C
}

table_bl <- data.frame(
  Year = 1:(n+1),
  Net_Income = net_income,
  IR=c(rep(r_W, (n+1))),
  Consumption = c(0,rep(C, n)),
  Wealth = wealth
)
print(table_bl)


# Define parameters for the alternative scenario 
r_W <- 0.04  # Interest rate on wealth
n <- 5  # Number of periods
net_income <- c(0,100, 200, 300, 200, 150)
discount_factors <- c(0, 1 / (1 + r_W)^(0:(n-1)))
print(discount_factors)
sum_discount_factors <- sum(discount_factors)

wealth2 <- numeric(n+1)
wealth2[1] <- 200 
wealth2[6]<-  (1+r_W)^n*wealth[1]
#solve for consumption and wealth 
C2 <- (sum(net_income * discount_factors) + ((1+r_W)*wealth2[1] - wealth2[6] / (1 + r_W)^4)) / sum_discount_factors

for (t in 2:n) {
  wealth2[t] <- (1 + r_W) * wealth2[t - 1] + net_income[t ] - C2
}

table_al <- data.frame(
  Year = 1:(n+1),
  Net_Income = net_income,
  Consumption = c(0,rep(C2, n)),
  IR=c(rep(r_W, (n+1))),
  Wealth = wealth2
)
print(table_al)