风险评估模型库
这是一个用于企业风险评估的Python库,提供了完整的风险评估功能,包括数据加载、风险计算、结果导出和可视化。
安装
pip install risk-assessment
功能特点
- 支持从Excel文件加载数据
- 计算多种风险类型(战略风险、财务风险、市场风险、法律信用风险、事件风险、信用风险、社会责任风险)
- 完整的A类风险(阈值风险)判断
- 生成详细的风险评估报告和计算过程
- 可视化风险评分结果
- 各类风险分数直接相加进行综合评估,不使用权重
使用示例
基本用法
from risk_assessment_package.main import RiskModel
# 创建模型实例
risk_model = RiskModel() # 使用默认配置,不再需要外部配置文件
try:
# 加载数据(假设Excel文件格式为:第一列是指标名称,后续列为各月份数据)
risk_model.load_data('test.xlsx', sheet_name='Sheet3')
# 计算所有月份的风险
results = risk_model.calculate_total_risk()
# 输出结果
print("\n=== 风险评估结果 ===")
for result in results:
print(f"\n期间: {result['period']}月")
print(f"总风险评分: {result['total_score']:.2f}")
print(f"风险等级: {result['risk_level']}")
# 只输出触发A类风险的原因
if result.get('risk_basis') == 'threshold':
print("【A类风险】触发原因:")
for reason in result['risk_reasons']:
print(f" - {reason}")
# 导出详细计算过程到Excel
risk_model.export_calculation_details(results, 'risk_calculation_details.xlsx')
# 绘制并保存风险评分柱状图
risk_model.plot_risk_scores(results, save_path='risk_assessment_chart.png')
except Exception as e:
print(f"错误: {e}")
详细计算过程导出
模型提供了导出详细计算过程的功能,包含所有中间计算步骤:
# 导出详细计算过程
model.export_calculation_details(results, 'calculation_details.xlsx')
导出的Excel文件包含以下工作表:
- 原始数据:所有输入指标的原始值
- 战略风险:战略风险的计算指标和过程
- 财务风险:财务风险相关的所有指标和计算过程
- 市场风险:市场风险的计算指标和过程
- 法律信用风险:法律和信用风险的计算指标和结果
- 事件风险:事件风险的评估指标和计算过程
- 信用与社会责任风险:额外的信用风险和社会责任风险计算
- 阈值风险:触发高风险阈值的指标和判断标准
- 总风险:所有风险指标和最终评分结果(直接相加计算)
数据格式要求
输入Excel文件需要满足以下要求:
-
数据格式:
- 第一列必须是指标名称
- 后续列是各月份的数据
- 第一行是列名(月份或其他时间标识)
-
工作表选择:
- 默认读取第一个工作表
- 可以通过
sheet_name参数指定工作表 - 支持工作表名称或索引号
-
必需的指标(部分列表):
- 主营业务收入、营业总收入、主营业务利润总额、利润总额
- 主营业务毛利润、研发投入本年累计数和上年同期数
- 主营业务成本、主营业务相关费用、资产总额、负债总额
- 带息负债总额、经营净现金流、货币资金、投资收益
- 财务费用中的利息费用、资本化利息支出
- 预付账款、预收账款、应收账款、应付账款
- 净资产、坏账准备金额、存货、毛利润
- 各类行业平均值和中等值指标
- 司法诉讼案件数量、执行金额、被执行金额
- 已销号事件数、新增事件数、年初事件数等事件相关指标
- 各类事故次数和环境事件次数指标
风险计算说明
总风险计算
总风险分数采用直接相加方式计算,不使用权重:
总风险分数 = 战略风险分数 + 财务风险分数 + 市场风险分数 + 法律信用风险分数 + 事件风险分数 + 信用风险分数 + 社会责任风险分数
各风险类型内部仍使用权重来计算各自的分数,但在汇总时直接相加。
阈值风险(A类风险)判断
模型会对以下指标进行阈值判断,如果触发任何一项条件则判定为高风险:
- 主业亏损金额 > 20000
- 资产负债率 > 0.9
- 带息负债率 > 行业较差值
- 高危企业发生特别重大生产安全事故次数 > 0
- 非高危企业发生特别重大生产安全事故次数 > 0
- 企业发生重大及以上生态环境事件次数 > 0
- 经营净现金流占货币资金的比重 < -0.3
输出结果
风险评估结果包含:
- 总体风险评分(各分项直接相加的结果)
- 各项风险评分
- 风险等级
- 风险判断依据
- 详细的计算过程
故障排除
如果遇到问题,可以检查:
- Excel文件格式是否正确
- 必要的依赖是否都已安装(pandas, numpy, matplotlib, openpyxl)
- 指标数据是否完整
程序默认会在控制台输出日志信息,可以查看更多执行细节。
许可证
MIT License
贡献
欢迎提交问题和改进建议!
Metadata
Release files for risk-assessment 3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| risk_assessment-3.0.0.tar.gz | 18.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| risk_assessment-3.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.7 kB
Release files / risk_assessment-3.0.0.tar.gz
| Download URL | risk_assessment-3.0.0.tar.gz |
|---|---|
| Size | 18.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d96a7fb2006530fb3d47d7cde5ea8de683d3c3775dc727f3e8b375e72d61b26c
|
|
BLAKE2b-256 checksum How to use checksums |
cfb5939da49492602298f088ba01c4d906406567d49080d266809383c72eb5e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.21
|
Release files / risk_assessment-3.0.0-py3-none-any.whl
| Download URL | risk_assessment-3.0.0-py3-none-any.whl |
|---|---|
| Size | 19.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
685393fa662813895fb5712425da2eca297a4c12ee36c128af6b1ad9ddb7a183
|
|
BLAKE2b-256 checksum How to use checksums |
6b4ec94a996a6ac282e3e943cd782dd5882782c1ea3afd83fc76c85fc0a08926
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.21
|