检查条件异方差

问题描述

数据:

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 (将#修改为@)