Рассчитать прогнозируемое значение на основе коэффициента и константы на Python.

Вопрос или проблема

У меня есть коэффициенты и константа (альфа). Я хочу перемножить и сложить значения, как в этом примере. (это нужно сделать для 300000 строк)

Прогноз = константа + (значениеСтроки1 * кол1) + (-значениеСтроки1 * кол2) + (-значениеСтроки1 *
кол3) + (значениеСтроки1 * кол4) + (значениеСтроки1 * кол5)

У меня есть датафрейм с одной строкой, который содержит коэффициенты и константу, как показано ниже

кол1 кол2 кол3 кол4 кол5 константа
2.447697e-07 -5.214072e-07 -0.000003 0.000006 555 222

и другой датафрейм с точно такими же именами, но с ежемесячными значениями.

кол1 кол2 кол3 кол4 кол5
16711 17961 0 20 55

Я попробовал отсортировать столбцы, а затем применить произведение df.dot.

selected_columns = selected_columns.sort_index(axis=1)
#датафрейм mean_coefficients 21ый (начиная с 0) это константа, поэтому я использую остальные столбцы
selected_columns['predicted_Mcap']=selected_columns.dot(mean_coefficients.iloc[:,0:20])+mean_coefficients['const'] 

mean_coefficients.columns
результат:
['CashSTInv_w', 'CommonEquity_w', 'GainLossAssetSale_w', 'IncomeTaxes_w', 'LTDebt_w', 'NIbefEIPrefDiv_w', 'NIbefPrefDiv_w', 'NItoCommon_w', 'OtherCA_w', 'OtherCL_w', 'OtherIncome_w', 'OtherLiabilities_w', 'OtherTA_w', 'PPT_w', 'PreTaxIncome_w', 'PrefDiv_w', 'Sales_w', 'TotalAssets', 'TotalDiv_w', 'TotalLiabilities_w', 'const']

причина, по которой я использую mean_coefficients.iloc[:,0:20], заключается в том, что я не хочу включать const в умножение, это просто нужно добавить в конце. пожалуйста, обратите внимание, что моя константа (альфа) сохранена в mean_coefficients.

selected_columns.columns
результат:
['CashSTInv_w', 'CommonEquity_w', 'GainLossAssetSale_w', 'IncomeTaxes_w', 'LTDebt_w', 'NIbefEIPrefDiv_w', 'NIbefPrefDiv_w', 'NItoCommon_w', 'OtherCA_w', 'OtherCL_w', 'OtherIncome_w', 'OtherLiabilities_w', 'OtherTA_w', 'PPT_w', 'PreTaxIncome_w', 'PrefDiv_w', 'Sales_w', 'TotalAssets', 'TotalDiv_w', 'TotalLiabilities_w']

я рассчитала прогнозное значение, но когда проверила его в Excel, значение не совпало.

я правильно считаю?

Как указано в df.dot() в документации названия столбцов DataFrame и индекс другого должны содержать одинаковые значения, так как они будут выровнены перед умножением. В противном случае вы получите

ValueError: матрицы не выровнены

Таким образом, у вас есть 2 варианта:

использовать df.dot() с .T или транспонированным датафреймом. Ваши названия столбцов будут как индексы и готовы для умножения в виде матрицы. Помните, что названия столбцов в обоих датафреймах должны быть одинаковыми. Даже одна лишняя колонка вызовет ошибку.

selected_columns['predicted_MCAP']=selected_columns.dot(mean_coefficients.iloc[:,1:21].T) + mean_coefficients['const']

чтобы обойти это, я использую массив numpy

result = df1.dot(df2.values)

Ответ или решение

Для решения задачи прогнозирования с использованием коэффициентов и постоянной (альфа) в Python мы можем воспользоваться библиотеками pandas и numpy, которые предлагают удобный функционал для работы с такими вычислениями. Исходя из предоставленных данных и сценария, вам нужно умножить и сложить значения коэффициентов и постоянной для каждой строки вашего большого датафрейма.

Подход к решению

  1. Загрузка данных: Предположим, что у вас уже есть два датафрейма:

    • mean_coefficients, содержащий коэффициенты и постоянную.
    • selected_columns, содержащий значения строк.
  2. Концепция вычисления: Вы должны умножить каждое значение строки на соответствующий коэффициент и затем сложить результаты. Дополнительно, к этой сумме нужно добавить ваше значение постоянной (альфа).

  3. Кодовое решение:

import pandas as pd

# Предположим, что ваши датафреймы уже загружены как mean_coefficients и selected_columns

# Извлечение коэффициентов
coefficients = mean_coefficients.drop(columns='const').iloc[0]

# Извлечение постоянной (альфа)
constant = mean_coefficients['const'].iloc[0]

# Вычисление прогноза
selected_columns['predicted_MCAP'] = selected_columns.dot(coefficients) + constant

Детали выполнения

  • Совпадение колонок: Убедитесь, что названия колонок в selected_columns и mean_coefficients точно совпадают, за исключением столбца с постоянной, иначе метод dot не сработает правильно.

  • Проверка результатов: После выполнения вычислений рекомендуется проверить некоторые из прогнозируемых значений вручную с помощью Excel или другого инструмента, чтобы убедиться в правильности результата.

Оптимизация SEO

Использование таких ключевых фраз, как "расчет прогнозного значения на основе коэффициентов и постоянной в Python", сделает текст более доступным для поиска. Попробуйте включить эти фразы естественным образом, не теряя делового стиля изложения.

Заключение

В конечном итоге, чтобы ваши расчеты были корректными, важно внимание к деталям: начиная от правильного именования данных до точности математических операций. Мой код предлагает эффективный и надежный способ выполнения ваших прогнозов, используя возможности pandas.

Оцените материал
Добавить комментарий

Капча загружается...