
一、为什么要构建这个模型?
1.1 源理论的核心洞察
如何从"交往模式"理解家国同构?
传统理解停留在"忠孝一体"的道德说教层面,而新框架要求我们观察:
普通人在处理家庭关系(私域)和参与公共事务(公域)时,是否使用了相似的心理和行为"模板"?
这个理论的核心操作化工具是差序格局------费孝通先生提出的"以自我为中心、亲疏有别"的交往结构。
1.2 为什么需要计算模型?
理论解释"是什么"和"为什么",但无法直接回答:
- 如果...会怎样?(what-if 情景分析)
- 变化的路径和速度?(动态演化)
- 不同条件下的差异?(比较研究)
计算模型的价值在于:将静态理论转化为可模拟、可干预、可量化的动态系统。
二、模型架构全景
┌─────────────────────────────────────────────────────────────┐
│ JiaGuoTongGouModel │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Agent │ │ DualNetwork │ │
│ │ 智能体层 │◄───►│ 双域网络 │ │
│ │ │ │ │ │
│ │ α_private │ │ 私域:小世界 │ │
│ │ α_public │ │ 公域:公民-政府│ │
│ │ β │ │ │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────┐ │
│ │ EvolutionMechanism │ │
│ │ 演化机制引擎 │ │
│ │ ┌────────┬─────────┬────────┐ │ │
│ │ │社会化 │制度反馈 │跨域影响 │ │ │
│ │ │学习 │ │ │ │ │
│ │ └────────┴─────────┴────────┘ │ │
│ └──────────────────────────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │Visualization │ │ RegimeChange │ │
│ │ 可视化 │ │ 变迁模拟器 │ │
│ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
三、核心模块深度解析
3.1 Agent 模块:微观行动者
python
@dataclass
class Agent:
# 核心差序参数
alpha_private: float # 私域差序强度 [0, 1]
alpha_public: float # 公域差序强度 [0, 1]
beta: float # 同构系数 [-1, 1]
设计思想:
| 参数 | 含义 | 如何测量(理论层面) |
|---|---|---|
| α_private | 对"自己人"与"外人"的区分程度 | 私人关系中亲疏界限的清晰度 |
| α_public | 对不同层级政府的信任差异 | 政府信任的层级梯度 |
| β | 公私领域认知结构的关联程度 | 两者统计相关性 |
关键方法:
python
def get_private_trust(self, distance: float) -> float:
"""
差序信任函数:信任度随距离指数衰减
decay_rate = 0.5 + 1.5 * α_private
α_private越高 → 衰减越快 → 内外之别越明显
"""
def get_public_trust(self, authority_level: float) -> float:
"""
公域信任函数:信任度随层级下降
slope = 0.2 + 2.0 * α_public
α_public越高 → 斜率越大 → 层级差异越悬殊
"""
可视化理解:
α_private = 0.3 (弱差序) α_private = 0.9 (强差序)
信任度
1.0├──────● 1.0├──────●
0.8│ ╱ 0.8├────╱
0.6│ ╱ 0.6├──╱
0.4│ ╱ 0.4├──╱
0.2│ ╱ 0.2├─╱
0.0└────────→距离 0.0├──●─────→距离
平缓下降 陡峭下降
3.2 Network 模块:结构环境
python
class DualNetwork:
# 私域网络:小世界网络(真实社会关系)
self.private_network = nx.watts_strogatz_graph(n_agents, k=4, p=0.1)
# 公域网络:公民-政府关系
self.public_network = nx.DiGraph() # 带信任权重的有向图
网络类型对比:
| 网络 | 拓扑 | 社会学意义 |
|---|---|---|
| 私域 | 小世界 | 既不太孤立、也不太随机;"六度分隔"的真实版 |
| 公域 | 星形+层级 | 以政府节点为中心的辐射结构 |
政府层级结构:
python
class GovernmentNode:
level: 0=中央, 1=省级, 2=市级, 3=基层
service_quality: 服务质量(制度绩效)
中国模式 vs 西方模式的差异实现:
python
if public_trust_pattern == 'chinese':
# 中央信任高,基层信任低 → 差序信任
service_quality = 0.9 - level * 0.15
else:
# 基层信任高 → 扁平信任(西方模式)
service_quality = 0.5 + level * 0.15
3.3 Evolution 模块:动态机制
这是模型最复杂的部分,定义了系统如何随时间演化。
3.3.1 社会化学习
python
def apply_social_learning(self, agents, network):
"""
智能体观察网络中"成功者"的参数,并向其学习
机制:
1. 找到比自己更成功的邻居(财富+社会资本综合指标)
2. 选择最成功的邻居作为榜样
3. 以learning_rate的速度向其参数靠近
"""
社会学对应:Vygotsky的"最近发展区"学习、文化规范的代内传播
3.3.2 制度绩效反馈
python
def apply_institutional_feedback(self, agents, government_nodes):
"""
基层政府的服务质量影响公域差序结构
机制:
- 如果基层服务好 → 信任提升 → 公域差序减弱
- 如果基层服务差 → 信任下降 → 公域差序维持/增强
"""
理论意义:这正是文档中提到的"绩效合法性对文化心理的塑造"
3.3.3 跨域影响(同构机制的核心)
python
def apply_cross_domain_influence(self, agents):
"""
私域经验影响公域认知,或反之
β > 0 时:私域差序变化 → 公域差序随之调整
这体现了"家国同构"的核心:同一套认知模板
"""
3.3.4 冲击事件
python
class ShockType(Enum):
FAMILY = "family" # 家族失信事件
STATE = "state" # 高层腐败丑闻
ECONOMIC = "economic" # 经济危机
SOCIAL = "social" # 社交媒体冲击
冲击的差异化影响:
- 家庭冲击 → 主要影响α_private
- 国家冲击 → 主要影响α_public和β
- 随机性 → 不是所有Agent都受影响(概率80%,范围50-70%)
3.4 RegimeChangeSimulator:制度变迁
python
# 城市化:熟人社会 → 匿名社会
simulate_urbanization(target_alpha_private=0.3)
# 数字化:提升政治效能,弱化差序
simulate_digital_transformation()
# 代际更替:新世代替代老世代
simulate_generational_change(new_generation_beta=0.3)
四、运行流程:一步模拟发生了什么?
python
def step(self):
# 1. 随机冲击(2%概率)
applied_shock = generate_random_shock()
if shock: apply_to_agents()
# 2. 社会化学习
for agent in agents:
observe_neighbors()
learn_from_success()
# 3. 制度反馈
for agent in agents:
for gov in government_nodes:
adjust_trust_based_on_performance()
# 4. 自然漂移
for agent in agents:
beta_drift += random_noise() # 模拟社会规范的缓慢变化
# 5. 跨域影响
for agent in agents:
alpha_public += beta * delta_alpha_private
五、模型能回答的问题
5.1 理论验证类
| 问题 | 模型方法 |
|---|---|
| 同构性是否存在? | 检验β是否显著 > 0 |
| 同构强度如何测量? | β的均值和分布 |
| 同构性的个体差异? | β的标准差和分布形态 |
5.2 what-if 情景类
| 情景 | 操作 | 观察指标 |
|---|---|---|
| 城市化加速 | α_private目标→0.3 | β如何变化? |
| 基层腐败 | 降低某级政府service_quality | 信任结构如何调整? |
| 代际更替 | 新世代β=0.3替换旧世代 | 群体β分布演变 |
| 数字化普及 | 政治效能↑ | α_public变化趋势 |
5.3 比较研究类
| 比较维度 | 模型配置 |
|---|---|
| 中国 vs 西方 | 不同的public_trust_pattern |
| 传统 vs 现代 | 不同的initial_beta |
| 同构 vs 解构 | 不同initial_alpha_private |
六、模型的局限性
| 局限 | 说明 | 可能的改进 |
|---|---|---|
| 简化假设 | 信任用单一维度测量 | 可扩展为多维信任 |
| 理性假设 | Agent按规则行动 | 可引入有限理性 |
| 同质冲击 | 冲击对所有Agent类似 | 可分层分群冲击 |
| 网络静态 | 网络结构不变 | 可引入网络演化 |
| 缺乏空间 | 无地理维度 | 可加入空间ABM |
七、探索性分析:模型的深层含义
7.1 同构系数β的双重含义
β不仅是统计相关,更是认知模板的迁移:
私域经验(家庭) ──认知迁移──► 公域行为(政治)
│ │
▼ ▼
内外有别 官民有别
│ │
└──────────► β ◄──────────────┘
同一套"差序模板"
7.2 演化动态的深层逻辑
模型揭示了三层反馈循环:
┌─────────────────────────────────────┐
│ 第一层:个体学习 │
│ 成功者参数 → 观察者参数 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 第二层:制度-认知反馈 │
│ 政府绩效 → 公域信任 → α_public │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 第三层:跨域同构 │
│ α_private ↔ α_public(通过β) │
└─────────────────────────────────────┘
7.3 从模型看社会现象
| 现实观察 | 模型解释 |
|---|---|
| "中央政策好,基层执行差" | 公域差序高(α_public高),但制度反馈机制在尝试修正 |
| "年轻人不讲人情世故" | 代际学习导致β降低,同构性减弱 |
| "反腐后信任需要重建" | 国家冲击后,β和α_public下降,恢复需要时间 |
| "关系社会" | 私域差序高(α_private高),网络聚类强 |
八、后期扩展这个模型的一些考虑
8.1 短期扩展
- 引入群体异质性:不同教育水平、城乡背景的Agent
- 政策干预模块:添加具体的政策效果函数
- 多层网络:私域内部分层(家人/亲戚/朋友)
8.2 中期扩展
- 空间维度:添加地理网络(城市/农村)
- 信息传播:谣言、媒体报道对信任的影响
- 网络演化:关系建立/断开的动态过程
8.3 长期愿景
- 接入真实数据:用调查数据校准参数
- 多模型集成:与宏观经济模型对接
- 政策实验室:为决策者提供情景模拟工具
九、使用指南
9.1 快速开始
bash
cd D:\daku\家国同构\jgg_model
python main.py # 默认100 Agent,100步
9.2 场景探索
bash
# 城市化
python main.py --scenario urban
# 国家冲击
python main.py --scenario shock
# 中西对比
python main.py --scenario compare
9.3 自定义研究
python
from model import JiaGuoTongGouModel, ModelConfig
config = ModelConfig(
n_agents=200,
n_steps=200,
initial_beta_mean=0.7, # 强同构社会
enable_shock=True
)
model = JiaGuoTongGouModel(config)
model.run()
# 分析特定时间点
stats = model.history_data[100]
print(f"Step 100 β均值: {np.mean(stats['beta']):.3f}")
这就是整个项目的深度解析。模型将抽象的社会学理论转化为可计算、可模拟的动态系统,使我们能够探索"如果...会怎样"的因果机制问题。