2

時間、シンボル、価格、ボラティリティの列を持つデータフレームがあります。このデータフレームを使用して、シンボルのダミー変数を使用して初回パス OLS 回帰を実行します

fit <- lm(volatility~factor(symbol) + 0

次に、その回帰の係数を2回目の回帰で使用したいので、回帰の係数を保存して再利用し、それを使用してボラティリティをスケーリングします

scale <- summary(fit)$coefficients[,1]
yscale <- volatility/scale
fit2 <- lm(yscale~factor(time) + factor(symbol)*factor(time) + 0

私が抱えている問題は、各シンボルに適用できる係数係数を使用したいということです。したがって、元のデータフレームでは、ボラティリティをそのシンボルに一致する係数で割りたいと思います。したがって、シンボル、DDX、CTY、LOL がある場合、DDX のボラティリティを回帰からの係数 DDX の係数で割り、CTY と LOL について同じことを行います。また、2 番目の fit2 係数で積を計算する方法を理解する必要があります。

4

1 に答える 1

1

正確な答えを得るには、再現可能な例を提供する必要があります。ここにいくつかのデータがあります:

dat <- data.frame(volatility= rnorm(30),
                  symbol = sample(c('DDX', 'CTY', 'LOL'),30,rep=TRUE))
fit <- lm(volatility~factor(symbol) + 0,data=dat)
mm <- coef(fit)
names(mm) <- gsub('factor\\(symbol\\)','',names(mm))

名前を変換して、後で使用できるきれいな名前を取得します。

   CTY        DDX        LOL 
 -0.1991273  0.1331980 -0.1567511 

次にtransform、 を使用して、各ボラティリティを対応する係数で割ります。

transform(dat,vol.scale = volatility/mm[symbol],coef = mm[symbol])
      volatility symbol    vol.scale       coef
1  -0.592306253    DDX  -4.44680974  0.1331980
2   1.143486046    DDX   8.58485769  0.1331980
3  -0.693694139    LOL   4.42544868 -0.1567511
4  -0.166050131    LOL   1.05932325 -0.1567511
5   1.381900588    CTY  -6.93978353 -0.1991273
..............................
于 2013-06-25T19:43:55.043 に答える