Как эффективно оптимизировать пропускную способность - PullRequest
0 голосов
/ 03 июня 2019

Я хочу решить следующую проблему.Я написал код, в котором, используя полосу пропускания, данные для некоторой временной точки строятся для выполнения OLS.Для каждого момента времени мы используем локальное окно с данными, взвешенными по ядру, и выполняем OLS для этого.В коде это выглядит очень сложно, но построенные матрицы представляют собой данные вокруг каждой временной точки и используются для регрессии.Однако, поскольку следующая цель состоит в том, чтобы найти оптимальную полосу пропускания, оптимальная полоса пропускания является той, которая минимизирует SSR.Таким образом, h должен быть отрегулирован, что он делает именно это.Я застрял с этой проблемой, так как я не знаю эффективного способа сделать это.Кто-нибудь знает эффективный способ найти значение h, которое минимизирует SSR?

PS: Этот код может быть очень неэффективным или казаться очень сложным, я не знаю, что с этим делать, извините.

h = 0.01 #Bandwidth
T = 1045
y = runif(T-1, min=0, max=100)
X = runif(T-1, min=0, max=100)

K <- function(u, h) {
      0.75*(1-(u/(T*h))^2)}
k = 800
#Create empty arrays
Y_1 = matrix(data = 0, nrow = length((k-T*h):(k+T*h)), ncol = T-1-(2*T*h))
X_1 = matrix(data = 0, nrow = length((k-T*h):(k+T*h)), ncol = T-1-(2*T*h))
gamma_1 = matrix(data = NA, nrow = 2, ncol = T-1-(2*T*h))
e_1 = matrix(data = NA, nrow = T-1-(2*T*h), ncol = 1)
CCAPM_1 = matrix(data = NA, nrow = T-1-(2*T*h), ncol = 1)

##Fill the empty matrices such that the OLS regression can be performed
for (i in (T*h):(T-2-(T*h))){
Y_1[,(i-1-(T*h))] = (K(((i-T*h):(i+T*h))-i, h)^(.5))*y[((i-T*h)+1):((i+T*h)+1)]       
X_1[,(i+1-(T*h))] = (K(((i-T*h):(i+T*h))-i, h)^(.5))*X[((i-T*h)+1):((i+T*h)+1)]  
}

for (s in (1:(T-1-(2*T*h)))){                                        #Only this interval such that boundary regrions are avoided
  gamma_1[,s] = coefficients(lm(Y_1[,s] ~ X_1[,s]))                  #OLS regression within small time window
  CCAPM_1[s] = gamma_1[1,s] + gamma_1[2,s]*t(X[s+1])
  e_1[s] = y[s] - CCAPM_1[s]
  SSR_1 = sum(e_1^2, na.rm = TRUE)
}

Единственное, о чем я могу думать лично, - это построить много значений для h и проверить, для какого h SSR минимальна, но это займет много времени вычислений.

...