回归截距与权重之和等于1

时间:2017-09-08 10:04:48

标签: r lm

我正在研究微软(MSFT)如何解释其他科技股,即谷歌(GOOG),Facebook(FB)和亚马逊(AMZN)。

getSymbols(c("MSFT","GOOG","FB","AMZN"), from=as.Date("2015-01-01"))

然后我运行一个简单的线性回归并提取系数

reg <- lm(log(Ad(MSFT)) ~ log(Ad(GOOG))+log(Ad(FB))+log(Ad(AMZN)))

w <- reg$coef[2:4]

sum(w) = 0.9021839

现在我希望权重之和为1,即

sum(w) = 1

所以我做了以下事情:

w_adj <- reg$coef[2:4]/sum(reg$coef[2:4])

这样,权重之和等于1,但显然拦截必须改变。

我如何估计新的拦截,即w_adj的拦截?

我虽然如下:

dat <- merge(log(Ad(GOOG)),log(Ad(FB)),log(Ad(AMZN)),all=FALSE)

adj <- xts(dat %*% w_adj, index(dat))

reg_adj <- lm(log(Ad(MSFT))-adj ~ 1)

有意义吗?

我还认为加权回归是另一种选择。

非常感谢任何帮助。

0 个答案:

没有答案