跳转至

Estimation and Inference for a Semiparametric Time–Varying Panel Data Model

作者: Fei Liu
来源: Journal of Business & Economic Statistics
主题: 非参数 / 半参数
相关性: 7/10
链接: https://doi.org/10.1080/07350015.2024.2449391


一、领域脉络与小综述

这个方向是什么

本文研究的子方向是半参数面板数据模型,其核心统计问题为:在同时存在个体固定效应与共同因子结构的面板数据中,如何非参数地估计协变量的时变系数,并对其做统计推断?该方向处于半参数回归与面板数据计量经济学的交叉地带,当前的主要挑战在于:如何在高维因子结构(多个体 × 多期)与函数型系数(时间光滑性)的联合约束下,构造可计算的、具有显式渐近分布的估计量,同时避免因对因子结构施加过于苛刻的假设(如正交性、参数载荷)而导致模型错误。

发展脉络(history)

作者在引言中将其工作定位为以下三条平行线索的交汇点:

  1. 经典面板数据模型下的参数与时变设定
  2. Bai (2009)Pesaran (2006) 建立了带交互效应(interactive effects)的面板数据模型,其中不可观测的异质性通过因子模型(个体载荷 × 共同因子)刻画。这些工作为因子建模提供了理论基础,但假设载荷 βᵢ 或系数 γ 是不随时间变化的常数
  3. Su, Jin & Zhang (2015) 首次将逐截面核光滑引入因子模型中的时变系数估计,但他们关注的是系数与载荷均随时间变化的情形——这一设定后来被作者在正文中评论为“过度参数化、难以在有限样本中区分系数与载荷”。

  4. 因子模型的非参数载荷

  5. Park, Mammen & Härdle (2012)Smith, Park & Härdle (2018) 发展了一类最近邻与局部分段光滑的载荷估计方法,允许共同因子载荷在时间上光滑变化。
  6. 核心进展是:将因子载荷从参数形式放宽为时间上的未知函数,与本文的思想直接相通。

  7. 剖面边际积分(PMI)方法

  8. Liu, Gao & Chan (2021) 提出了一种针对面板数据中部分线性单指标模型的PMI估计方法。本文作者(同为 Liu)将这一半参数平滑技术推广到带因子结构的时变系数设定,从而将两个子方向(a. 时变系数面板模型;b. 因子模型中的非参数载荷)统一在同一框架下。

本文的位置:它试图将“时变系数”与“非参数因子载荷”这两种时间光滑结构同时纳入一个统一的半参数面板模型,并且用PMI方法实现一步式联合估计,同时建立渐近正态性与假设检验。这使其相对于Su et al. (2015)更具识别性(系数与载荷通过不同的积分路径分离),相对于Park et al. (2012)更接近面板数据因果推断的普遍设定。

子线索聚类

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

  • 线索A:时变系数面板模型(关注核心回归系数的光滑变化)
    代表:Su, Jin & Zhang (2015)、Bai (2009)、Pesaran (2006)
    共性问题:如何在允许共同因子结构下保持系数的可识别性,以及如何构造无需事先知道因子个数的估计量。

  • 线索B:因子模型中的非参数载荷(关注因子分解中的光滑性)
    代表:Park, Mammen & Härdle (2012); Smith, Park & Härdle (2018)
    关注点:如何使用非参数(核或局部多项式)技术估计载荷随时间的变动,而不要求载荷是因子组合的线性函数。

本文通过PMI方法同时处理这两类光滑性,因此它处于两条线索的汇合点上。

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

  • 问题1:当系数 β(t) 与因子载荷 f(t) 都随时间光滑变化时,如何识别二者?
    当前主流方法(如Su et al., 2015)依赖于面板长度 T 与个体数 N 共同趋于无穷,但未给出可检验的识别条件。本文通过积分路径剥离协变量与因子部分的线性投影,给出一个明晰的识别结构:基准函数 H(τ) 是非参数回归的残差,而系数 β(t) 通过其在整个时间域上的积分唯一确定。

  • 问题2:在上述模型中,估计量的渐近分布能否做到显式且可用于假设检验
    已知:对于类似模型,因为协变量与因子在时间上相关,直接核光滑会导致方差非标准。本文通过PMI方法(两步核平均)将偏差项控制到可以显式写出 asymptotic bias 的程度,从而构造渐近正态性检验。

  • 问题3:能否在不假设因子个数已知、不假设因子载荷正交于协变量的情况下得到相同结论?
    本文给出的答案是:通过将第一阶段拟合残差同时投影到所有时间点(边际积分),可以绕过对因子结构的直接估计。这与传统的“先估计因子、再修正主回归”的路线形成对比。

⚠️ 作者的framing

作者把缺口frame成:已有模型要么只允许系数随时间变动但忽略因子载荷的非参数性(如Bai, 2009),要么允许载荷非参数但假设系数为常数(如Park et al., 2012),要么同时变化但无法识别(如Su et al., 2015)。本文通过引入PMI方法,声称可以同时估计三种结构(常数参数 + 时变系数 + 非参数载荷),且不对基准函数 H(τ) 施加参数限制

被淡化或回避的竞争路线: - 面板分位数回归(例如Koenker, 2004):没有在intro中提及,但它是另一种处理异质性(常数斜率 + 个体截距)的常规方法。 - 非参数协方差矩阵估计(如Bai & Li, 2012):在因子模型框架下,另一种处理时变载荷的常用方法是直接估计全协方差矩阵然后谱分解;本文未讨论此路线。 - 传统PMI(Liu et al., 2021)的固定效应假设:本文虽继承了PMI,但原方法的识别性来源于“协变量与个体固定效应相关,但与因子不相关”的假设;本文则假定协变量与因子相关,因此需要额外设置一个“因子部分由协变量到全部时间点投影的残差”来分离。

什么明显该被引 / 该存在、却没出现在intro里?
- “面板数据中回归系数随时间变化的核光滑估计”的早期经典(如Hastie & Tibshirani, 1993 或 Wood, 2006 的平滑样条在面板上的应用)未被引用。这可能因为作者聚焦于因子结构而非单纯的时变系数。但由于本文最核心的比较基准是“忽略时间变化的参数方法”,应当列出至少一篇相关的时变系数参数面板文献(如Canova & Ciccarelli, 2013)。不过此缺失并未影响论文逻辑连贯性。

张力

未见明显对立引用。所有被引工作在各自假设下都是自洽的,且都沿着“将因子模型中的光滑性放松到非参数”这一方向前进。作者处理的矛盾更像是“哪一个光滑性更重要 / 更可识别”这一设计选择上的取舍,而非定理层面的根本冲突。


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

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

  • i = 1, …, N:个体下标
  • t = 1, …, T:时间下标
  • yᵢₜ:可观测的标量响应变量
  • xᵢₜ:可观测的 d 维协变量向量(假定为离散值或连续值,但无显式分布假设)
  • αᵢ:个体固定效应(unobserved time-invariant heterogeneity)。不可观测
  • fₜ:r 维共同因子向量(r 可被指定或由数据决定,本文可假定 r ≤ r_max)。不可观测
  • β(t/T):模型的核心参数——一个 d 维的时间光滑函数,表示协变量 xᵢₜ 对 yᵢₜ 的时变系数。它是要估计的未知函数
  • H(t/T):一个 r × d 的非参数载荷函数矩阵,其第 j 列 hᵢ(t/T) 是第 j 个因子 fᵢₜ 对协变量 xᵢₜ 的“全体时间点投影斜率”的均值(具体定义见下)。它也是要估计的未知函数
  • εᵢₜ:独立同分布的个体-时间噪声,均值为0,方差为σ²。不可观测

模型(数据生成机制)

\[y_{it} = x_{it}^\top \beta(\tau_t) + \alpha_i + \lambda_i^\top f_t + u_{it}, \quad \tau_t = t/T \in [0,1]\]
这里 λᵢ 是个体载荷向量(r × 1),与 αᵢ 共同构成未观测异质性。

可观测数据:{(yᵢₜ, xᵢₜ), i=1,…,N, t=1,…,T},共NT个数据点。除此之外, αᵢ、λᵢ、fₜ 或 εᵢₜ 的样本。

关键识别假设(在最小内核中先只列出必要的部分): - 协变量 xᵢₜ 与个体固定效应 αᵢ 相关(固定效应而非随机效应); - 在所有时间点 τ∈[0,1]上,xᵢₜ 与 fₜ 可能相关,但这种相关性由非参数矩阵 H(·) 部分刻画; - 残差 uᵢₜ 与 xᵢₜ, αᵢ, λᵢ, fₜ 均不相关。

第二步:讲最小内核

最简特例:假设 d = 1(单个协变量),r = 1(单因子)。此时变量与参数全部降为标量: - β(τ):一个标量函数; - H(τ):一个标量函数; - λᵢ、fₜ:均为标量。

在这个特例下,模型退化为

\[y_{it} = x_{it}\beta(\tau_t) + \alpha_i + \lambda_i f_t + u_{it}.\]

要解决的数学问题:给定可观测的 (yᵢₜ, xᵢₜ),如何估计 β(·) 和 H(·),使得估计量具有可处理的渐近分布,从而可以对假设“β(·) = β₀(常数)”进行检验?

核心思路(PMI在特例下的操作)

  1. 消除个体固定效应:对每个个体 i 在时间上取均值,得到

    \[\bar{y}_i = \frac{1}{T}\sum_{t=1}^T x_{it}\beta(\tau_t) + \alpha_i + \lambda_i \bar{f} + \bar{u}_i,\]
    然后减去这个均值方程(离差变换):
    \[y_{it} - \bar{y}_i = [x_{it}\beta(\tau_t) - \frac{1}{T}\sum_{s=1}^T x_{is}\beta(\tau_s)] + \lambda_i (f_t - \bar{f}) + (u_{it} - \bar{u}_i).\]

  2. 对因子部分做边际积分:对任何固定的时间点 τ = τₜ,在其邻近时间所有个体上用核光滑求平均,得到:

    \[\hat{B}(\tau) = \frac{1}{N} \sum_{i=1}^N \frac{1}{T} \sum_{s=1}^T K_h(\tau - \tau_s) (y_{is} - \bar{y}_i).\]
    由于第一步已经去掉了 αᵢ,而 λᵢ (f_s - \bar{f}) 部分经过这样两次平均(先个体离差,再对 s 加权平均)后,渐近等价于
    \[\frac{1}{N} \sum_i \lambda_i \cdot \frac{1}{T} \sum_s K_h(\tau - \tau_s)(f_s - \bar{f}) \to 0,\]
    因为 λᵢ 在个体间独立且期望为0(或可消去)。因此:
    \[\hat{B}(\tau) \approx \frac{1}{N} \sum_{i=1}^N \frac{1}{T} \sum_{s=1}^T K_h(\tau - \tau_s)[x_{is}\beta(\tau_s)].\]

  3. 提取 β(·):在这里,H(·)的角色出现——正是 H(τ) = 𝔼[ x_{it} | t/T = τ ] 决定了 x_{it} 的期望(对 τ 的函数)与 β(τ) 的相互作用。通过再做一个类似的“边际积分”(对 τ 积分),将 x_{it} 的期望加权后从 B(τ) 中分离出来,得到 β(τ) 的核估计量:

    \[\hat{\beta}(\tau) = \frac{ \frac{1}{T} \sum_{t=1}^T K_h(\tau - \tau_t) \cdot \frac{1}{N} \sum_{i=1}^N (y_{it} - \bar{y}_i) }{ \frac{1}{T} \sum_{t=1}^T K_h(\tau - \tau_t) \cdot \frac{1}{N} \sum_{i=1}^N x_{it} }.\]
    这个公式的核心在于:分母是 H(τ) 的核估计乘以平均 x,分子是B(τ)的核估计,而式子恰好消去了λᵢ fₜ 项,找到了 β(τ) 的一个“可观测数据两层平均”表达式。

为什么这能工作:因为通过“先差分消除个体固定效应 + 再平均消除因子部分”的两步结构,论文将因子模型的非参数载荷 H(·) 不是作为待估参数的噪声来“忍受”,而是作为核光滑的分母来利用,从而得到 β(·) 的点识别。这就是“剖面边际积分”名字的由来:先对个体剖面做平均(去除固定效应),再对时间做边际积分(去除因子),得到 β 的剖面函数。


三、这篇论文做了什么

三句话

  1. 本文研究了半参数时变系数面板数据模型(带个体固定效应与共同因子模型的非参数载荷),提出了剖面边际积分(PMI)估计方法,分三步联合估计所有未知函数。
  2. 核心工具是用两步核加权平均(先对个体固定效应作离差变换,再对时间做核平滑)消除不可观测的因子结构与个体异质性,并对载荷矩阵 H(·) 做非参数平滑,从而给出 β(·) 的显式估计量。
  3. 主要结论:(i)β(·)的PMI估计量依分布收敛于高斯过程,渐近方差为显式形式;(ii)构造了关于β(·)是否为常数的检验统计量,并给出渐近卡方分布;(iii)模拟与共同基金数据实例表明,忽略时变系数的参数方法会导致估计量的偏差放大至少50%、检验尺寸膨胀。

关键设定与假设

在第二节特例的基础上,完整设定为:

  • 模型(一般形式):
    \[y_{it} = x_{it}^\top \beta(\tau_t) + \alpha_i + \lambda_i^\top f_t + u_{it}, \quad t=1,\dots,T; \quad i=1,\dots,N.\]
  • 相同点:β(τ) 是 d × 1 的光滑函数向量;αᵢ 是标量个体固定效应;λᵢ 是 r × 1 的载荷向量;fₜ 是 r × 1 的因子(时间序列);uᵢₜ 是噪声,假定条件期望为0、方差 σ²。

  • 关键假设(相比已有文献的强化/放松):

  • 识别假设(Assumption 1):协变量 xᵢₜ 与个体固定效应 αᵢ、因子部分 λᵢ⊤ fₜ 均可能存在相关性。这意味着不对xᵢₜ做外生要求,仅要求噪声uᵢₜ与(xᵢₜ, αᵢ, λᵢ, fₜ)不相关。这相比Bai (2009)中xᵢₜ必须与因子正交的要求更弱。
  • 光滑性假设(Assumption 2):β(τ) 和 H(τ) 的每个分量在 [0,1] 上二阶连续可导(s∈C²[0,1])。这比Park et al. (2012)的局部线性核光滑所要求的 h(τ) 一次可导更强,但差异不大(一个连续可导的H(τ)是通过φ-散度嵌入得到的,它们是核光滑方法能取得 O(h²) 偏差的必要条件)。
  • 混合性假设(Assumption 3):个体截面序列 { (αᵢ, λᵢ, uᵢ₁, …, uᵢₜ) } 是 i.i.d. 截面样本(N → ∞),时间序列 fₜ 是平稳线性过程,满足强的混合条件(α-混合系数指数衰减)。这允许 T 固定或缓慢增长。
  • 核假设(Assumption 4):核函数 K 是对称概率密度,带宽 h 满足 Nh³ → ∞ 且 Nh⁵ → 0(下采样正则条件)。这意味着为了控制方差随N增长,取二阶核以确保渐近偏差与方差同阶。

相比已有文献的强化/放松: - 相比Su et al. (2015),本文不需要假定因子个数 r 已知,因为PMI方法在积分过程中自动平均掉了因子。但若 r 未知,β(τ) 的一致估计依然成立,只是对H(τ)的估计(用于构造假设检验的方差)会失效——因此作者在模拟中固定 r=1。 - 相比 Liu et al. (2021) 的原始PMI,本文新增了非参数载荷 H(·) 的结构,因此对面板长度的光滑性假设更严格(要求 H 光滑)。

主要结果

结果1:β(τ) 的PMI估计量的一致性与渐近正态性(Theorem 1 与 Theorem 2)

  • 陈述:若 N, T → ∞ 且 T/N → κ ∈ (0, ∞),则对于任何 τ∈(0,1),

    \[\sqrt{Nh} \left[ \hat{\beta}(\tau) - \beta(\tau) - b(\tau) \right] \xrightarrow{\text{d}} N\left( 0, \Sigma(\tau) \right),\]
    其中 b(τ) = (h²/2) · β''(τ) · m₂(K) + o(h²) 是渐近偏差项,Σ(τ) = σ²·Ω(τ)^{-1}·∫K²,而 Ω(τ) = 𝔼[ xᵢₜ xᵢₜ⊤ | τ ](但修正了因子结构)。

  • 直觉:这个结果的关键是显式偏差基于 xᵢₜ 条件二矩的方差。这意味着用户可以用一个简单的 plug-in 公式计算标准误并做置信带,而无需进一步 bootstrap。

  • 必要条件:面板增长条件 N, T → ∞ 且 T/N 趋于常数。如果 T 比 N 增长更快或更慢,方差项形式会变化(这在推论中讨论)。

  • 解决的技术难点:证明中最棘手的是将 αᵢ + λᵢ⊤ fₜ 这两项在积分平均后的残留项控制到 o_p(1/(√N))。作者使用了两步 Hoeffding 型不等式(对个体截面)和Berstein型不等式(对时间序列),见引理A.1。

结果2:关于 β(τ) 是否常数的假设检验(Theorem 4)

  • 陈述:令 β₀ 是常数向量。构造统计量

    \[\mathcal{T} = \frac{1}{h} \sum_{\tau} [\hat{\beta}(\tau) - \hat{\beta}_0]^\top \hat{\Omega}(\tau) [\hat{\beta}(\tau) - \hat{\beta}_0] ,\]
    其中 η(τ) 是某个权重。在原假设 β(·)=β₀ 下,T 的渐近分布为χ²_{d}(含自由度修正)。拒绝域基于这一分布构造。

  • 应用:为实证研究者提供一个无需 bootstrap 的、可操作的模型选择标准:要么使用更加灵活的时变 PMI 估计,要么安心采用传统的固定系数面板模型。模拟表明,在 β(τ) 正弦波动幅度为 0.3 时,检验的渐近功效接近 1。

证明路线与技术技巧

整体路线(三步走):

  1. 第一步:消除个体固定效应 αᵢ
    通过组内离差变换,得到:

    \[\ddot{y}_{it} = y_{it} - \bar{y}_i = [x_{it} - \bar{x}_i]^\top \beta(\tau_t) + [\lambda_i^\top (f_t - \bar{f})] + (u_{it} - \bar{u}_i).\]
    这里关键点是,离差变换后,因子部分仍存在,它并非如经典固定效应那样被完全消去——所以我们的麻烦才在这里。

  2. 第二步:通过边际积分消除因子部分
    对每个 τ,定义

    \[\hat{B}(\tau) = \frac{1}{N} \sum_{i=1}^N \frac{1}{T} \sum_{s=1}^T K_h(\tau - \tau_s) \ddot{y}_{is}.\]
    在“个体截面 i.i.d.”假设下,因为有 λᵢ ≈ N(0, σ_λ²) 且与 f 独立,此项的二阶矩为 O(1/N)。所以当 N → ∞ 时,λᵢ (f_s - \bar{f}) 项在加总中消失。因此渐近地:
    \[\hat{B}(\tau) \approx \frac{1}{N} \sum_{i=1}^N \frac{1}{T} \sum_{s=1}^T K_h(\tau - \tau_s) [x_{is} - \bar{x}_i]^\top \beta(\tau_s).\]

  3. 第三步:反解出 β(τ)
    通过另一个边际积分:令

    \[\hat{H}(\tau) = \frac{1}{N} \sum_{i=1}^N \frac{1}{T} \sum_{s=1}^T K_h(\tau - \tau_s) [x_{is} - \bar{x}_i],\]
    然后做“剖面估计”:
    \[\hat{\beta}(\tau) = \hat{H}(\tau)^{-1} \hat{B}(\tau).\]
    这里要求 H(τ) 是满秩的——即协变量 x 的“条件二阶矩”在每一时间点都不是退化的。这个假设被称为“识别性条件”。

关键跳跃点

  • 最棘手的引理是引理A.4:证明 \(\hat{H}(\tau) - H(\tau) = O_p(1/\sqrt{Nh})\),而这通过分解 H(τ) 为:

    \[H(τ) = \frac{1}{T} \sum_{s} K_h(\tau - \tau_s) [\bar{\mu}_1(s) - \bar{\mu}_1], \quad \bar{\mu}_1(s) = \frac{1}{N} \sum_{i=1}^N \mathbb{E}[x_{it} | t=s],\]
    然后用核平滑的标准偏差估计(见Tsybakov, 2009)。这个跳跃点只需用到一次一阶核收敛性,没有用到任何高阶展开——因此对读者友好。

  • 另一个难点是证明在离差变换后,β(τ) 的估计量的渐近方差不依赖于因子结构:引理A.6通过计算方差分解,证明因子载荷加总项的二阶矩为 o(1/(N)),因此不贡献主导项。这需要用到截面平均值的 Hölder 不等式版本。

技术技巧点名

  • 剖面方法(profile):用于将高维非参数模型降为对核心参数 β(τ) 的一维光滑估计。
  • 边际积分(marginal integration):在面板上对个体和时间下标同时做核平均,相当于在N×T张量上做双向核光滑。
  • 核平滑(kernel smoothing):用于逼近 H(τ) 和 B(τ) 的连续函数值。
  • Berstein不等式:用于处理时间序列fₜ的混合性,证明因子项在个体加总后以指数速度衰减。

真实例子与应用

数据:122只共同基金的月度收益率(1990-2022年),以及一个独立的、同期的市场基准资产(MSCI世界指数)的回报率作为协变量。

方法应用: - 设定 yᵢₜ = 第 i 只基金在第 t 个月的超额收益(相对于无风险利率),xᵢₜ = 同期市场指数的超额收益(基准回报)。模型允许基准贝塔系数 β(τ) 随时间光滑变化,同时引入基金固定效应和共同因子(因子数 r 由 Bai & Ng (2002) 准则定为 1)。 - 作者分别用参数方法(固定贝塔)和PMI方法估计。对PMI,带宽 h 通过 leave-one-curve-out 交叉验证选取(约 h=0.08)。

结果: - PMI估计显示 β(τ) 在 1990-1994 年显著高于1(β≈1.3),1998年前后下降到0.8,2008-2009年再次跃升至1.1。参数固定效应模型估计值为 1.01(95% CI: [0.97, 1.06]),但忽略时变波动使该区间覆盖了三个完全不同的市场状态。 - 假设检验统计量 t = 23.4(p<0.001),明确拒绝 β(τ) 为常数。这说明忽略时变系数的传统CAPM模型在共同基金配置中会产生误导性推断。

这个例子想说明:实际数据的波动与因子结构中的时间相关性,使得常数贝塔模型不可靠;PMI方法提供了更准确的时变贝塔路径及可操作的统计检验。

🔎 结论是否比证明窄

是,存在一处具体的窄化

  • Theorem 4后的应用讨论(第5节)中,作者写道:“我们的检验可以被用于检验任何事前指定的参数形式,而不仅仅是常数。” 但在证明中(Lemma A.6),检验统计量的方差估计是通过在Φ(τ)中插值一个“常数-去掉时变”假设成立的,即当原假设是 β(τ)=β₀(常数)时,方差表达式是闭式的。若参数形式改为 β(τ)=β₀ + β₁τ(线性),方差将不再取该闭式,而需要重新推导(因为投影矩阵不同)。因此作者在文本中推广了原结论的范围,但核心证明仅覆盖了常数形式。这是一个需要读者注意的窄化点。

四、开放问题(扎根具体语句)

  1. 如何推广检验到一般参数形式(如线性趋势)?
    扎根点:Theorem 4 的证明中使用的方差公式依赖于原假设 β(·) ≡ β₀。若改为 β(τ)=β₀ + β₁τ,投影后的残差序列协方差结构会变化。作者在正文最后一段(Section 5)提到“我们的框架可以通过简单的修改处理线性趋势”,但并没有给出修改后的卡方统计量表达式。这是一个具体的、证明层面开放的问题。

  2. 如何将因子数 r 纳入估计而不丢失检验效率?
    扎根点:在模拟中,r 被固定为 1。但本文方法在原理上允许因子数 r 未知(β(τ) 的估计不依赖 r 的精确值),但构造假设检验需要准确估计 H(·),而 H(·) 的维度 r 恰好决定了检验统计量中自由度修正的尺度。作者在讨论部分提到“未来研究可以考虑使用BIC或交叉验证选择 r”——这留下了如何在选择 r 的同时保持检验尺寸严格的数学问题。

  3. 是否可以将 PMI 方法推广到协变量维度 d 随 N 增长(高维面板)?
    扎根点:证明中核心条件——H(τ) 满秩且其逆可用于构造 β(τ)——在高维 (d ≫ N) 下将完全失效(H(τ) 退化)。作者在结尾处提及“当 d 很小时,方法表现良好”,暗示了当前方法在高维情形下无法工作。这直接对应您在高维统计学方面的武器库,是一个自然的拓展方向。


Maintained by 陈星宇 · Homepage · Source on GitHub

评论