跳转至

A Partially Functional Dynamic Structural Equation Model for Multi-Resolution Environmental Data

作者: Xinwen Liu, Nainsheng Tang, Song Xi Chen
主题: 其他
相关性: 6/10
链接: https://arxiv.org/abs/2607.04641


一、领域脉络与小综述

这个方向是什么

本文提出的“部分函数型动态结构方程模型(PFDSEM)”属于环境统计贝叶斯时空建模的交叉领域。其根本的科学问题是:如何在一个统一的统计框架内,整合不同时间分辨率的环境数据(如小时级的气象变量 vs. 年度/季度的社会经济指标),并同时刻画它们对多个相互关联的大气污染物排放指标时变空间异质的影响。当前该子方向的成熟度属于应用驱动的方法学扩展:已有成熟的工具(如结构方程模型SEM、函数型数据分析FDA、贝叶斯P样条),但将它们有机整合以解决特定数据挑战(多分辨率、动态依赖、空间异质性)的工作尚不充分。

发展脉络(history)

  1. 奠基工作:传统回归与空间计量经济学

    • Apergis and Payne (2010); Ghosh (2010); Jayanthakumaran et al. (2012); Ozcan (2013):这些工作使用面板协整、格兰杰因果检验等传统回归或空间计量方法,研究能源消费、经济增长与碳排放之间的关系。本文引用语境指出,这些模型“limited in their capacity to incorporate dynamic temporal interdependencies between variables”,且主要研究“unidirectional relationships...from multiple independent variables to a single dependent variable”。它们留下了无法同时处理多个相互关联的响应变量和解释变量的口子。
  2. 主要进展:结构方程模型(SEM)及其动态扩展

    • Chaudhary and Bisai (2018); Rauf et al. (2018); Song et al. (2018):这些工作认识到环境系统的复杂性,开始使用SEM来同时分析多个响应和解释变量。本文引用语境指出,传统SEM“typically ignore temporal dynamics in observed indicators”。
    • Song et al. (2012):提出了广义随机系数结构方程模型(GRCSEM),这是本文最直接的前身。它通过引入条件自回归(CAR)结构和线性区域化模型(LMC),显式地建模了纵向数据中的时间相关性和截面异质性。本文引用语境指出,GRCSEM“is designed for scalar variables and cannot natively accommodate functional covariates measured at higher temporal resolutions”。它留下了无法处理函数型协变量的口子。
  3. 当前Frontier:函数型数据分析(FDA)与环境应用

    • Ramsay and Silverman (2005); Hastie et al. (2009); Wood (2017):这些是函数型数据分析的经典教材和方法论基础。本文大量引用它们来支撑其函数型协变量的基展开方法。这些工作提供了处理连续观测数据的工具,但并未将其嵌入到动态SEM框架中。
  4. 本文的位置:本文声称填补了GRCSEM(Song et al., 2012)与FDA之间的空白,提出了PFDSEM,将函数型协变量(通过基展开)整合进一个包含CAR+LMC动态结构的SEM中,从而同时解决多分辨率数据整合、动态时间依赖和空间异质性三个挑战。

子线索聚类

这些被引文献大致落在以下三条子线索上:

  • 线索一:环境-经济关系的实证建模(Apergis & Payne, 2010; Ghosh, 2010; Jayanthakumaran et al., 2012; Ozcan, 2013; Rauf et al., 2018; Song et al., 2018; Chaudhary & Bisai, 2018)。这一簇主要使用传统面板数据模型或SEM,研究经济增长、能源消费、贸易等标量变量与碳排放/环境效率之间的关系。其瓶颈在于模型结构相对简单,难以处理多变量动态依赖和函数型数据。
  • 线索二:动态结构方程模型(DSEM)(Song et al., 2012)。这一簇是本文的直接方法学基础,通过CAR+LMC结构将时间依赖和变量间相关引入SEM。其瓶颈在于只能处理标量变量。
  • 线索三:函数型数据分析(FDA)(Ramsay & Silverman, 2005; Hastie et al., 2009; Wood, 2017; Lang & Brezger, 2004; Klein & Kneib, 2016)。这一簇提供了处理函数型数据(如气象时间序列)的工具,如基展开、P样条平滑。其瓶颈在于通常不涉及复杂的潜变量结构和动态SEM框架。

这个方向在追问的核心问题

  1. 如何整合多分辨率数据? 高频(函数型)和低频(标量)数据如何在同一个模型中自然地共存,而不丢失信息或引入人为偏差?
  2. 如何刻画时变且非平稳的依赖关系? 变量间的关系如何随时间演变?如何建模相邻时间点之间的相关性,以及这种相关性本身的变化?
  3. 如何量化空间/个体异质性? 不同省份(或个体)之间的结构关系(如经济发展对排放的影响)是否存在显著差异?如何建模这种差异?
  4. 如何实现完整的不确定性量化? 在这样一个复杂的层次模型中,如何确保从函数型表示到潜变量再到结构参数的整个推断链条中的不确定性被正确传播?

⚠️ 作者的 framing

  • 作者把缺口 frame 成什么? 作者将缺口明确frame为:现有方法要么是“标量变量”的(如GRCSEM),要么是“非动态”的(如传统FDA),无法同时处理“多分辨率”和“动态结构”这两个挑战。因此,PFDSEM被呈现为“显然的下一步”——一个将GRCSEM扩展到函数型协变量的自然且必要的推广。
  • 哪些竞争路线被他淡化或回避了?
    • 两阶段方法:作者在Section 2.2中明确批评了“two-step approaches that perform pre-smoothing independently of outcome modeling”,声称其方法通过统一框架减少了偏差。但并未深入讨论两阶段方法(如先对函数型数据进行FPCA降维,再放入SEM)在特定场景下可能更简单、计算更快的可能性。
    • 其他动态模型:作者在Limitation中承认“CAR(1) structure, while parsimonious, may not capture all temporal dynamics”,并提到“extensions to ARMA or stochastic volatility models”。这表明作者淡化了CAR(1)结构的局限性,没有与更灵活的时序模型(如动态因子模型、状态空间模型)进行系统性比较。
    • 因果推断方法:本文是一个关联性建模框架,作者在Limitation中承认“observational design precludes strong causal claims”。但作者并未讨论或引用任何因果推断方法(如工具变量、双重机器学习、断点回归)作为可能的替代或补充,尽管这些方法在环境经济学中已被广泛使用。
  • 什么明显该被引 / 该存在、却没出现在 intro 里?
    • 动态因子模型(DFM):DFM是处理高维时间序列和潜变量的标准工具,与本文的框架高度相关。本文的LMC结构本质上是一种静态因子模型,而CAR结构处理时序。DFM(如Bai & Ng, 2002; Stock & Watson, 2011)提供了另一种处理动态潜变量的成熟范式,但未被引用或讨论。
    • 时空统计模型:本文使用了CAR模型处理时间依赖,但并未引用更一般的时空统计文献(如Cressie & Wikle, 2011),这些文献提供了处理时空相关性的更丰富工具(如时空克里金、动态时空模型)。本文的模型在空间上仅通过随机系数Γ_i处理异质性,并未建模空间相关性(尽管在实证中使用了Moran's I分析空间自相关,但模型本身并未包含空间结构)。
    • 贝叶斯非参数方法:对于函数型系数C(t),本文使用了贝叶斯P样条。但更灵活的贝叶斯非参数方法(如高斯过程先验)在函数型回归中也很常见,未被讨论。

张力

未见明显对立引用。所有被引工作基本是互补的,共同指向一个更复杂、更整合的建模需求。

二、最核心、最简单的例子 / 数学问题

第一步:把符号、模型、可观测数据交代清楚

  • 符号

    • i = 1, ..., n:个体(省份)索引。
    • j = 1, ..., J:时间点(季度)索引。
    • Y_ijd1 x 1 向量,可观测的响应变量,即第i个省份第j个季度的多种大气污染物排放量。
    • X_ij(d2+1) x 1 向量,可观测的标量协变量(包括截距项),如环境治理投资、政府干预、外商直接投资。
    • Z_ij(t)d3 x 1 向量,可观测的函数型协变量,即第i个省份第j个季度内随时间t连续变化的气象变量(如海平面气压、2米温度)。
    • ω_ij = (η_ij^T, ξ_ij^T)^Tr3 x 1 潜变量向量。η_ijr1 x 1)是结果潜变量(代表“排放强度”),ξ_ijr2 x 1)是解释潜变量(代表“经济发展”、“人口结构”等)。不可直接观测,是模型要推断的对象。
    • βd1 x (d2+1) 回归系数矩阵,标量协变量的效应。
    • Λd1 x r3 因子载荷矩阵,连接潜变量与可观测变量。
    • C(t)d1 x d3 系数函数矩阵,函数型协变量的时变效应。要估计的无限维对象
    • ϵ_ijd1 x 1 测量误差向量,服从 N(0, Ψ)Ψ 是对角矩阵。
    • Γ_ir1 x r2 结构系数矩阵,表示解释潜变量对结果潜变量的影响。允许随个体i变化
    • δ_ijr1 x 1 结构误差向量。
    • A_1, A_2:上三角矩阵,LMC参数,用于分解潜变量间的协方差矩阵。
    • C_i(α_i1), D_i(α_i2)J x J 时间协方差矩阵,由CAR模型定义,参数为 α_i1 = (τ^2_{iξ}, ρ_{iξ})α_i2 = (τ^2_{iδ}, ρ_{iδ})ρ 衡量时间依赖强度。
  • 模型

    1. 测量方程Y_ij = β X_ij + Λ ω_ij + ∫ C(t) Z_ij(t) dt + ϵ_ij。可观测变量由标量协变量、潜变量和函数型协变量的积分共同线性决定。
    2. 结构方程η_ij = Γ_i G(ξ_ij) + δ_ij。结果潜变量由解释潜变量的函数(此处为线性)决定,系数允许随个体变化。
    3. 异质性模型Γ_i = O_i B + U_i v_i。结构系数矩阵由一个总体均值(B)和一个个体随机效应(v_i)组成。
    4. 时间依赖模型:潜变量 ξ_ijδ_ij 的时间协方差由CAR(1)结构和LMC共同建模:Σ_{iξ} = C_i(α_i1) ⊗ T_ξ,其中 C_i 是CAR(1)时间协方差矩阵,T_ξ = A_1 A_1^T 是变量间协方差矩阵。
  • 可观测数据

    • 可直接观测的Y_ij(污染物排放量),X_ij(社会经济标量指标),Z_ij(t)(气象函数型数据)。
    • 不可直接观测的(潜在/待估):潜变量 ω_ijη_ij, ξ_ij),所有模型参数(β, Λ, C(t), Ψ, Γ_i, B, Υ, A_1, A_2, ρ_ξ, ρ_δ 等)。识别这些量完全依赖于模型假设(如因子载荷的固定、CAR参数的范围、LMC的Cholesky分解)。

第二步:讲最小内核

本文的核心思路可以归结为:如何将函数型协变量“塞进”一个已有动态结构的潜变量模型(GRCSEM)中,并保持模型可识别和可计算。

最简特例:考虑一个极度简化的版本,以看清核心机制。 * 设定:只有 n=1 个个体,J=2 个时间点。只有 d1=1 个响应变量 Y_j(如SO2排放),d3=1 个函数型协变量 Z_j(t)(如温度),没有标量协变量 X。潜变量只有一个解释潜变量 ξ_jr2=1)和一个结果潜变量 η_jr1=1)。结构方程是线性的:η_j = γ ξ_j + δ_j。假设 γ 不随时间变化(即 Γ_i = γ 是标量常数)。 * 模型退化: * 测量方程:Y_j = λ η_j + ∫ C(t) Z_j(t) dt + ϵ_j。这里 λ 是标量载荷(固定为1以识别),C(t) 是标量系数函数。 * 结构方程:η_j = γ ξ_j + δ_j。 * 时间依赖:假设 ξ_jδ_j 都服从一个简单的AR(1)过程,即 Cov(ξ_1, ξ_2) = ρ_ξCov(δ_1, δ_2) = ρ_δ。这对应CAR(1)的最简形式。 * 核心思路: 1. 函数型协变量的处理∫ C(t) Z_j(t) dt 是无限维的。作者用基展开近似:C(t) ≈ Σ_{k=1}^K φ_k b_k(t)Z_j(t) ≈ Σ_{k=1}^K z_{jk} b_k(t)。那么积分近似为 Σ_{k=1}^K φ_k z_{jk},其中 z_{jk} = ∫ b_k(t) Z_j(t) dt可计算的。这样,无限维问题就变成了一个有限维线性回归问题:Y_j = η_j + Σ_{k=1}^K φ_k z_{jk} + ϵ_j。 2. 动态结构的整合:现在,Y_j 由潜变量 η_j 和函数型基展开的线性组合共同决定。而 η_j 又通过 γ 与另一个潜变量 ξ_j 相连,ξ_jδ_j 具有AR(1)结构。整个模型变成一个带函数型协变量的动态潜变量模型。 3. 贝叶斯推断:所有未知量(η_j, ξ_j, γ, φ_k, ρ_ξ, ρ_δ, ψ 等)都赋予先验。通过MCMC(如Gibbs采样)从后验中采样。关键在于,通过数据增广(将潜变量视为参数),条件后验分布很多是标准分布(正态、Gamma、Wishart),可以高效采样。对于非标准分布(如 ρ 的条件后验),使用Metropolis-Hastings步骤。

这个特例揭示了论文的核心数学操作基展开将函数型回归问题转化为一个带惩罚的、有限维的线性回归问题,然后将其嵌入到一个已有的、通过数据增广和MCMC可解的贝叶斯动态SEM框架中。 论文的一般情形(多变量、多潜变量、随机系数、LMC)只是这个核心思路在维度上的扩展和复杂化,没有引入全新的数学思想。

三、这篇论文做了什么

三句话

  1. 研究了什么问题:提出了一个部分函数型动态结构方程模型(PFDSEM),用于整合多分辨率环境数据(函数型气象变量和标量社会经济指标),并建模它们对多种大气污染物排放的时变、非平稳且省份异质的影响。
  2. 核心工具/方法:通过基展开(Bayesian P-spline)将函数型协变量降维,嵌入到一个包含条件自回归(CAR)结构线性区域化模型(LMC) 的动态SEM中,并采用贝叶斯MCMC(Gibbs采样+Metropolis-Hastings)进行完整的不确定性量化。
  3. 主要结论:模拟研究证实了参数恢复的准确性和对先验设定的稳健性。应用于2015-2020年中国30个省份的数据,发现气象条件、经济发展等因素是排放的抑制因素,而森林火灾、交通等因素是加剧因素;这些关联存在显著的省份异质性和季节模式;潜变量间存在强正相关,表明政策干预可能产生级联效应。

关键设定与假设

在第二节最小记号的基础上,补全完整设定: * 测量方程Y_ij = β X_ij + Λ ω_ij + ∫ C(t) Z_ij(t) dt + ϵ_ij。假设 ϵ_ij ~ N(0, Ψ)Ψ 为对角矩阵(即测量误差在变量间独立)。这是标准SEM假设。 * 结构方程η_ij = Γ_i G(ξ_ij) + δ_ij。本文实证中取 G(ξ_ij) = ξ_ij(线性)。Γ_i 允许随个体变化,通过 Γ_i = O_i B + U_i v_i 建模,其中 v_i ~ N(0, Υ)。这引入了随机系数,是处理异质性的关键。 * 时间依赖:潜变量 ξ_ijδ_ij 的协方差结构为 Σ_{iξ} = C_i(α_i1) ⊗ T_ξΣ_{iδ} = D_i(α_i2) ⊗ T_δ。其中 C_iD_iCAR(1)模型定义:C_i = τ^2_{iξ} (I_J - ρ_{iξ} H_i)^{-1}H_i 是邻接矩阵(仅一阶时间相邻)。这假设了时间依赖是平稳的、各向同性的(由单个参数 ρ 控制),且变量间相关性与时间无关(由Kronecker积 分离)。 * 模型可识别性:通过固定因子载荷矩阵 Λ 的第一个非零元素为1(解决旋转不定性),固定CAR方差参数 τ^2_{iξ} = τ^2_{iδ} = 1(解决尺度不定性),并要求 A_1, A_2 为对角元为正的上三角矩阵(Cholesky分解,解决LMC旋转不定性)。 * 相比已有文献的强化/放宽:相比Song et al. (2012)的GRCSEM,本文强化了模型能力,允许函数型协变量。相比传统FDA,本文强化了动态潜变量结构。相比标准SEM,本文放宽了时间独立和参数同质的假设。

主要结果

  • 模拟研究:在 n=30, J=6n=80, J=6 两种样本量下,对两种先验设定(Type I: 信息先验;Type II: 弱信息先验)进行了100次重复模拟。结果(Table 1)显示:
    • 所有参数的Bias、RMSE和SD都较小,且随样本量增大而减小。
    • Type I和Type II的结果非常相似,表明估计对先验设定稳健
    • 函数型系数 Φ 的估计(Fig. 3)也能很好地捕捉真实曲线形状。
  • 真实数据应用
    • 数据:2015-2020年中国30个省份的面板数据,包含10种污染物排放(响应变量)、49个社会经济环境指标(标量协变量+潜变量指标)和2个函数型气象变量(海平面气压、2米温度)。
    • 模型拟合:Table 2显示,模型对10种污染物的拟合 R^2 在0.421到0.896之间,RMSE和SD也报告了。
    • 关键发现
      1. 关联方向:气象、经济发展、植被覆盖、技术创新、城市化、教育是排放的抑制因素;森林火灾、交通、家庭规模、环境关注是加剧因素(Fig. 8)。
      2. 省份异质性:结构系数 Γ_i 的估计(Fig. 11)显示,不同省份的关联强度差异很大,证实了“一刀切”政策的局限性。
      3. 时间动态:时间依赖参数 ρ_ξ = 0.545ρ_δ = 0.555 显著不为零,表明结构关系存在强时间持续性。
      4. 季节模式:函数型系数 C(t) 的估计(Fig. 10)揭示了气象变量对排放影响的显著季节模式(如冬季逆温效应)。
      5. 因子间相关:潜变量相关矩阵(Fig. 12)显示经济发展、城市化、技术创新等因素间存在强正相关,暗示政策干预的级联效应。

证明路线与技术技巧

本文是应用方法论文,没有传统意义上的“定理证明”。其“证明”在于模型的可识别性论证MCMC算法的收敛性

  • 整体路线
    1. 模型构建:将函数型协变量通过基展开离散化,嵌入到GRCSEM框架中,形成PFDSEM。
    2. 可识别性论证:通过施加标准约束(固定载荷、固定CAR方差、Cholesky分解LMC),证明模型参数在给定这些约束下是唯一确定的(Section 2.3)。
    3. 贝叶斯推断:为所有参数指定(共轭或弱信息)先验,通过数据增广将潜变量视为参数,推导出所有参数的全条件后验分布。
    4. MCMC采样:对于标准分布(正态、Gamma、Wishart)的参数,使用Gibbs采样直接抽取;对于非标准分布(如 ρΦΨ 的条件后验),使用Metropolis-Hastings(MH)算法。
    5. 收敛诊断:使用多链EPSR(Estimated Potential Scale Reduction)统计量(<1.2)判断MCMC链是否收敛。
  • 关键跳跃点
    • 从无限维到有限维:这是最关键的跳跃。作者没有去证明基展开的近似误差界,而是直接采用标准做法(Bayesian P-spline),并通过先验(平滑惩罚)来控制过拟合。这个跳跃的合理性依赖于函数型数据分析的成熟理论,但本文并未深入讨论。
    • 处理非标准条件后验:对于 ρΦ 等参数,其条件后验不是标准分布。作者使用MH算法,并手动调整了提议分布的方差(σ^2_ξ=1.9, σ^2_ψ=2.0, σ^2_{ρξ}=20.1 等)以达到可接受的接受率(~0.33)。这是实现层面的关键技巧,但缺乏理论上的最优性保证。
  • 技术技巧点名
    • Bayesian P-spline:用于函数型系数的非参数估计和正则化(通过二阶差分惩罚矩阵 U 和超先验 θ^{-2}_{ph})。
    • 数据增广(Data Augmentation):将潜变量 F 视为待估参数,使得条件后验分布易于推导和采样。
    • Gibbs采样 + Metropolis-Hastings:混合MCMC算法,对标准分布用Gibbs,对非标准分布用MH。
    • Cholesky分解:用于LMC参数 A_1, A_2 的识别,确保 T_ξ = A_1 A_1^T 的唯一性。
    • Kronecker积:用于分离时间相关性和变量间相关性,简化协方差矩阵的建模和计算。

真实例子与应用

  • 数据:2015-2020年中国30个省份的污染物排放数据(来自CEADs和MEIC)及118个社会经济环境指标(经筛选后保留49个)。
  • 方法应用:将10种污染物作为响应变量 Y,3个标量变量(环境治理、政府干预、FDI)作为 X,2个气象变量(海平面气压、2米温度)作为函数型协变量 Z(t),其余49个指标通过因子分析映射到10个潜变量 ξ(如经济发展、人口结构等),并假设一个结果潜变量 η(代表“排放强度”)。模型通过MCMC进行拟合。
  • 结果:见“主要结果”部分。
  • 这个例子想说明什么:这个例子旨在展示PFDSEM处理真实复杂数据的能力,并产生有政策含义的发现。它验证了模型能够:
    1. 整合多分辨率数据(年度/季度社会经济指标 vs. 小时级气象数据)。
    2. 揭示变量间复杂的、时变的、异质的关系。
    3. 提供完整的不确定性量化(后验分布、可信区间)。
    4. 产出比传统方法更细致、更具可操作性的结论(如季节特异性、省份特异性)。

🔎 结论是否比证明窄

  • 是的,存在多处结论比证明窄的情况。
    • 函数型系数估计:作者声称基展开方法“preserves the continuous nature of the data”。但实际证明中,C(t) 被近似为有限基函数的线性组合,其估计精度和连续性完全依赖于基函数个数 K_n 的选择和惩罚项。作者没有提供关于近似误差的理论界,也没有讨论 K_n 的选择标准(如通过交叉验证或信息准则)。因此,“preserves continuity”是一个泛泛的claim,其严格性取决于实际实现。
    • “动态”结构:模型中的“动态”仅通过CAR(1)结构实现,即仅建模了相邻时间点的相关性。这本质上是一个静态的、一阶马尔可夫结构。作者在Limitation中承认“CAR(1) structure...may not capture all temporal dynamics”,但在引言和模型描述中,多次使用“dynamic”、“non-stationary”等词,容易让读者误以为模型能捕捉更复杂的动态模式(如长期趋势、周期、结构突变)。实际上,模型中的非平稳性仅体现在 ρ 参数允许随个体变化,以及函数型系数 C(t) 的季节性模式上,而非时间序列本身的非平稳性。
    • 因果推断:作者在Limitation中承认“observational design precludes strong causal claims”。然而,在实证结果的描述中(如“Meteorological conditions...are identified as inhibitors of emissions indices”),使用了“inhibitors”这种带有因果暗示的词汇。严格来说,模型只能识别关联,不能识别因果。结论的措辞比证明所支持的更强。

四、开放问题

  1. 函数型系数的统计推断:本文对函数型系数 C(t) 的估计依赖于Bayesian P-spline,但未提供其渐近性质(如相合性、收敛速度、置信带的覆盖性质)。扎根于:Section 2.2中基展开的近似,以及Fig. 10中仅展示了后验均值,未给出点态或同时置信带。一个开放问题是:能否为 C(t) 建立半参数效率理论,并构造出渐近有效的置信带?

  2. 模型选择与比较:本文没有讨论如何选择潜变量个数(r1, r2)、基函数个数(K_n)或比较不同模型结构(如是否包含非线性项 G(·))。扎根于:Section 2.2中 K_n 被描述为“controlling the number of basis functions to balance model complexity and goodness-of-fit”,但未给出具体选择方法。一个开放问题是:能否开发出基于信息准则(如WAIC、DIC)或贝叶斯因子(Bayes factor)的模型选择程序,用于PFDSEM?

  3. 计算可扩展性:本文的MCMC算法在 n=30, J=6 时耗时约5-13分钟,但扩展到更大规模数据(如 n=300 个城市,J=24 个月)时,计算负担将急剧增加。扎根于:Section 6.3 Limitation中提到“Computational demands remain substantial; variational Bayesian approximations or scalable MCMC algorithms...warrant investigation”。一个开放问题是:能否设计出适用于PFDSEM的变分贝叶斯(VB)或随机梯度MCMC算法,使其能扩展到城市级或日度级数据?

  4. 因果识别的整合:本文模型本质上是关联性模型。如何将因果推断的识别策略(如工具变量、前门/后门准则、双重机器学习)整合进PFDSEM框架,以从观测数据中估计某些关键变量(如环境规制政策)对排放的因果效应?扎根于:Section 6.3 Limitation中提到“Future research could integrate instrumental variables or natural experiments”。这是一个明确的、由作者提出的未来方向。


Maintained by 陈星宇 · Homepage · Source on GitHub

评论