跳到内容
当前位置:首页>考研真题>数理统计复习:2-3章(中)

数理统计复习:2-3章(中)

  • 2026-10-28 10:27:26
数理统计复习:2-3章(中)

上篇梳理了一条主线:压缩、规律、估计、评价、最优、先验,六道关口;并走完了前两关的大部分:统计量,以及正态总体的抽样分布、极限分布和次序统计量。本篇先回到第一关的遗留问题:压缩到底丢没丢信息?由此引出充分统计量和完全统计量。然后进入第三关,用压缩物估参数:矩估计与最大似然估计。

1 充分统计量

上篇的压缩是直觉驱动的:、 看着就合理。现在回到第一关埋下的问题:什么样的压缩算「好」?课本 2.6 节的标准非常干脆,只有两条:

  • 简化的程度高;
  • 信息的损失少。

第 2 条做到极致,信息毫无损失,就叫充分统计量。这是 Fisher 在 1922 年提出的奠基性概念。

1.1 信息不损失是什么意思

先看动机例子(课本 2.6.1 节): i.i.d. ,
形式上,样本的分布与  的分布只差一个组合数:

两式相除,给定  时样本的条件概率是 ,与  无关。基于  推断 ,与基于全样本推断  效果相同,这就是「信息无损失」的操作性含义。

课本给出了一个直观的信息分解:

 充分,就是第二项为 0。「已知  后样本还剩的信息」翻译成统计语言,就是给定  时样本的条件分布。于是有课本定义 2.6.1:

定义 1.1(充分统计量)

设样本的分布族为 , 为统计量。若给定  时样本的条件分布与  无关,则称  为  的充分统计量。

由此得到充分性原则:若  充分,则任何推断都可以只通过  进行,不损失关于  的信息; 的两个样本点,应当给出相同的推断。

例 1.2(三个例子)

Bernoulli 样本的  充分:给定  时,样本的条件概率是 。

 样本的  充分:作上篇定理 2.2 的正交变换,给定  时的条件密度只剩 ,与  无关。注意这里又一次用到了正交变换。

 不充分:给定  后,其余样本的条件密度仍然含 。只用一个数据,其余全丢了,当然不充分。

定长的无损压缩是指数族的特权

充分统计量是「不丢信息的压缩」的严格定义。它有一个漂亮的注脚,Pitman–Koopman–Darmois 定理:在支撑集不依赖参数等正则条件下,只有指数族分布才有维数不随  增长的充分统计量。

对照着看:正态、二项、Poisson、Gamma 这些指数族,充分统计量永远是固定的几维(、),数据再多,摘要的大小也不变;而对一般的连续分布族,充分统计量是整个次序统计量,维数跟着  一起涨。想定长地无损压缩,是指数族的特权。 这也是线性模型、softmax、广义线性模型在机器学习里如此普遍的原因之一:训练只依赖几个可以累加的统计量,数据可以流式处理、分布式汇总。

一个类比(不是定理):Transformer 的 KV cache 随上下文长度线性增长,相当于把整段「样本」都留着;RNN、Mamba 这类模型把历史压进固定大小的状态,相当于定长摘要。定长摘要要做到无损,需要很特殊的结构,所以固定状态的模型在「逐字复述长上下文」这类任务上吃亏,是可以预料的。Jelassi 等人 2024 年的论文从理论和实验两方面比较了这一点:两层的 Transformer 能复制指数级长度的字符串,状态空间模型则受限于状态的大小。

1.2 定义不好用:因子分解定理

从定义验证充分性太麻烦(看上面正态例子的计算),需要一个代数判据,这就是课本定理 2.6.1:

定理 1.3(因子分解定理)

 为充分统计量的充要条件是:样本的概率函数可以分解为

其中  不依赖 , 是  的观察值。

这个定理由 Fisher 在 1920 年代提出,Halmos 与 Savage 在 1949 年给出了最一般的形式和严格的证明。它是「把定义换成可操作形式」的标准动作。直观地说, 只能通过  这个通道影响样本的分布, 是与  无关的背景。分解式把「信息只在  里」翻译成了「 只跟  一起出现」。

一个推论: 充分, 是一一变换,则  也充分。

  • (两个参数都未知):。把  展开,数据只经由 、 出现。

  • :,因为似然是 。

  • :。所有  时,样本密度是 。支撑集依赖 ,信息全在最大值上。

  • :,而  不充分。样本密度在  时为 1,否则为 0, 被两端同时夹住。

  • 指数族:。连乘把指数上的  加成 ,天然可以分解。

  • 任意连续总体:整个次序统计量 ,因为 ,取  即可。

1.3 压到不能再压:极小充分统计量

充分统计量往往有一堆:样本  本身永远充分; 充分,它的一切一一变换也充分。回到开头的第 1 条标准,越简化越好,于是有课本定义 2.6.2:

定义 1.4(极小充分统计量)

设  是充分统计量。若对任一充分统计量 ,都存在函数  使 ,则称  为极小充分统计量。

定义表面上绕,实质是「任何充分统计量都能再加工成 」。两步加工都不损失信息,所以  是充分统计量里的「最简公因子」:压到不能再压,仍然充分。

定理 1.5(极小充分的判据)

设  是充分统计量。若对任意两个样本点 、,

则  是极小充分统计量。

两个样本点在所有  下的相对可能性都一样,说明它们关于  的信息相同,可以合并成同一个  值。这是全章最实用的判据之一(课本定理 2.6.2)。

2 完全统计量与 Basu 定理

2.1 期望这个变换要一一对应

现在问一个看似技术、实则关键的问题。 可以看成一个变换:它把样本空间上的函数  变成参数空间上的函数 。我们希望这个变换一一对应,期望相同,函数就相同:

由线性,这只需要「期望恒为 0 的函数只能是 0」。于是有课本定义 2.7.1 与 2.7.2:

定义 2.1(完全统计量)

设  的分布族为 。若对  的任一函数 ,

则称  是完全的, 是完全统计量。若只要求上式对有界的  成立,称  为有界完全统计量。

这个名字来自正交函数论: 就是说  与整个密度族正交;完全性是说密度族足够丰富,没有非零函数能和它们全体正交。

它在统计上有什么用?先记住结论,下篇兑现:完全性保证,充分统计量的函数里,同一个参数的无偏估计只有一个。 没有它,从不同的无偏估计出发、对充分统计量取条件期望,可能得到好几个不同的答案,不知道谁是最优的。

反例最能说明问题。 不是完全族:密度是偶函数,取奇函数 ,有 ,但 。而统计量  诱导的分布族是完全的(由单边 Laplace 变换的唯一性)。原来的族不完全,诱导出的族却完全:完全性取决于统计量怎么构造。

再看几个例子:

  •  样本的  完全:, 可以化成关于  的多项式恒为零,于是系数全为零,。

  •  的  完全: 对一切  成立,对  求导,得  a.e.。

  •  的  充分但不完全:极差  的分布与  无关, 的期望恒为 0,却不是 0。

逐个证很累,于是有(课本定理 2.7.1):

定理 2.2(指数族的完全性)

设样本的分布是指数族的自然形式

且自然参数空间  作为  的子集有内点,则  是完全统计量。由因子分解,它也是充分的。

一条定理覆盖二项、Poisson、正态、Gamma……今后遇到指数族,「充分完全」四个字直接盖章。但「有内点」这个条件不可少。
比如 :两个自然参数  与  被一个  绑在一条曲线上,没有内点。这时 ,,于是  的期望恒为 0,却不恒为 0, 不完全。

2.2 Basu 定理:免费的独立性

定理 2.3(Basu 定理)

设  是有界完全的充分统计量,统计量  的分布与  无关(称  为辅助统计量),则  与  相互独立。

证明

任取事件 ,记 ,它与  无关。由  充分,条件概率  也与  无关,是一个真正的统计量,并且取值在  中,有界。又

由有界完全性, a.s.,即  落在  中的条件概率与  无关。 是任意的,所以  与  独立。

证明里用到的函数  恰好有界,这就是 Basu 定理只要求「有界完全」的原因.

独立性以前要靠算联合分布,上篇的  与  独立就是靠正交变换硬算出来的。Basu 定理给了一条零计算的路:只要一个量的分布不含 ,它就自动和充分完全统计量独立。这是完全性第一次显示威力(课本定理 2.7.2;指数族的版本是推论 2.7.1)。

例子

 样本中,极差  的分布与  无关(令  即可看出),而  充分完全,所以  与  独立,不用做任何积分。同理, 中  与  独立。

还可以回头看上篇定理 2.3:固定 , 是  的充分完全统计量,而  的分布与  无关,所以  与  独立。上篇用正交变换算了一整页的结论,在这里只要一行。

3 用压缩物估参数:点估计

前面备好了两样东西:压缩物(统计量)和压缩物的随机规律(抽样分布)。现在正式用它们估参数。

3.1 点估计问题

定义 3.1(点估计)

设  为样本, 是  的实函数。用统计量  作为  的估计,称为点估计; 叫估计量,它在具体样本  上的值  叫估计值。

为什么需要评价标准?课本例 3.1.1 一击命中:20 个击穿电压数据,均值  至少有三种合理的估计:样本均值 27.793,样本中位数 27.960,样本范围中心(最大值与最小值的平均)27.670。都对,都合理,听谁的?于是必须制定评价准则,这是下篇的内容。

3.2 矩估计:替换原理

最古老(K. Pearson,1894 年)也最直觉的方法是课本定义 3.2.1:

定义 3.2(矩估计)

若  是总体原点矩  与中心矩  的函数,把它们分别换成样本矩

得到的  称为  的矩估计量。这种方法叫矩法。

替换原理有三条理由叠在一起:样本矩是总体矩的镜像;样本  阶原点矩是总体  阶原点矩的无偏估计,;大数定律保证样本矩相合于总体矩。

优点:不需要知道总体分布的形式,简单易行,大样本性质好(相合、渐近正态)。
缺点:没有用上「分布形式已知」这条信息,小样本性质不突出,而且矩估计不唯一。比如 Poisson 分布的  既是均值又是方差,用一阶矩得 ,用二阶中心矩得 ,两个都是矩估计(课本例 3.2.4 的 Maxwell 分布也是如此)。同一个参数用哪阶矩,是一个选择,选错了要付出精度的代价。下篇会看到, 是  的最优无偏估计。

无偏性小结(课本 3.2.3 节,它也回答了样本方差为什么除以 ):样本原点矩  是  的无偏估计,对一切  成立;样本中心矩  在  时有偏:

 系统地偏低,乘上修正因子 ,得到的  才无偏。这就是样本方差定义里  的来历。  时没有这么干净的修正。另外,若  是原点矩的线性组合,矩估计仍然无偏;一般的  则不然,比如用  估计指数分布的 ,,有偏,但渐近无偏(课本例 3.2.9)。

PyTorch 和 NumPy 算的方差不一样

 与  的区别在代码里是实打实的坑。NumPy 的 var 默认除以 (ddof=0),PyTorch 的 torch.var 默认除以 (correction=1),同一组数,两个库算出的方差不一样。

批归一化(BatchNorm)更有意思,两个都用:训练时,用当前批次的有偏方差(除以 )做归一化;同时维护一个滑动平均的方差留给推理时用,进这个滑动平均的是无偏方差(除以 )。PyTorch 的文档明确写了这一点;原始论文(Ioffe 与 Szegedy,2015)的推理步骤里,也乘了  这个修正因子。批大小  很小时(比如 2),两者差一倍。

大样本性质(课本定理 3.2.1 至 3.2.3):

定理 3.3(矩估计的大样本性质)

若  连续,则矩估计  强相合。若  还有一阶连续偏导数,则

其中  是  的协方差阵,, 是  在  处的梯度。

证明的骨架:强相合用强大数律加连续映射定理,比如均匀分布  的矩估计 ,两行就证完;渐近正态用多元中心极限定理加 Delta 方法。

既相合又渐近正态的估计叫 CAN 估计(consistent asymptotically normal,课本定义 3.2.2)。它一次给出两样东西:大样本下估得准,而且知道误差分布的形状,能算区间、能做检验。这是后面区间估计和假设检验的入口。

矩匹配

矩法的现代版是矩匹配:不写似然,直接让模型生成的样本和真实样本在若干统计量上对齐。最大均值差异(MMD)把「若干个矩」推广到由核函数诱导的无穷多个特征上,GMMN、MMD-GAN 这类生成模型就用它当损失函数。下一节会看到,对指数族,最大似然估计本身也是一种矩匹配。

4 最大似然估计

矩法有一个明显的浪费:它只用了样本的几个矩,完全没用上「分布形式已知」这条信息。Fisher 的方法把全部信息都用上了。

4.1 似然:同一个式子,换个视角

定义 4.1(似然函数)

设  为样本的概率函数。固定 ,把  看成  的函数,称为似然函数,记为 ; 称为对数似然。

这个定义是理解 MLE 的枢纽,务必慢读。 是同一个表达式的两种读法:

 固定,看成  的函数,是概率函数。它问的是:观察到  的概率有多大?

 固定,看成  的函数,是似然函数。它问的是:哪个  最像是产出这个  的那一个?

概率对  求和为 1,似然对  的「和」没有任何约束。似然不是概率,它只是把概率的公式换个视角来用。

例 4.2(黑球还是红球)

罐中黑球与红球的比例是  或 ,即抽到黑球的概率  是  或 。有放回地抽 3 个,记黑球数为 ,两种  下的似然  为

 时取 , 时取 。让观测数据出现的概率最大的 ,就是「最像」的那一个(课本例 3.3.1)。

定义 4.3(最大似然估计)

若存在统计量 ,使得

则称  为  的*最大似然估计(MLE)。对  的函数 ,定义  为它的 MLE。

定义的后一句给出了不变性:先估参数再套函数,和直接估这个函数,答案一样。无偏估计就没有这个性质: 是  的无偏估计, 却不是  的无偏估计。这是 MLE 受欢迎的原因之一。

大模型预训练就是最大似然

语言模型把一段文本的概率按链式法则拆开:。预训练就是在海量文本上最大化这个似然。取对数、取负号、除以 token 数,就是熟悉的交叉熵损失

其他常见的损失也都是某个似然:线性回归的平方损失对应高斯噪声的似然,逻辑回归的交叉熵对应伯努利似然。写下的每一个 loss,追根溯源都是一条似然。

4.2 MLE 的求法与陷阱

求法一:解似然方程。 与  的极值点相同,而  是和不是积,好求导。令

 叫得分函数(score),是对数似然对参数的敏感度。

似然方程的解只是 MLE 的必要条件:只有当极大值在参数空间内部、且似然方程的解唯一时,解才必定是 MLE。验证这一步有时很烦,但指数族有一个(课本定理 3.3.1):

定理 4.4(指数族的似然方程)

设  是来自指数族  的样本。若方程组

在自然参数空间的内点集中有解,则解唯一,且就是 MLE。

方程的左边有一个漂亮的解释。把  对  求导,可得 。所以似然方程就是

让充分统计量的理论期望等于它的样本平均。对指数族,MLE 就是对充分统计量做矩匹配。

交叉熵的梯度为什么是「预测减标签」

分类分布是指数族。把  类的标签写成 one-hot 向量 ,

自然参数  就是神经网络输出的 logits,充分统计量是 one-hot 向量本身,归一化项是 log-sum-exp,而把自然参数映到均值  的那个函数,正是 softmax。

于是 #expfam-mle 的矩匹配直接翻译成:交叉熵损失  对 logits 的梯度是

即「模型预测的期望」减去「观测到的充分统计量」,训练到最优时两者在平均意义上相等。逻辑回归、softmax 回归、Poisson 回归这些广义线性模型,梯度都是这个形状。

求法二:回到定义。当  对  不可微、甚至不连续时,似然方程没有意义,只能回到定义直接比大小。课本例 3.3.5 是范本: 的似然在  时为 ,在  时为 0。作为  的函数,它在  处跳跃,之后单调下降。要使  最大, 要尽量小,又不能小于 ,所以

支撑集依赖参数时,信息全在「刚好罩住全部数据」的那个边界上,MLE 常常就是某个极值统计量。 则被两端夹住: 上似然处处为 1,于是任何 ()都是 MLE,MLE 有无穷多个。

MLE 例子清单(建议全部会推):

  • :。指数族,与矩估计相同。

  • :,。 有偏,;由不变性, 的 MLE 是 。

  • ,完整样本:,有偏,。

  • ,定数截尾( 个产品同时试验,到第  个失效时停止):,分母是总试验时间。

  • 多项分布:,频率就是 MLE。

  • ,:MLE 可能不存在。观测到  时, 单调下降,取不到最大值。

4.3 MLE 的性质

性质 1:不一定无偏。 正态的 、均匀分布的 ()都有偏。修正很容易(;),但修正之后就未必还是 MLE。无偏性和似然是两种世界观,这是下篇 C-R 下界与 UMVUE 之间张力的源头。

性质 2:MLE 是充分统计量的函数(课本定理 3.3.2)。

定理 4.5(MLE 与充分统计量)

若  是充分统计量,且  的 MLE 唯一存在,则 MLE 必是  的函数。

证明

由 #factor,,而  与  无关。所以最大化  等价于最大化 ,最大值点只依赖 。

这是两条主线的闭环:最大化的过程中, 只是常数背景,MLE 只能通过  依赖数据。由此还可以推出(课本注 3.3.5):若 MLE 本身也是充分统计量,它就是极小充分的。前面学的充分性,在这里第一次变现。

性质 3:可能不存在,见上面的例子清单。

性质 4:相合性。 这比矩估计难得多。1946 年 Cramér 证明了似然方程有相合的根,但这个根不一定是 MLE;1949 年 Wald 首次证明了 MLE 本身的强相合性,条件繁重;而且存在 MLE 不相合的反例(课本第 3 章习题 26)。课本给出了一个干净的版本(课本定理 3.3.3):

定理 4.6(似然方程的根的相合性)

设  为开区间,分布族可识别,,且  对  的一阶导数存在且连续。则以概率 1,当  充分大时似然方程有解,并且存在强相合的解序列 。

可识别是说  时  与  不是同一个分布:不同的参数给出不同的分布,才谈得上把参数估出来。

神经网络的参数不可识别

神经网络天生不可识别。把一个隐藏层的神经元换个顺序,连同前后的权重一起换,网络算的函数完全不变;ReLU 网络里,把某个神经元的输入权重和偏置乘以 、输出权重除以 ,函数也不变。同一个函数对应着无数组参数,所以「参数估计是否相合」在网络上没有意义,能问的只是函数层面的收敛。这也是为什么两次独立训练的模型,权重看起来毫无关系,表现却差不多。

性质 5:渐近正态(课本定理 3.3.4)。

定理 4.7(MLE 的渐近正态性)

在一定的正则条件下,似然方程有一个根  满足

其中  是参数的真值,

称为 Fisher 信息量。

这是全书信息量最大的结论之一,三处伏笔在这里收束:

  • MLE 弱相合,大样本下估得准;
  • MLE 的渐近方差是 。先记住这个数:下篇的 C-R 不等式将证明,任何无偏估计的方差都不低于它,而 MLE 渐近地达到了它;

 还会以「预条件子」的身份,回到下一小节的数值算法里。

例

正态  中 ,,所以 、 的渐近分布分别是  与 。

4.4 没有公式解时:Newton–Raphson 与 EM

实际模型的似然方程常常没有闭式解,只能数值迭代。课本 3.7 节给了两个标准算法,它们在机器学习里是日常。

Newton–Raphson:在当前点作二阶泰勒展开,令梯度为零:

其中  是得分, 是 Hessian 阵。它收敛快(二阶收敛),但每步都要算出并求逆 Hessian( 个参数时,计算约 ,求逆约 );对非凸的似然,它可能收敛到局部极大,而且对初值敏感。

Fisher Scoring: 的期望是 ,于是把 Hessian 换成 Fisher 信息阵:

信息阵正定,数值上通常更稳定。

EM 算法是含隐变量的模型求 MLE 的标配。完全数据  的对数似然  容易最大化,但我们只观测到了 。于是迭代两步:

  • E 步:计算 ,即对缺失的  取条件期望,把缺的补上;
  • M 步:,在补全了的数据上解 MLE。

课本用 Jensen 不等式和分解式  证明了每次迭代后,观测数据的对数似然不会下降,并用椒花蛾的基因频率(6 种基因型只能观测到 3 种表型)完整演示了一遍。

机器学习优化

得分函数与扩散模型。统计里的得分是 ,对参数求导;扩散模型里的 score 是 ,对样本点求导。名字同源,都是「对数密度的梯度」,只是求导的对象不同。score-based 生成模型学的就是后者:知道了每一点上对数密度往哪个方向升,就能从噪声一步步走回数据。

Fisher Scoring 与自然梯度。用 Fisher 信息阵做预条件,正是 Amari 的自然梯度法的思想;K-FAC 等二阶优化方法把神经网络的 Fisher 信息阵近似成分块的 Kronecker 积,让它算得起。

Newton–Raphson 与 IRLS。广义线性模型的迭代重加权最小二乘(IRLS)就是 Fisher Scoring;对正则联系函数(比如逻辑回归),它和 Newton 法完全相同。

EM 与 k-means、VAE。高斯混合模型的 EM 是 k-means 的软分配版本;VAE 最大化的证据下界(ELBO)与 EM 的  函数一脉相承,区别在于 VAE 用一个神经网络去近似 E 步里的后验分布。

5 小结

这一篇做了两件事。第一件是给「压缩」定标准:充分统计量是不丢信息的压缩,因子分解定理让它可以一眼认出,极小充分统计量压到不能再压,完全性则让「期望」这个变换一一对应,并顺手送了一个 Basu 定理。第二件是用压缩物估参数:矩估计靠替换原理,MLE 靠「最像」原理;指数族把两者统一了起来,MLE 就是对充分统计量的矩匹配。

三种估计摆在一起,自然要问:哪个更好?有没有最好的?下篇讲估计的评价准则、UMVUE 与 C-R 下界,最后换一种哲学,讲 Bayes 估计。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-10-29 03:09:16 HTTP/1.1 GET : http://www.sjds.net/a/528773.html
  2. 运行时间 : 0.081058s [ 吞吐率:12.34req/s ] 内存消耗:4,681.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e43dcfa3f966e78805405b1d2ef45ba2
  1. /www/wwwroot/www.sjds.net/public/index.php ( 0.79 KB )
  2. /www/wwwroot/www.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/www.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/www.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/www.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/www.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/www.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/www.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/www.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/www.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/www.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/www.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/www.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/www.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/www.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/www.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/www.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/www.sjds.net/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/www.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/www.sjds.net/app/common.php ( 0.03 KB )
  27. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/www.sjds.net/config/app.php ( 0.95 KB )
  30. /www/wwwroot/www.sjds.net/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/www.sjds.net/config/console.php ( 0.23 KB )
  32. /www/wwwroot/www.sjds.net/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/www.sjds.net/config/database.php ( 2.48 KB )
  34. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/www.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/www.sjds.net/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/www.sjds.net/config/log.php ( 1.35 KB )
  38. /www/wwwroot/www.sjds.net/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/www.sjds.net/config/route.php ( 1.89 KB )
  40. /www/wwwroot/www.sjds.net/config/session.php ( 0.57 KB )
  41. /www/wwwroot/www.sjds.net/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/www.sjds.net/config/view.php ( 0.82 KB )
  43. /www/wwwroot/www.sjds.net/app/event.php ( 0.25 KB )
  44. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/www.sjds.net/app/service.php ( 0.13 KB )
  46. /www/wwwroot/www.sjds.net/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/www.sjds.net/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/www.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/www.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/www.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/www.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/www.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/www.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/www.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/www.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/www.sjds.net/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/www.sjds.net/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/www.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/www.sjds.net/route/app.php ( 1.72 KB )
  100. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/www.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /www/wwwroot/www.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/www.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/www.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/www.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/www.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/www.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/www.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/www.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/www.sjds.net/runtime/temp/022a5b1eae5a9e3c31e54f699d8ae600.php ( 8.05 KB )
  140. /www/wwwroot/www.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000611s ] mysql:host=172.18.0.4;port=3306;dbname=www_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000922s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000430s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000355s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000519s ]
  6. SELECT * FROM `set` [ RunTime:0.000267s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000658s ]
  8. SELECT * FROM `article` WHERE `id` = 528773 LIMIT 1 [ RunTime:0.000440s ]
  9. UPDATE `article` SET `lasttime` = 1793214556 WHERE `id` = 528773 [ RunTime:0.001757s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000299s ]
  11. SELECT * FROM `article` WHERE `id` < 528773 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000440s ]
  12. SELECT * FROM `article` WHERE `id` > 528773 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000343s ]
  13. SELECT * FROM `article` WHERE `id` < 528773 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000613s ]
  14. SELECT * FROM `article` WHERE `id` < 528773 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000538s ]
  15. SELECT * FROM `article` WHERE `id` < 528773 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000769s ]
0.094215s