以下是分步骤的解决方案,帮助您构建反映政策影响的系统动力学模型:
一、数据预处理与关键变量定义
-
整理数据表:
-
将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='填报数据|公式列') # 需根据实际列名调整
-
-
单位统一与缺失值处理:
-
统一单位(例如“万人”转换为“人”)。
-
对缺失数据使用插值法填补(如线性插值)。
-
二、系统动力学模型设计
-
绘制因果关系图:
-
确定政策影响的路径,例如:
复制
政策A → 剧组数量A101 ↑ → 营业总收入A301 ↑ → 人才规模A4 ↑
-
使用工具(如Vensim)或手绘反馈循环图。
-
-
定义存量-流量结构:
-
存量方程(以剧组数量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)
-
-
数学公式示例:
-
通用公式:
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)其中,αα 为政策影响系数,需通过历史数据校准。
-
三、参数校准与情感分析集成
-
参数校准:
-
使用历史数据反推基础增长率和政策影响系数:
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)
-
-
情感分析映射:
-
假设情感分析返回积极情绪占比PP(0~1),将其作为输入参数:
python
复制
sentiment = get_sentiment(policy_text) # 模拟函数,实际需调用NLP模型
-
四、Python模型实现
-
系统动力学仿真代码:
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() -
多政策叠加处理:
-
若多个政策同时生效,需加权合并影响系数:
python
复制
total_impact = sum(policy['impact'] * policy['sentiment'] for policy in active_policies)
-
五、可视化与交互界面(可选)
-
使用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) -
输出图表示例:
-
使用Plotly生成动态图表,展示各指标随政策的变化趋势。
-
六、验证与优化
-
历史回测:
-
用2010-2023年数据验证模型预测准确性,调整参数。
-
-
敏感性分析:
-
测试不同情感参数对结果的敏感度,优化模型鲁棒性。
-
总结:关键交付物
-
预处理后的数据集(CSV/Excel)。
-
系统动力学模型代码(Python脚本)。
-
可视化图表和交互界面(可选)。
-
参数校准报告与验证结果。
通过以上步骤,您可构建一个动态反映政策影响的仿真系统,支持决策者直观评估政策效果。
981

被折叠的 条评论
为什么被折叠?



