Как перебирать список для регрессии?

#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 
  

Пожалуйста, обратите внимание, что без входных данных и вашего исходного кода (для удобства копирования / вставки) сложно предоставить тестовое и рабочее решение, но я надеюсь, что вышесказанное поможет вам на правильном пути.