问题描述
数据:
dput(head(mydata))
structure(list(DATE = structure(c(-315619200,-312940800,-310435200,-307756800,-305164800,-302486400),tzone = "UTC",class = c("POSIXct","POSIXt")),RF = c(0.33,0.29,0.35,0.19,0.27,0.24),RMRF = c(-6.99,0.99,-1.46,-1.7,3.08,2.09),SMB = c(2.13,0.71,-0.65,0.32,1.42,-0.24),UMD = c(-3.28,3.59,1.85,2.6,4.77,1.03),HML = c(2.65,-2.15,-2.69,-2.22,-3.83,-0.3),JANDUM = c(1,0),R4 = c(-4.57,1.5,-2.83,-1.98,3.54,2.15)),row.names = c(NA,-6L),class = c("tbl_df","tbl","data.frame"))
我的数据包含:
R4 是投资组合的百分比回报,RF 是无风险商品的回报(无风险利率),RMRF 是投资组合的超额回报 Market Portfolio,SMB、UMD 和 HML 是 3 个因子,JANDUM 是一月份的虚拟变量(January Dummy)。
数据是从 1/1960 到 12/2003 的每月频率(总共有 528 次观察)。
我构建以下代码的目的是“将投资组合超额收益 (R4-RF) 回归到一个常数和所有其他变量(RMRF、SMB、UMD、HML 和 JANDUM)”。
mydata$PER <-mydata$R4 - mydata$RF
mydata$JANDUM <- as.factor(mydata$JANDUM)
# Fit regression model
model <- lm(PER ~ DATE + RMRF + SMB + UMD + HML + JANDUM,data = mydata)
summary(model)
然后我想检查自相关和条件的存在 异方差性。
我的尝试:
# // Tests that comes to establish the presence or absence of heteroscedasticity
# Breusch-Pagan test
lmtest::bptest(model)
# Breusch-Pagan test
car::ncvTest(model)
PER_BCMod <- caret::BoxCoxTrans(mydata$PER)
print(PER_BCMod)
# The model for creating the Box-cox transformed variable is ready. Lets Now apply it on mydata$PER and append it to a new dataframe.
mydata <- cbind(mydata,PER_New = predict(PER_MCMod,mydata$PER))
head(mydata)
# The transformed data for our new regression model is ready. Lets build the model and check for heteroscedasticity.
model_bc <- lm(PER_New ~ DATE + RMRF + SMB + UMD + HML + JANDUM,data=mydata)
bptest(model_bc)
plot(model_bc)
错误:
> print(PER_BCMod)
Box-Cox Transformation
528 data points used to estimate Lambda
Input data summary:
Min. 1st Qu. Median Mean 3rd Qu. Max.
-30.0700 -2.7800 1.0500 0.6758 4.4325 23.5800
Lambda Could not be estimated; no transformation is applied
> # The model for creating the Box-cox transformed variable is ready. Lets Now apply it on mydata$PER and append it to a new dataframe.
> mydata <- cbind(mydata,mydata$PER))
Error in predict(PER_MCMod,mydata$PER) : object 'PER_MCMod' not found
我不明白这里有什么问题?欢迎您提出建议。 这个过程是错误的,我必须遵循其他解决方案吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)