企业风险评估系统,支持多种风险类型计算、阈值判断和详细计算过程导出
Project description
风险评估模型库
这是一个用于企业风险评估的Python库,提供了完整的风险评估功能,包括数据加载、风险计算、结果导出和可视化。
安装
pip install risk-assessment
功能特点
- 支持从Excel文件加载数据
- 计算多种风险类型(战略风险、财务风险、市场风险、法律信用风险、事件风险)
- 完整的A类风险(阈值风险)判断
- 生成详细的风险评估报告和计算过程
- 可视化风险评分结果
- 支持自定义配置参数
使用示例
基本用法
from risk_assessment_package.main import RiskModel
# 创建模型实例
risk_model = RiskModel(config_path='config.yaml') # 或者 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}")
使用自定义配置
from risk_assessment_package.main import RiskModel
# 使用自定义配置文件创建模型
model = RiskModel(config_path="custom_config.yaml")
model.load_data("test.xlsx")
results = model.calculate_total_risk()
详细计算过程导出
模型提供了导出详细计算过程的功能,包含所有中间计算步骤:
# 导出详细计算过程
model.export_calculation_details(results, 'calculation_details.xlsx')
导出的Excel文件包含以下工作表:
- 原始数据:所有输入指标的原始值
- 战略风险:战略风险的计算指标和过程
- 财务风险:财务风险相关的所有指标和计算过程
- 市场风险:市场风险的计算指标和过程
- 法律信用风险:法律和信用风险的计算指标和结果
- 事件风险:事件风险的评估指标和计算过程
- 信用与社会责任风险:额外的信用风险和社会责任风险计算
- 阈值风险:触发高风险阈值的指标和判断标准
- 总风险评分:所有风险指标和最终评分结果
数据格式要求
输入Excel文件需要满足以下要求:
-
数据格式:
- 第一列必须是指标名称
- 后续列是各月份的数据
- 第一行是列名(月份或其他时间标识)
-
工作表选择:
- 默认读取第一个工作表
- 可以通过
sheet_name参数指定工作表 - 支持工作表名称或索引号
-
必需的指标(部分列表):
- 主营业务收入、营业总收入、主营业务利润总额、利润总额
- 主营业务毛利润、研发投入本年累计数和上年同期数
- 主营业务成本、主营业务相关费用、资产总额、负债总额
- 带息负债总额、经营净现金流、货币资金、投资收益
- 财务费用中的利息费用、资本化利息支出
- 预付账款、预收账款、应收账款、应付账款
- 净资产、坏账准备金额、存货、毛利润
- 各类行业平均值和中等值指标
- 司法诉讼案件数量、执行金额、被执行金额
- 已销号事件数、新增事件数、年初事件数等事件相关指标
- 各类事故次数和环境事件次数指标
阈值风险(A类风险)判断
模型会对以下指标进行阈值判断,如果触发任何一项条件则判定为高风险:
- 主业亏损金额 > 200,000,000
- 资产负债率 > 0.9
- 带息负债率 > 行业较差值
- 高危企业发生特别重大生产安全事故次数 > 0
- 非高危企业发生特别重大生产安全事故次数 > 0
- 企业发生重大及以上生态环境事件次数 > 0
- 经营净现金流占货币资金的比重 < -0.3
配置说明
可以通过YAML配置文件自定义以下参数:
- 各类风险的权重
- 风险阈值参数
- 计算参数
配置文件示例:
weights:
strategic: 0.15
financial: 0.30
market: 0.25
legal_credit: 0.10
event: 0.20
输出结果
风险评估结果包含:
- 总体风险评分
- 各项风险评分
- 风险等级
- 风险判断依据
- 详细的计算过程
故障排除
如果遇到问题,可以检查:
- Excel文件格式是否正确
- 必要的依赖是否都已安装(pandas, numpy, matplotlib, openpyxl, PyYAML)
- 配置文件的格式是否正确
程序默认会在控制台输出日志信息,可以查看更多执行细节。
许可证
MIT License
贡献
欢迎提交问题和改进建议!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file risk_assessment-2.0.0.tar.gz.
File metadata
- Download URL: risk_assessment-2.0.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3c6d4c8ea336c2dc4efd82ed55aaf3cb7b809468c389fa5d94073e4e0a653e8
|
|
| MD5 |
6dfb5795662258bb29cfb010d9cc03c4
|
|
| BLAKE2b-256 |
dfce0ab65725a7fa9435e6943b4d479bc7deec2007e899009d68a70985634a33
|
File details
Details for the file risk_assessment-2.0.0-py3-none-any.whl.
File metadata
- Download URL: risk_assessment-2.0.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15e25362df3363778c0fb540b3de7ed3d024b2630e6b6608c06280a6af1a0e55
|
|
| MD5 |
99f033cda9752542a2e1092927f8d288
|
|
| BLAKE2b-256 |
76ad6bbf39fe311889cc73cf3d3c3a7bd845806ed477074316479dd30e55d4ed
|