Python、MATLAB和Excel在电力经济分析中的对比研究
摘要: 本文旨在比较和评估Python、MATLAB和Excel这三种常见的工具在电力经济计算方法中的应用。主要介绍了每种工具计算收益率、净现值等指标的使用方法,以及如何利用工具完成敏感性分析和经济预测,并从功能性、灵活性、计算性能和用户友好性四个方面进行综合对比和分析,旨在为研究人员和决策者提供选择适当工具的依据。

0 引言

随着计算机技术的快速发展,经济学研究中使用计算工具进行数据分析和建模变得越来越重要。文献[1-2]以Python技术为视角,研究其在财务数据分析中的具体应用。文献[3]根据往年电力工程造价数据,使用Excel预测了河南省2019-2022年的造价成本。文献[4]运用计量经济方法,使用Excel研究了电力价格波动对宏观经济产生的影响。文献[5]介绍了MATLAB在金融方面的主要适用场域。

Python、MATLAB和Excel作为常用的计算工具,在经济计算领域具有广泛的应用。本文将对这些工具进行对比研究,以帮助电力经济研究者选择最合适的工具来满足其需求。

1  Python在经济分析中的应用

Python是一种功能强大且开源的编程语言,具有丰富的库和模块,可以进行数据处理、统计分析和模型建立。运用Python可以对电力经济数据快速处理,获得想要的分析结果。

1.1 数据处理和分析

Python提供了丰富的库和模块,如NumPy、Pandas和SciPy等,这些工具使得数据的读取、处理和分析变得更加简单和高效。

1.1.1 内部收益率和净现值计算

内部收益率是指项目投资实际可望达到的收益率,简记为IRR。财务净现值是指按照一个给定的行业基准收益率或设定的目标折现率,将项目计算期内各年净现金流量折现到建设期初的现值之和。

计算内部收益率和净现值时可以选择使用numpy库和numpy.financial模块,numpy库提供了一些函数用于经济计算。以下是numpy库的使用方法:

import numpy as np

import numpy_financial as npf

cash_flows = [-100, 50, 40, 30, 20]  # 初始投资为-100,后续年份的现金流入为正值

# 计算净现值(假设贴现率为10%)

discount_rate = 0.1

npv = npf.npv(discount_rate, cash_flows)

print("净现值(NPV):", npv)

# 计算内部收益率

irr = npf.irr(cash_flows)

print("内部收益率(IRR):", irr)

计算得到净现值为14.71,内部收益率为17.80%。

1.1.2 敏感性分析

在进行电力技术经济评价时,需要在确定性分析的基础上,进一步分析不确定性因素对项目经济性指标的影响感性分析主要考察项目涉及的各种不确定因素对项目基本方案经济评价的影响,找出主要敏感因素,分析项目效益对主要敏感因素的单一敏感程度,必要时对重大投资项目进行多因素叠加的复合敏感性分析。

以下是使用Python进行经济敏感性计算的一般步骤:

(1)定义模型:构建一个经济模型或投资模型,其中包含了各种变量、参数和相关的数学公式。这个模型可以是简单的线性模型,也可以是复杂的多方程模型。

(2)设定参数范围:确定敏感性分析的参数,并为这些参数设定变化范围。

(3)运行模型多次:使用Python编写脚本,通过循环结构和参数的变化,多次运行模型。每次运行模型时,将不同的参数值输入到模型中,并记录相关输出结果。

(4)分析结果:根据模型运行的结果,可以进行各种敏感性分析,并绘制敏感性曲线,以可视化不同参数对结果的影响。

1.2 成本和效益预测

电力经济数据具有深层次价值,可以对未来相关工作有效发挥趋势研判及参数指导的作用。通过成本预测,可以有效控制建设投资成本和贷款金额,规划好项目前期需要的资金储备;通过收益预测,可以帮助企业及时调整经营模式,降低风险,提高经济性。

常见的数据预测有如下几种,均可在Python中实现:

(1)线性回归:适用于具有线性关系的数据。它通过拟合一个线性模型来预测变量之间的关系[6]。

(2)多项式回归:适用于具有非线性关系的数据。它通过拟合一个多项式模型来预测变量之间的关系[7]。

(3)时间序列分析:适用于时间序列数据的预测。这包括移动平均法、指数平滑法、ARIMA模型等方法,可以考虑数据的趋势、季节性和周期性等[8]。

(4)基于机器学习的方法:使用机器学习算法如决策树、随机森林、支持向量机、神经网络等来预测数据。这些方法可以捕捉更复杂的关系和模式[9]。

(5)时间序列神经网络模型:如长短期记忆网络(LSTM)和卷积神经网络(CNN),专门用于处理时间序列数据的深度学习模型[10]。

(6)指数平滑法:除了简单指数平滑法外,还有Holt线性平滑法和Holt-Winters季节性平滑法等更复杂的指数平滑方法,可以考虑数据的趋势和季节性。

2  MATLAB在经济性分析中的应用

MATLAB是具有很强的数值计算、符号运算、仿真和图形显示功能的计算机数学语言。MATLAB有多种函数适用于经济学研究,用于评价全生命周期的财务状况。在电力企业财务分析中涉及很多数值的运算,增加了评估的复杂性,运用MATLAB软件可以简化计算,加快分析速度,有利于提高效率。

2.1 数据处理和分析

2.1.1 内部收益率和净现值计算

MATLAB和Python在工业经济计算方面都有内置的库,直接调用即可完成计算。如下是一个应用案例,展示如何调用库完成计算。

已知某投资方案初始投资额为3000万元,其后各年现金流量如下,贴现率为8%,试求方案的内部收益率和净现值。

第一年800万元,第二年640万元,第三年560万元,第四年500万元。

在命令行输入:

>>cashflows = [-3000, 800, 640, 560, 500];

>>discount_rate = 0.08;

>>irr = irr(cashflows);

>>npv = npv(discount_rate, cashflows);

输出:IRR=9.31%, NPV=191.48万元

2.1.2 敏感性分析

MATLAB中进行敏感性分析的一种常用方法是通过参数的变化来观察模型输出的变化。可以使用MATLAB的函数和工具箱来执行不同类型的敏感性分析,例如参数扫描、Monte Carlo模拟、局部敏感性分析和全局敏感性分析。

以下是一些MATLAB函数和工具箱,可用于执行敏感性分析:

(1)sensitivity函数:该函数可以用于执行全局敏感性分析,如Sobol敏感性分析方法。它提供了对输入参数的重要性进行评估的功能。

(2)Global Sensitivity Analysis Toolbox:这是MATLAB的一个工具箱,提供了执行全局敏感性分析的功能。它支持多种全局敏感性分析方法,例如Sobol、FAST和Extended Fourier Amplitude Sensitivity Test (eFAST)方法。

(3)sobolset和sobolseq函数:这些函数用于生成Sobol序列,这是一种用于执行敏感性分析的低差异序列。

(4)montecarlo函数:该函数可以用于执行Monte Carlo模拟,从而进行敏感性分析。通过对输入参数进行随机抽样并多次运行模型,可以估计参数对模型输出的影响。

2.2 成本和效益预测

在MATLAB中进行成本和效益的预测涉及建立适当的模型和数据分析。以下是使用MATLAB进行预测分析的基本步骤:

(1)收集数据:收集与成本和效益相关的数据,包括历史数据、市场趋势数据、用户反馈数据等。

(2)数据预处理:对收集到的数据进行预处理,包括数据的缺失值处理、异常值检测和处理、数据转换等。

(3)建立预测模型:选择适当的预测模型来建立成本和效益的预测模型,包括回归分析、时间序列分析、机器学习等方法。MATLAB提供了许多内置函数和工具箱,用于建立和训练各种预测模型。

(4)模型训练和验证:使用历史数据来训练预测模型,并使用交叉验证等技术来评估模型的性能和准确性。

(5)进行预测:使用训练好的模型对未来的成本和效益进行预测。可以使用MATLAB中的predict函数来进行预测。

(6)结果分析和评估:分析预测结果,并评估预测模型的准确性和可靠性。可以使用MATLAB的绘图和统计分析函数来帮助分析和评估结果。

3 Excel在经济性分析中的应用

3.1 应用途径

对于电力经济研究人员来说,Excel是一个必须掌握的基础分析软件。它具备两个最基本的特征:一是作为一种通用计算工具,允许用户在屏幕上设计所需格式的报表,填写数据及进行复杂计算;二是无需编写程序,入门较为简单。此外,Excel还有以下一些特点:

(1)以表格方式处理数据,对于表格的建立、编辑、访问、检索等操作很方便,可以像数据库软件一样对记录进行修改、添加、删除、排序、查询和分类汇总等处理。

(2)提供大量函数,可用于数据统计、数据分析。

(3)图形格式多,能自动生成各种二维或三维统计图形,这些统计图形能随着数据源的变动而动态更新,适用于财务分析。

目前,利用Excel中常用函数的功能特性,通过适当组合形成可直接用于计算财务指标的嵌套函数,既能解决项目经济评价中手动计算的不足,也有助于提升电力项目经济评价模型的自动化水平。

3.2 主要功能

(1)静态投资回收期计算

静态投资回收期,是在不考虑货币时间价值的条件下以项目的净收益回收其全部投资所需要的时间。其建模步骤为:建立表格框架;计算累计现金流量;利用MATCH()函数计算累计现金流量为正数的年份;利用INDEX()函数计算项目的投资回收期。

例如,某电力集团准备投资一个新项目,初始投资为500万元,预计今后6年中各年产生的现金流量分别为120万元、110万元、100万元、95万元、90万元和85万元。建立一个计算该项目的投资回收期的模型。

1)建立基本表格框架;

2)计算累计现金流量;

各单元计算如下:

B3=B2; C3=B3+C2; D3=C3+D2; E3=D3+E2; F3=E3+F2; G3=F3+G2; H3=G3+H2

3)利用MATCH()函数计算累计现金流量为正数的年份

在B4输入公式B4=MATCH(0,C3:H3);

4)利用INDEX()函数计算项目的投资回收期

在B5输入公式B5=B4+ABS(INDEX(C3:H3,B4))/INDEX(C2:H2, B4+1))

结果如表1所示。

表1 项目回收期模型计算结果

1111.png

(2)净现值和内部收益率计算

利用NPV()函数和IRR()函数计算项目的净现值和内部收益率,沿用上面案例的基本资料,已知贴现率为6%。

在单元格B5输入公式=NPV(B2,B4:H4),单元格B6输入公式=IRR(B4:H4),结果如表2所示。

表2 项目净现值和内部收益率模型计算结果

222.png

除了上述几个函数,Excel中还提供了大量的功能函数,实践中可根据经济评价工作的实际需要加以选择组合和应用,有助于提高项目经济评价中技术人员的工作效率、准确性以及经济评价模型的自动化水平。

3.3 敏感性分析和数据预测

电力经济敏感性分析也可使用Excel中的模拟分析功能,具体操作步骤如下[11]:

(1)准备输入参数和结果单元格:确定需要进行敏感性分析的输入参数和结果单元格。输入参数是影响结果的变量,而结果单元格是根据输入参数计算出的结果。

(2)创建数据表:在Excel中,选择一个空白的区域,创建一个数据表来存储敏感性分析的结果。

(3)引用输入参数值:在结果单元格中,使用相应的输入参数值进行计算。公式中的输入参数值可以通过引用数据表中的单元格来实现。

(4)复制公式:在结果单元格上方的同一列中,选择与输入参数值相同数量的单元格,并将结果单元格中的公式复制到这些单元格中。

(5)模拟运算表设置:选中数据表范围,在"行输入单元格"和"列输入单元格"中分别选择输入参数值和结果单元格的范围。

(6)查看结果:Excel会自动填充数据表中的结果,显示不同输入参数值对应的结果。通过查看结果,可以观察输入参数值的变化如何影响结果。

3 Python、MATLAB和Excel在电力经济分析中的对比

对Python、MATLAB和Excel在电力经济数据分析功能性、灵活性、计算性能和用户友好性方面的优点和缺点的进行总结。

3.1 Python的优点和缺点

优点:

(1)功能丰富:Python拥有强大的数据分析和科学计算库,如NumPy、Pandas、SciPy和StatsModels等,提供广泛的功能。

(2)灵活性:Python具有高度的灵活性,可以处理各种数据格式,可以与其他库和工具进行集成。

(3)社区支持:Python拥有庞大的社区支持,有大量的文档、教程和示例可供学习和参考。

(4)开源:Python是开源的,免费使用,并且有一个活跃的开发社区,不断增加新的功能和库。

缺点:

学习曲线:对于初学者来说,Python的学习曲线可能较陡峭,特别是对于没有编程经验的人来说。熟练使用各种库进行数据分析和功能开发需要到一定的时间积累。

3.2 MATLAB的优点和缺点

优点:

(1)计算性能:Matlab是一种编译型语言,具有较高的计算性能,适用于大规模数据和科学计算。

(2)丰富的工具箱:Matlab提供了广泛的工具箱,涵盖了数据处理、数值计算、优化和仿真等领域,使得处理特定问题变得更加方便。

(3)用户界面:Matlab拥有直观的用户界面和交互式开发环境,可快速测试和调试代码。

缺点:

(1)商业许可:Matlab是一款商业软件,需要购买许可证才能使用,这可能对个人用户和小型团队构成负担。

(2)学习成本: Matlab它有自己独特的语法和概念,需要一定的学习和适应期。

3.3 Excel的优点和缺点

优点:

(1)用户友好性:Excel具有直观的用户界面和熟悉的电子表格格式,使得数据分析和计算变得简单,即使对于非技术专业人士也容易上手。

(2)快速计算:Excel提供了丰富的公式和函数,可以进行快速计算和数据处理。

(3)广泛应用:Excel是一款被广泛使用的软件,且与其他办公软件集成良好。

缺点:

(1)限制性:相对于Python和MATLAB,Excel的功能和灵活性受到一定的限制。它更适合处理小规模的数据集和简单的计算任务,对于复杂的数据分析需求可能不足够。

(2)计算性能:当涉及大量数据和复杂计算时,Excel的计算性能可能较低,处理速度相对较慢,例如处理复杂的敏感性分析。

(3)缺乏高级分析功能:Excel在高级统计分析、机器学习和数据可视化等方面的功能有限,无法满足更复杂的数据分析需求。

4 结论

本文主要介绍了Python、MATLAB和Excel在电力经济分析中的应用,并从功能性、灵活性、计算性能和用户友好性四个方面分析了每种工具的优点和缺点,得出以下结论:

Python具有丰富的功能和灵活性,MATLAB具有较高的计算性能,Excel具有用户友好性和广泛的应用,但在处理大规模数据和复杂分析方面存在一些限制。根据具体需求和技术背景,电力经济研究者应选择合适的工具。

参考文献

[1] 班妙璇. Python在企业财务数据分析中的应用[J]. 现代商贸工业, 2023,44(12): 58-60.

[2] 张美玲. 大数据技术在企业财务分析中的应用研究——评《大数据财务分析:基于Python》[J]. 中国科技论文, 2022,17(10): 1181.

[3] 刘军会, 杨萌, 邓方钊, 等. 双碳目标下河南省构建新型电力系统成本分析[J]. 河南电力, 2022(S2): 90-94.

[4] 张雷, 张冕, 梅金金, 等. 我国电力价格波动对宏观经济影响分析[J]. 科技经济市场, 2022(05): 40-42.

[5] 高天书. 常用金融建模软件:施用意义、使用难点与适用场域——以SPSS、MATLAB、R语言为例[J]. 金融理论与教学, 2020(04): 48-53.

[6] 魏骁, 申少辉, 徐俊. 浙江省中长期电力负荷需求预测分析[J]. 自动化技术与应用, 2023,42(02): 26-29.

[7] 王小燕, 梁锦锦, 马燕娟, 等. 基于多项式回归的无人机监测数据分析及预测[J]. 信息与电脑(理论版), 2022,34(11): 209-211.

[8] 蒋增林, 叶江明, 陈昊. 基于时间序列分析的负荷预测方法的比较研究[J]. 南京工程学院学报(自然科学版), 2018,16(02): 26-31.

[9] 任腾云. 基于机器学习的电力大客户群体月度售电量预测研究[J]. 电网与清洁能源, 2018,34(09): 1-5.

[10]张舒, 廖兴炜, 程远林. 基于特性分析的LSTM神经网络短期电力需求预测方法研究[J]. 电力大数据, 2021,24(05): 9-17.

[11]高雪平. 利用EXCEL建立投资项目经济评价模型[J]. 中国管理信息化, 2021,24(01): 96-99.