系统动力学建模

部署运行你感兴趣的模型镜像

以下是分步骤的解决方案,帮助您构建反映政策影响的系统动力学模型:


一、数据预处理与关键变量定义

  1. 整理数据表

    • 将Excel中的季度数据转换为时间序列数据(例如:21Q1对应2021-Q1)。

    • 区分存量(如剧组数量A101)和流量(如季度新增量,通过公式=F2-E2计算)。

    • 示例代码(Pandas处理):

      python

      复制

      import pandas as pd
      df = pd.read_excel("A集聚区指数数据汇总.xlsx", sheet_name="Sheet1")
      # 提取存量列(如A101的实际值列)
      stocks = df[['一级指数', '二级指数', '单位', '21Q1', '21Q2', ..., '24Q4']]
      # 提取流量列(如季度新增量公式)
      flows = df.filter(regex='填报数据|公式列')  # 需根据实际列名调整
  2. 单位统一与缺失值处理

    • 统一单位(例如“万人”转换为“人”)。

    • 对缺失数据使用插值法填补(如线性插值)。


二、系统动力学模型设计

  1. 绘制因果关系图

    • 确定政策影响的路径,例如:

      复制

      政策A → 剧组数量A101 ↑ → 营业总收入A301 ↑ → 人才规模A4 ↑
    • 使用工具(如Vensim)或手绘反馈循环图。

  2. 定义存量-流量结构

    • 存量方程(以剧组数量A101为例):

      python

      复制

      def A101_stock(t):
          return A101_stock(t-1) + A101_inflow(t) - A101_outflow(t)
    • 流量方程(含政策影响):

      python

      复制

      def A101_inflow(t, policy_impact, sentiment):
          base_growth = 0.05  # 基础增长率(通过历史数据校准)
          return base_growth * (1 + policy_impact * sentiment)
  3. 数学公式示例

    • 通用公式:

      Stock(t)=Stock(t−1)+∑Inflows(t)−∑Outflows(t)Stock(t)=Stock(t−1)+∑Inflows(t)−∑Outflows(t)
    • 政策影响公式:

      Growth Rate=Base Rate×(1+α×Sentiment Score)Growth Rate=Base Rate×(1+α×Sentiment Score)

      其中,αα 为政策影响系数,需通过历史数据校准。


三、参数校准与情感分析集成

  1. 参数校准

    • 使用历史数据反推基础增长率和政策影响系数:

      python

      复制

      from scipy.optimize import curve_fit
      def growth_model(t, base_rate, alpha):
          return base_rate * (1 + alpha * sentiment_data[t])
      params, _ = curve_fit(growth_model, historical_time, historical_growth)
  2. 情感分析映射

    • 假设情感分析返回积极情绪占比PP(0~1),将其作为输入参数:

      python

      复制

      sentiment = get_sentiment(policy_text)  # 模拟函数,实际需调用NLP模型

四、Python模型实现

  1. 系统动力学仿真代码

    python

    复制

    import numpy as np
    import matplotlib.pyplot as plt
    
    def simulate_policy_impact(stock_init, base_growth, policy_impact, sentiment, periods=8):
        stock = [stock_init]
        for t in range(periods):
            growth = base_growth * (1 + policy_impact * sentiment)
            stock.append(stock[-1] * (1 + growth))
        return stock
    
    # 示例:模拟政策对A101的影响(假设base_growth=0.05, policy_impact=0.3)
    results = simulate_policy_impact(
        stock_init=91, 
        base_growth=0.05, 
        policy_impact=0.3, 
        sentiment=0.8  # 假设积极情绪占比80%
    )
    plt.plot(results)
    plt.title("剧组数量A101的政策影响模拟")
    plt.show()
  2. 多政策叠加处理

    • 若多个政策同时生效,需加权合并影响系数:

      python

      复制

      total_impact = sum(policy['impact'] * policy['sentiment'] for policy in active_policies)

五、可视化与交互界面(可选)

  1. 使用Streamlit构建驾驶舱

    python

    复制

    import streamlit as st
    
    st.title("横店影视文化政策模拟驾驶舱")
    policy_options = st.multiselect("选择政策", ["税收优惠", "拍摄补贴", "人才引进"])
    sentiment = st.slider("政策积极情绪占比", 0.0, 1.0, 0.5)
    
    if st.button("模拟"):
        results = simulate_policy_impact(sentiment)
        st.line_chart(results)
  2. 输出图表示例

    • 使用Plotly生成动态图表,展示各指标随政策的变化趋势。


六、验证与优化

  1. 历史回测

    • 用2010-2023年数据验证模型预测准确性,调整参数。

  2. 敏感性分析

    • 测试不同情感参数对结果的敏感度,优化模型鲁棒性。


总结:关键交付物

  1. 预处理后的数据集(CSV/Excel)。

  2. 系统动力学模型代码(Python脚本)。

  3. 可视化图表和交互界面(可选)。

  4. 参数校准报告与验证结果。

通过以上步骤,您可构建一个动态反映政策影响的仿真系统,支持决策者直观评估政策效果。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值