#python #loops #linear-regression #finance #quantitative-finance
#python #циклы #линейная регрессия #финансы #количественный-финансы
Вопрос:
Я пытаюсь перебрать список акций, чтобы получить коэффициенты с помощью линейной регрессии. Я получаю следующее (см. Изображение). Если я попытаюсь применить код без цикла for, поэтому, когда я отдельно ввожу тикеры списка, я получаю результаты (см. Изображение)
Ответ №1:
Вам нужно перебирать список tickers
с помощью for
цикла, используя синтаксис:
for ticker in tickers:
# Do something here
pass
Это вернет элемент string из списка на каждой итерации, поэтому на первой итерации значение ticker
будет установлено 'AAPL'
равным . Затем вы можете передать это в конкатенацию строк для выполнения регрессии OLS.
Я скопировал ваш код с изображения, чтобы упростить его для вас, и попытался написать функциональную версию.
tickers = ['AAPL', 'AMGN'] # Use your full list instead here
results_list = [] # Initialise list to store results
for ticker in tickers:
model = smf.ols(ticker '~ DJIA', data=df) # run OLS on stock
results_list.append(model.fit(cov_type='HAC', cov_kwds={'maxlags':5}))
for i, ticker in enumerate(tickers):
model = smf.ols(ticker '~ DJIA', data=df)
results_list.append(model.fit(cov_type='HAC', cov_kwds={'maxlags':5}))
print(results_list[i].summary2()) # optionally print the results
Пожалуйста, обратите внимание, что без входных данных и вашего исходного кода (для удобства копирования / вставки) сложно предоставить тестовое и рабочее решение, но я надеюсь, что вышесказанное поможет вам на правильном пути.