当前位置:首页>python>【手撕代码-05】Python+金融数据实践IV、DID、RD的方法与步骤

【手撕代码-05】Python+金融数据实践IV、DID、RD的方法与步骤

  • 2026-06-29 16:38:27
【手撕代码-05】Python+金融数据实践IV、DID、RD的方法与步骤
一  通用数据准备
由于真实金融面板数据涉及复杂的清洗过程,为了聚焦方法本身,我们首先构建一个模拟金融面板数据集,包含500家上市公司10年(2016-2025)的年度数据,该数据具备:
1)结果变量ROA(资产回报率)
2)处置变量treat(是否执行某项内部治理改革,后文在IV/DID/RD中分别按不同规则生成)
3)工具变量iv(IV方法需要)
4)协变量size(市值对数)、lev(杠杆率)、industry(行业分类)
5)时间year
import numpy as npimport pandas as pdimport statsmodels.api as smimport statsmodels.formula.api as smffrom linearmodels.iv import IV2SLSfrom scipy.stats import normimport matplotlib.pyplot as pltimport seaborn as snssns.set_style('whitegrid')# 固定种子,结果可复现np.random.seed(123)# =========== 生成面板数据参数 =============N = 500    # 公司数T = 10     # 年数years = list(range(20162026))  # 2016-2025# 公司特征(稳定)industries = ['Health''Finance''Tech''Energy''Retail']industry = np.random.choice(industries, N)size = np.random.lognormal(mean=22.5, sigma=1.5, size=N)   # 市值对数lev = np.clip(np.random.beta(25, size=N), 0.050.95)    # 杠杆率# =========== 构建面板数据 =============data_list = []for i in range(N):    for t_idx, year in enumerate(years):        # 基础ROA由公司固定成分+时间趋势+随机误差组成        base_roa = 0.05 + 0.02 * size[i]/size.mean() \                        - 0.10 * lev[i]\                        + 0.01 * np.random.randn()        # 加入时间趋势        time_effect = 0.002 * (year - years[0])        # 模拟处理变量(根据后续方法将有不同定义,此处先生成占位符)        treat_placeholder = 0   # 后续覆盖        # 工具变量        iv_val = 0              # 后续覆盖        data_list.append({            'firm_id': i,            'year': year,            'industry': industry[i],            'size': size[i],            'lev': lev[i],            'base_roa': base_roa + time_effect,            'treat': treat_placeholder,            'iv': iv_val,        })df_draw = pd.DataFrame(data_list)# 处理效应应预先定义,后面根据需要覆盖df_draw['ROA'] = df_draw['base_roa'] + 0.05 * df_draw['treat']
二  工具变量(IV)方法实践
2.1 问题设定
我们研究公司治理改革(treat)对ROA的因果效应。该改革要求对2016年前注册的公司要求必须执行。因此,可以使用“公司是否在2016年前注册”作为工具变量。
内生性来源:是否自愿执行改革与公司绩效可能受遗漏的“管理层能力”的影响,导致OLS有偏。工具变量应满足:
1)相关性:2016年前注册的公司强制执行改革
2)外生性:注册时间不会通过其他路径影响之后的ROA(与控制变量一起)
3)排除限制:注册时间仅通过改革影响ROA
2.2 数据生成(IV版)
# 为每个公司生成注册年份(2016年之前或之后)np.random.seed(123)df = df_draw.copy()# 工具变量:公司注册年<2016(1=老公司,可能被强制要求改革)registered_before_2016 = np.random.binomial(10.7, size=N)  # 70%上市公司在2016年之前注册iv = registered_before_2016# 处理变量:老公司执行改革概率高(0.8),新公司低(0.2)p_treat = np.where(registered_before_2016 == 10.80.2)treat = np.random.binomial(1, p_treat)# 将iv和treat扩展到面板(每个公司-年相同)df['iv'] = np.tile(iv, T)df['treat'] = np.tile(treat, T)# 生成ROA:处理效应为真 +0.05df['ROA'] = df['base_roa'] + 0.05 * df['treat']\            + 0.02 * np.random.randn(N*T)
此处工具变量在“公司”层面恒定,面板中年份变化不会影响。实际应用时工具应在个体-时点变动。
2.3 第一步:检验工具的相关性(第一阶段回归)
我们需要先手动检查第一阶段的F统计量(Stock-Yogo弱工具检验)
# 第一阶段: treat ~ iv + 控制变量first_stage = smf.ols(    'treat ~ iv + size + lev + C(industry) + C(year)'    data=df).fit()print("=== 第一阶段回归结果 ===")print(first_stage.summary().tables[1])   # 系数表# F统计量(排除iv的检查)f_test = first_stage.f_test('iv = 0')print(f"第一阶段F统计量: {f_test.fvalue:.3f}, p值: {f_test.pvalue:.5f}")
输出结果为:
=== 第一阶段回归结果 =============================================================================================                             coef    std err          t      P>|t|      [0.025      0.975]------------------------------------------------------------------------------------------Intercept                  0.2985      0.026     11.691      0.000       0.248       0.348C(industry)[T.Finance]     0.0045      0.017      0.263      0.793      -0.029       0.038C(industry)[T.Health]     -0.0064      0.017     -0.366      0.715      -0.041       0.028C(industry)[T.Retail]     -0.0256      0.018     -1.454      0.146      -0.060       0.009C(industry)[T.Tech]        0.0169      0.018      0.953      0.341      -0.018       0.052C(year)[T.2017]            0.0050      0.025      0.202      0.840      -0.044       0.054C(year)[T.2018]           -0.0016      0.025     -0.066      0.947      -0.050       0.047C(year)[T.2019]           -0.1266      0.025     -5.071      0.000      -0.176      -0.078C(year)[T.2020]           -0.0100      0.025     -0.400      0.689      -0.059       0.039C(year)[T.2021]            0.0100      0.025      0.402      0.688      -0.039       0.059C(year)[T.2022]           -0.0016      0.025     -0.066      0.947      -0.050       0.047C(year)[T.2023]           -0.2016      0.025     -8.091      0.000      -0.250      -0.153C(year)[T.2024]           -0.1100      0.025     -4.411      0.000      -0.159      -0.061C(year)[T.2025]           -0.1083      0.025     -4.352      0.000      -0.157      -0.060iv                         0.5836      0.012     46.828      0.000       0.559       0.608size                   -4.802e-14   1.71e-13     -0.281      0.779   -3.83e-13    2.87e-13lev                       -0.0472      0.035     -1.360      0.174      -0.115       0.021==========================================================================================第一阶段F统计量: 2192.905, p值: 0.00000
一般要求F>10,p<0.05以拒绝弱工具变量,上述结果明显满足。
2.4 第二步:两阶段最小二乘法(2SLS)
# 面板数据设定(需要entity-time索引)df = df.set_index(['firm_id''year'])# 定义内生变量、工具变量和外生变量formula = 'ROA ~ 1 + size + lev + C(industry) + C(year) + [treat ~ iv]'iv_model = IV2SLS.from_formula(formula, data=df)iv_result = iv_model.fit(cov_type='robust', debiased=True)  # 稳健标准误print("=== IV 第二阶段回归结果 ===")print(iv_result.summary)
输出结果为:
=== IV 第二阶段回归结果 ===                          IV-2SLS Estimation Summary                          ==============================================================================Dep. Variable:                    ROA   R-squared:                      0.8098Estimator:                    IV-2SLS   Adj. R-squared:                 0.8096No. Observations:                5000   F-statistic:                    2602.1Date:                Tue, Jun 16 2026   P-value (F-stat)                0.0000Time:                        15:10:05   Distribution:                F(7,4992)Cov. Estimator:                robust                                                                            Parameter Estimates                                    ==========================================================================================                        Parameter  Std. Err.     T-stat    P-value    Lower CI    Upper CI------------------------------------------------------------------------------------------Intercept                  0.0558     0.0012     44.863     0.0000      0.0534      0.0583size                    1.144e-12  9.945e-15     115.02     0.0000   1.124e-12   1.163e-12lev                       -0.0996     0.0020    -49.816     0.0000     -0.1035     -0.0957C(industry)[T.Finance]     0.0007     0.0010     0.7242     0.4690     -0.0012      0.0027C(industry)[T.Health]      0.0016     0.0010     1.6118     0.1071     -0.0004      0.0036C(industry)[T.Retail]      0.0011     0.0010     1.0329     0.3017     -0.0009      0.0031C(industry)[T.Tech]        0.0021     0.0010     2.1079     0.0351      0.0001      0.0041treat                      0.0533     0.0012     43.328     0.0000      0.0509      0.0557==========================================================================================Endogenous: treatInstruments: ivRobust Covariance (Heteroskedastic)Debiased: True
2.5 结果解读
treat的系数即为局部平均处理效应,估计值接近真实值0.05。
输出包含第一阶段的F统计量(弱工具检验)。
对比OLS的结果,可观察其偏差方向。
三  双重差分法(DID)方法实践
3.1 问题设定
假设在2025年开始,某项金融监管政策实施,该政策仅对金融行业产生影响,其他行业作为控制组。使用2023-2026年年度数据,观察政策前后ROA的变化。
共同趋势假设:如果没有政策,金融行业与其他行业的ROA变化趋势相同。
3.2 数据生成
np.random.seed(123)# 重新构建简洁的 DID 面板N_did = 200       # 公司数量(金融100,其他100)T_did = 4         # 年份数量(2023-2026)years_did = [2023, 2024, 2025, 2026]# 行业分组:前100家为金融,后100家为其他treat_group = np.array([1]*100 + [0]*100)firm_id = np.arange(N_did)# 生成面板did_data = []for i in firm_id:    for t in years_did:        # 基础ROA(公司固定效应+随机噪声)        firm_effect = np.random.normal(0, 0.02)        # 时间效应(共同)        time_effect = 0.001 * (t - years_did[0])        # 处理效应(只有处理组在2025及以后)        effect = 0.03 if (treat_group[i]==1 and t>=2025) else 0        roa = 0.06 + firm_effect + time_effect + effect + 0.01*np.random.randn()        did_data.append({            'firm_id': i,            'year': t,            'treat': treat_group[i],            'post': 1 if t>=2025 else 0,            'roa': roa        })df_did = pd.DataFrame(did_data)
3.3 平行趋势检验(图形展示)
DID的关键前提是政策前干预组与控制组的趋势平行,绘制平均ROA的时间序列。
# 计算各年各组的平均ROAmean_roa = df_did.groupby(['year''treat'])['roa'].mean().unstack()mean_roa.columns = ['控制组''处理组']# 设置绘图样式plt.style.use('seaborn-v0_8-white')# 设置中文字体和负号显示plt.rcParams["font.sans-serif"] = ["PingFang SC""Arial Unicode MS""Heiti TC"]plt.rcParams["axes.unicode_minus"] = False# 绘图plt.figure(figsize=(126))plt.plot(mean_roa.index, mean_roa['控制组'], 'b-o', label='控制组')plt.plot(mean_roa.index, mean_roa['处理组'], 'r-s', label='处理组')plt.axvline(x=2024.5, color='gray', linestyle='--', label='政策发生')plt.xlabel('年份')plt.ylabel('平均ROA')plt.title('平行趋势检验')plt.legend()plt.grid(True)plt.show()
输出图示为:
若政策发生前两组趋势平行,则图形中两条线斜率相近。
3.4 DID回归估计
方法一:普通DID交互项回归(不加固定效应)
# 交互项 = treat * postdid_ols = smf.ols('roa ~ treat * post', data=df_did).fit(    cov_type='cluster', cov_kwds={'groups': df_did['firm_id']}  )print(did_ols.summary().tables[1])
输出结果为:
==============================================================================                 coef    std err          z      P>|z|      [0.025      0.975]------------------------------------------------------------------------------Intercept      0.0611      0.002     39.813      0.000       0.058       0.064treat         -0.0007      0.002     -0.317      0.751      -0.005       0.004post           0.0016      0.002      0.728      0.466      -0.003       0.006treat:post     0.0294      0.003      9.296      0.000       0.023       0.036==============================================================================
方法二:加入公司固定效应和年份固定效应(更常见)
# 使用固定效应模型:roa ~ treat | firm_id + year# 注意:由于treat不随时间变化,公司固定效应会吸收它;post会被固定效应吸收。因此,只保留交互效应did_fe = smf.ols('roa ~ treat:post + C(firm_id) + C(year)', data=df_did).fit()
方法三:使用PanelOLS
from linearmodels.panel import PanelOLSdf_did = df_did.set_index(['firm_id''year'])mod = PanelOLS.from_formula(    'roa ~ treat:post + EntityEffects + TimeEffects',    data=df_did)fe_result = mod.fit(cov_type='robust')print(fe_result)
输出结果为:
PanelOLS Estimation Summary                           ================================================================================Dep. Variable:                    roa   R-squared:                        0.1305Estimator:                   PanelOLS   R-squared (Between):              0.2045No. Observations:                 800   R-squared (Within):               0.2489Date:                Wed, Jun 17 2026   R-squared (Overall):              0.2085Time:                        14:14:18   Log-likelihood                    2037.2Cov. Estimator:                Robust                                                                                   F-statistic:                      89.421Entities:                         200   P-value                           0.0000Avg Obs:                       4.0000   Distribution:                   F(1,596)Min Obs:                       4.0000                                           Max Obs:                       4.0000   F-statistic (robust):             89.421                                        P-value                           0.0000Time periods:                       4   Distribution:                   F(1,596)Avg Obs:                       200.00                                           Min Obs:                       200.00                                           Max Obs:                       200.00                                                                        Parameter Estimates                              ==============================================================================            Parameter  Std. Err.     T-stat    P-value    Lower CI    Upper CI------------------------------------------------------------------------------treat:post     0.0294     0.0031     9.4563     0.0000      0.0233      0.0355==============================================================================F-test for Poolability: 1.0683P-value: 0.2759Distribution: F(202,596)Included effects: Entity, Time
3.5 结果解读
1. treat:post的系数即为DID估计量,应接近0.03。
2. 交互项系数的显著性检验即为对政策效果的检验。
3. 若担心序列相关,可使用聚类稳健标准误。
四  断点回归(RD)
4.1 问题设定 
假设某项“中小企业扶持政策”,针对总资产50亿元的公司可享受优惠。我们想知道该政策是否提升了公司的营业利润率。
这里赋予一个模糊点设计:政策使低于50亿的公司利润率更高,但并非所有低于阈值的都享受(可能受申请等影响),在阈值处有一个“跳跃”。
参考变量:asset(总资产,亿元)
临界点:c = 50
结果变量:profit_margin(营业利润率,%)
为了演示我们使用精确断点(Sharp RD),即 treat = I(asset < 50)。
4.2 数据生成(RD版)
np.random.seed(123)n_rd = 1000# 参考变量:总资产(近似正态,均值为60,标准差20,但产生一些样本50附近)asset = np.random.normal(6020, n_rd)asset = np.clip(asset, 10150)   # 截断c = 50treat = (asset < c).astype(float)# 潜在结果函数(包含连续性假设)# 基线:利润与资产有线性关系(对数形式),加上误差def baseline_profit(asset):    return 5 + 0.03 * asset + 0.001 * (asset - c)**2# 处理效应:阈值处跳跃+1.5个百分点的利润率margin_0 = baseline_profit(asset) + np.random.randn(n_rd) * 2margin_1 = margin_0 + 1.5  # 1.5个百分点的处理效应# 观测结果margin = np.where(treat == 1, margin_1, margin_0)df_rd = pd.DataFrame({'asset': asset, 'treat': treat, 'margin': margin})
4.3 图形化分析:在断点处看跳跃
使用散点图与分箱均值拟合
# 绘制原始数据(少量样本点)及分箱均值plt.figure(figsize=(126))plt.scatter(df_rd['asset'], df_rd['margin'], alpha=0.3, s=5, label='原始数据')# 分箱均值bins = np.arange(101502)bin_means = df_rd.groupby(pd.cut(df_rd['asset'], bins), observed=False)['margin'].mean() # type: ignorebin_centers = (bins[:-1] + bins[1:]) / 2plt.plot(bin_centers, bin_means, 'r-', linewidth=2, label='分箱均值')plt.axvline(x=c, color='gray', linestyle='--', label='临界点(c=50)')plt.xlabel('总资产(亿元)')plt.ylabel('营业利润率(%)')plt.title('RD 图形分析: 资产与利润率的关系')plt.legend()plt.show()
图形输出为:
4.4 参数多项式回归
在断点附近使用局部多项式。以临界点为中心,选择带宽h(这里演示手动选择h=15)。
h = 15df_rd_local = df_rd[(df_rd['asset'] >= c - h) & (df_rd['asset'] <= c + h)].copy()df_rd_local['x'] = df_rd_local['asset'] - c  # 中心化# 二次多项式交互回归df_rd_local['treat'] = (df_rd_local['asset'] >= c).astype(float)  # 重新构造数据(避免混乱,直接使用新定义)treat_rd = (df_rd['asset'] >= c).astype(float)margin_rd = marginrd_data = pd.DataFrame({'asset': asset,                         'x': asset - c,                        'treat': treat_rd,                        'margin': margin_rd})# 在带宽h=20内局部回归h = 20rd_sub = rd_data[(rd_data['x'] >= -h) & (rd_data['x'] <= h)].copy()rd_sub['x2'] = rd_sub['x']**2# 模型: margin ~ treat + x + treat:x (交互允许斜率不同)model_rd = smf.ols('margin ~ treat * (x + x2)', data=rd_sub).fit()print(model_rd.summary().tables[1])
结果输出为:
==============================================================================                 coef    std err          t      P>|t|      [0.025      0.975]------------------------------------------------------------------------------Intercept      8.2978      0.327     25.347      0.000       7.655       8.941treat         -1.3849      0.441     -3.140      0.002      -2.251      -0.519x              0.1181      0.085      1.388      0.166      -0.049       0.285x2             0.0057      0.004      1.285      0.199      -0.003       0.014treat:x       -0.1630      0.110     -1.488      0.137      -0.378       0.052treat:x2      -0.0006      0.006     -0.115      0.908      -0.012       0.010==============================================================================
treat系数即为精确断点RD估计量在-1.5左右。
4.5 非参数局部线性回归(LLR)
from sklearn.linear_model import LinearRegressionh_manual = 10  # 选带宽left = rd_data[(rd_data['x'] > -h_manual) & (rd_data['x'] < 0)]right = rd_data[(rd_data['x'] >= 0) & (rd_data['x'] < h_manual)]# 左侧加权回归(矩形核 = 简单 OLS)left_reg = LinearRegression().fit(left[['x']], left['margin'])# 右侧加权回归right_reg = LinearRegression().fit(right[['x']], right['margin'])# 预测在 x=0 处的值left_pred = left_reg.intercept_ + left_reg.coef_[0]*0right_pred = right_reg.intercept_ + right_reg.coef_[0]*0rd_estimate = right_pred - left_predprint(f"LLR 估计 (h={h_manual}) : {rd_estimate:.4f} (理论: -1.5)")
结果输出为:
LLR 估计 (h=10) : -1.4183 (理论: -1.5)
4.6 结果解读
1. 参数和非参数估计量都应捕捉到断点处的跳跃(约-1.5,因为我们设定treat=1对应asset≥c且无正向效应,跳跃方向为负;若重新设计treat=1对应asset<c且正向效应,则符号为正)。
2. 带宽越小,偏差越小但方差越大;反之亦然。
3. 需要报告多个带宽下的估值结果以检验稳健性。

最新文章

随机文章

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