Я использую функцию lmrob из надежного пакета.Я получаю несколько предупреждений и не знаю, как их интерпретировать.lmrob используется в цикле for.Ниже приведен код и предупреждения.
warnings
S refinements did not converge (to refine.tol=1e-07) in 200 (= k.max) steps
In lmrob.fit(x, y, control, init = init) :
M-step did NOT converge. Returning unconverged SM-estimate
код:
for(i in 1:ncol(core)){
for(j in 1:ncol(core)){
if(i == j){
dat[i,j] = 0
}else {
samp = mutate(core,
l1 = lag(core[,i]),
l2 = lag(core[,j]))
samp = na.omit(samp)
predicted = samp[,i]
explanatory = samp[,j]
l1 = samp$l1
l2 = samp$l2
model = lmrob(predicted ~ explanatory + l1 + l2)
new_data = data.frame(explanatory = iv[j], l1 =
tail(samp$l1,1), l2 = tail(samp$l2,1))
pred1 = predict(model, new_data)
dat[j,i] = round(log(iv[i]/as.numeric(pred1)),2)
}}
}
Основной объект изначально xts, однако мы преобразуем его в data.frame
core = as.data.frame(coredata(xts_object))
class(core)
# "data.frame"
> str(core)
'data.frame': 357 obs. of 3 variables:
$ VNQ: num 0.0744 0.1078 0.1246 0.1426 0.1064 ...
$ QQQ: num 0.177 0.179 0.171 0.138 0.165 ...
$ SPY: num 0.1066 0.1105 0.1183 0.0884 0.0981 ...