################################################
# Portfolio Utility Analysis – Homework 3
################################################
############################
# 1. GIVEN DATA
############################
rf <- 0.05 # T-bill rate
rm <- 0.13 # Expected market return
sigma_m <- 0.20 # Market standard deviation
# Portfolio weights
w_bills <- c(0,0.2,0.4,0.6,0.8,1.0)
w_index <- 1 - w_bills
############################
# 2. PORTFOLIO CALCULATIONS
############################
# Expected return
ER <- w_bills*rf + w_index*rm
# Standard deviation (T-bill = risk free)
SD <- w_index * sigma_m
# Variance
VAR <- SD^2
############################
# 3. UTILITY CALCULATION
############################
# Risk aversion coefficients
A2 <- 2
A3 <- 3
Utility_A2 <- ER - 0.5*A2*VAR
Utility_A3 <- ER - 0.5*A3*VAR
############################
# 4. RESULT TABLE
############################
portfolio_results <- data.frame(
Weight_TBills = w_bills,
Weight_SP500 = w_index,
Expected_Return = ER,
Std_Dev = SD,
Variance = VAR,
Utility_A2 = Utility_A2,
Utility_A3 = Utility_A3
)
print("Portfolio Results")
## [1] "Portfolio Results"
print(portfolio_results)
## Weight_TBills Weight_SP500 Expected_Return Std_Dev Variance Utility_A2
## 1 0.0 1.0 0.130 0.20 0.0400 0.0900
## 2 0.2 0.8 0.114 0.16 0.0256 0.0884
## 3 0.4 0.6 0.098 0.12 0.0144 0.0836
## 4 0.6 0.4 0.082 0.08 0.0064 0.0756
## 5 0.8 0.2 0.066 0.04 0.0016 0.0644
## 6 1.0 0.0 0.050 0.00 0.0000 0.0500
## Utility_A3
## 1 0.0700
## 2 0.0756
## 3 0.0764
## 4 0.0724
## 5 0.0636
## 6 0.0500
############################
# 5. BEST PORTFOLIO
############################
best_A2 <- portfolio_results[which.max(Utility_A2),]
best_A3 <- portfolio_results[which.max(Utility_A3),]
print("Best Portfolio for A = 2")
## [1] "Best Portfolio for A = 2"
print(best_A2)
## Weight_TBills Weight_SP500 Expected_Return Std_Dev Variance Utility_A2
## 1 0 1 0.13 0.2 0.04 0.09
## Utility_A3
## 1 0.07
print("Best Portfolio for A = 3")
## [1] "Best Portfolio for A = 3"
print(best_A3)
## Weight_TBills Weight_SP500 Expected_Return Std_Dev Variance Utility_A2
## 3 0.4 0.6 0.098 0.12 0.0144 0.0836
## Utility_A3
## 3 0.0764
################################################
# CFA PROBLEMS 1–3
################################################
ER2 <- c(0.12,0.15,0.21,0.24)
SD2 <- c(0.30,0.50,0.16,0.21)
A <- 4
VAR2 <- SD2^2
Utility <- ER2 - 0.5*A*VAR2
investment_results <- data.frame(
Investment = 1:4,
Expected_Return = ER2,
Std_Dev = SD2,
Variance = VAR2,
Utility = Utility
)
print("CFA Investment Results")
## [1] "CFA Investment Results"
print(investment_results)
## Investment Expected_Return Std_Dev Variance Utility
## 1 1 0.12 0.30 0.0900 -0.0600
## 2 2 0.15 0.50 0.2500 -0.3500
## 3 3 0.21 0.16 0.0256 0.1588
## 4 4 0.24 0.21 0.0441 0.1518
############################
# Best investment
############################
best_risk_averse <- investment_results[which.max(Utility),]
best_risk_neutral <- investment_results[which.max(ER2),]
print("Best Investment (Risk Averse A=4)")
## [1] "Best Investment (Risk Averse A=4)"
print(best_risk_averse)
## Investment Expected_Return Std_Dev Variance Utility
## 3 3 0.21 0.16 0.0256 0.1588
print("Best Investment (Risk Neutral)")
## [1] "Best Investment (Risk Neutral)"
print(best_risk_neutral)
## Investment Expected_Return Std_Dev Variance Utility
## 4 4 0.24 0.21 0.0441 0.1518
################################################
# 6. EFFICIENT FRONTIER GRAPH
################################################
plot(
SD, ER,
type="b",
pch=19,
xlab="Portfolio Risk (Standard Deviation)",
ylab="Expected Return",
main="Efficient Frontier: T-Bill and S&P 500 Portfolio"
)
grid()
