Разработка программного обеспечения для решения систем одновременных уравнений в экономике
Автор: Ефремова Е.В., Воронцов И.Р.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Математика, информатика и инженерия
Статья в выпуске: 1 (115), 2025 года.
Бесплатный доступ
В статье рассматривается программное обеспечение для решения систем одновременных уравнений, разработанное на языке Python. Программа использует методы наименьших квадратов для обработки данных. Демонстрируется применение ПО для анализа взаимосвязей экономических показателей и моделирования рыночного равновесия.
Системы одновременных уравнений, программное обеспечение, экономика, метод наименьших квадратов
Короткий адрес: https://sciup.org/140308929
IDR: 140308929
Текст научной статьи Разработка программного обеспечения для решения систем одновременных уравнений в экономике
Системы одновременных уравнений часто используются в экономике для моделирования процессов [1 ], таких как рыночное равновесие, прогнозирование производства или оценка спроса и предложения. Они находят применение в задачах анализа взаимосвязей между макро- и микроэкономическими показателями, моделировании ценообразования, оценке влияния налоговой политики на экономику, оптимизации логистических цепочек и прогнозировании финансовых рисков. Однако решение таких задач вручную затруднительно и требует автоматизации.
Одновременные уравнения в эконометрике представляют собой систему уравнений, где переменные, играющие роль зависимых и независимых, определяются одновременно через несколько уравнений. В отличие от стандартных эконометрических моделей, где зависимая переменная определяется через независимые переменные в одном уравнении, в случае одновременных уравнений связь между переменными происходит через несколько уравнений, которые влияют друг на друга [2]. Примером такой модели может быть система уравнений, описывающая спрос и предложение:
-
1. Q d =α 0 +α 1 P+u,
-
2. Q s =β 0 +β 1 P+υ,
где Q d – количество товара, которое потребители готовы купить, P – цена товара, α 0 – параметры модели, u – остаток.
где Q s – количество товара, которое производители готовы предложить, β 0 и β 1 – параметры модели, υ – остаток.
Здесь P (цена товара) одновременно является зависимой переменной для обоих уравнений, что приводит к необходимости решать эту систему одновременных уравнений. Ожидается, что цена будет определяться равновесием спроса и предложения, то есть через пересечение этих двух кривых.
Так как в таких системах возникают проблемы эндогенности (когда переменные одновременно являются зависимыми и независимыми), для их оценки часто используются методы, такие как метод наименьших квадратов (OLS) или метод инструментальных переменных (IV). В частности, в случае с одновременными уравнениями используется модификация метода наименьших квадратов, известная как метод двух шагов наименьших квадратов (2SLS).
Программа была написана на языке Python [2], так как он является высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества. Она решает системы уравнений методом наименьших квадратов или методом обратной матрицы. Программа также визуализирует промежуточные шаги расчетов, что делает её удобной для обучения и анализа данных.
Интерфейс программы интуитивно понятен и прост. Пользователь должен внести количество строк и столбцов матрицы А. После обновления, программа автоматически создаст необходимое количество строк для записи коэффициентов матрицы А и вектора b. Интерфейс программы представлен на рисунке 1.
Количество строк матрицы А: [2
Количество столбцов матрицы А: 2
Обновить |
Строка 1: |
Строка 2: |
Вектор b (разделяйте числа пробелами): Г......................—............~..........................................................
Решить
Случайные данные |
Рисунок 1 – Интерфейс программы
Программа позволяет ввести данные вручную или же воспользоваться опцией генерации случайных значений. Пример применения данных функций представлен на рисунке 2.
Количество строк матрицы А: |з
Количество столбцов матрицы А: з|
Обновить |
Строка 1: |2 3 О
Строка 2: 8 1 -8
Строка 3: |б -3 -6
Вектор Ь (разделяйте числа пробелами):
|-8 1 -4
Решить |
Случайные данные |
Рисунок 2 – Заполнение данных
Программа автоматически подберет метод решения в зависимости от идентифицируемости системы уравнений. Если ранг матрицы равен количеству ее столбцов, то система считается идентифицируемой и применяется метод наименьших квадратов. Решение методом КМНК представлен на рисунке 3:
Система уравнений: 6.0x1 + -10.0x2 = -2.0 5.0x1 + -2.0x2 =3.0
Решение: [0.894736842105263, 0.7365421052631553]
Метод: КИНК
Промежуточные шаги:
Матрица А: [[ 6.-10.]
[ 5. -2.]]
Вектор Ь: [-2. 3.]
Ранг матрицы А: 2
Количество столбцов матрицы А: 2
Идентифицируемость выполнена.
Остатки (zesiduals): нет остатков (точное решение)
Ранг при вычислении: 2
Сингулярные значения: [12.47907791 3.04509678]
Решение (КМНК): [0.894736842105263, 0.7368421052631583]
Рисунок 3 – Решение методом КМНК
В случае если матрица не идентифицируема, то программа решит уравнение методом псевдообратной матрицы. Решение методом ДМНК представлено на рисунке 4:
Система уравнений: 2.0x1 + -6.0x2 + -10.0x3 = -4.0 -2.0x1 + -9.0x2 + -8.0x3 =1.0
Решение: [-0.7000000000000008, -0.4000000000000007, 0.5000000000000004] Метод: ДИНК
Промежуточные шаги: Матрица А: [[ 2. -6. -10.]
[ -2. -9. -8.]]
Вектор Ь: [-4. 1.]
Ранг матрицы А: 2 Количество столбцов матрицы А: 3 Система не идентифицируема. Применяется метод ДИНК. Псевдообратная матрица: [[ 0.14090909 -0.13636364] [ 0.06969697 -0.12121212] [-0.11363636 0.04545455]]
Решение (ДИНК): [-0.7000000000000008, -0.4000000000000007, 0.5000000000000004]
Рисунок 4 – Решение методом ДМНК
В обоих случаях программа выведет систему уравнений, метод решения, а также промежуточные шаги, ранг матрицы и проверку на идентифицируемость.
В результате разработки и тестирования программного обеспечения для решения систем одновременных уравнений было подтверждено его эффективность при анализе экономических моделей. Использование методов наименьших квадратов и псевдообратной матрицы позволило корректно решать системы как идентифицируемых, так и неидентифицируемых уравнений.
Программа показала удобство в использовании благодаря интуитивно понятному интерфейсу и возможности визуализации промежуточных этапов расчетов.
Программное обеспечение может быть успешно применено для анализа взаимосвязей между экономическими показателями, прогнозирования спроса и предложения, оценки влияния ценовых изменений на рынок, моделирования рыночного равновесия, а также оптимизации производственных процессов.
Полученные результаты демонстрируют потенциал данной разработки для решения широкого круга задач, что открывает перспективы её дальнейшего усовершенствования и расширения функционала.
Список литературы Разработка программного обеспечения для решения систем одновременных уравнений в экономике
- Кремер, Н. Ш. Эконометрика / Н. Ш. Кремер, Б. А. Путко. - Москва: Юрайт, 2023. - 308 с. Айвазян С.А. Прикладная статистика и основы эконометрики / С.А. Айвазян, В.С. Мхитарян. - Москва: Юнити, 2021. - 641 с. Лутц М Программирование на Python, том I / М Лутц. - Санкт-Петербург: 4-е издание, 2011. - 992 с.