编辑代码



# Q2.a
# Load the data and libraries
df_excess_returns <- read.table('xr201smr.xlsx', skip=1, header=TRUE)
df_excess_returns <- na.omit(df_excess_returns)
# First Regression Model: y_i = alpha + beta * x_i + epsilon_i
model1 <- lm(RENDCYCO ~ RENDMARK, data=df_excess_returns)
# Second Regression Model: y = beta * x_i + omega (No Intercept)
model2 <- lm(RENDCYCO ~ RENDMARK - 1, data=df_excess_returns)
# Summary of both models to get the coefficients
summary(model1)
summary(model2)

# Q2.b
# Residuals for both models
residuals1 <- resid(model1)
residuals2 <- resid(model2)
# Check Condition (2.11) for both models
condition_2_11_model1 <- sum(residuals1)
condition_2_11_model2 <- sum(residuals2)
# Check Condition (2.12) for both models
SST <- sum((df_excess_returns$RENDCYCO - mean(df_excess_returns$RENDCYCO))^2)
SSR1 <- sum((fitted(model1) - mean(df_excess_returns$RENDCYCO))^2)
SSE1 <- sum(residuals1^2)
SSR2 <- sum((fitted(model2) - mean(df_excess_returns$RENDCYCO))^2)
SSE2 <- sum(residuals2^2)
condition_2_12_model1 <- SST - (SSE1 + SSR1)
condition_2_12_model2 <- SST - (SSE2 + SSR2)


# Q2.c
correlation_between_residuals <- cor(residuals1, residuals2)