У меня есть ежедневные данные о ценах закрытия с разными периодами друг от друга.Продолжительность каждых данных составляет всего 5 лет, но значения NAN генерируются в одних данных различной длины (периодов), как показано в следующем примере.пример:

Я использовал эти данные для оптимизации портфеля в Python со следующим кодом:
#return calculations
rets = np.log(data/data.shift(1))
#constraints and bounds
cons = ({'type':'eq','fun':lambda x: np.sum(x)-1})
bnds = tuple((0,1) for x in range(num))
def statistics(weights):
weights = np.array(weights)
pret = np.sum(rets.mean()*weights)*252
pvol = np.sqrt(np.dot(weights.T,np.dot(rets.cov()*252,weights)))
return np.array([pret,pvol,pret/pvol])
def min_func_sharpe(weights):
return -statistics(weights)[2]
opts = sco.minimize(min_func_sharpe,num*[1./num,],method='SLSQP',bounds=bnds,constraints=cons)
opts['x']
#result
array([0.21735331, 0.33533359, 0.06560927, 0.38170383, 0. ])
#expected_return,expected_volarity,shape_ratio
statistics(opts['x'])
В этомСитуация У меня есть несколько вопросов.
Q1
Влияют ли значения NAN в данных, которые составляют портфель, на расчеты возврата или результаты оптимизации?
Q2
В описанной выше ситуации последние данные о запасах были изменены для проверки количества возможных случаев портфеля.По мере моего продвижения я получал те же результаты оптимизации, что и исходные, и я хочу знать, почему я получил эти результаты.
Q3
Как вы можете сделать портфельоптимизация в R с данными разного периода?