当前位置: 首页 > news >正文

双重差分模型学习笔记(理论)

【DID最全总结】90分钟带你速通双重差分!_哔哩哔哩_bilibili

 

一、DID的基本原理

 (一) 单重差分

1. Cross-Section Comparison 截面数据

只有某个时间点事件发生后的数据

D=1 事件发生后

D=0 事件发生前

2. Befor-After Vomparison 时间序列数据

有政策发生前后的数据

(二)双重差分(DID)

AI:帮我解释这两个公式的具体含义,并给出每个公式的字母该如何拼读

 1. 回归模型公式

 

2. 平均处理效应(ATE)公式

AI:公式代码提示语  帮我把上面的ATE公式转换为latex格式

 \delta_3 = \left[ \mathbb{E}(Y_t + \Delta \mid X_1, \ldots, X_k, D = 1) - \mathbb{E}(Y_{t'} + \Delta \mid X_1, \ldots, X_k, D = 1) \right] - \left[ \mathbb{E}(Y_t + \Delta \mid X_1, \ldots, X_k, D = 0) - \mathbb{E}(Y_{t'} + \Delta \mid X_1, \ldots, X_k, D = 0) \right]

 

含义
这是双重差分法(DID)平均处理效应(ATE)的定义公式:

  • δ3​:政策干预的净效应,即处理组与对照组在政策前后的差异之差。

  • :处理组在时间 t(政策后)的期望结果(控制变量为X1​,…,Xk​)。

  • :处理组在时间 t′(政策前)的期望结果。

  • 对照组(D=0)的期望差异:反映时间趋势或其他混杂因素。

  • 核心逻辑:通过比较处理组与对照组在政策前后的变化差异,剥离政策以外的干扰因素,得到因果效应。

 

关键总结
  1. 回归模型:通过控制变量、时间与处理组交互项,量化政策效应(δ3​ 是核心参数)。

  2. 平均处理效应:利用双重差分逻辑,分离政策干预的因果影响,公式体现“差异中的差异”。

  3. 应用场景:适用于自然实验或准实验设计(如Card和Kruger的最低工资研究)。

AI提示语:Δ∥X这个是什么意思,帮我用简单易懂的案例帮我进行具体解释,我不懂什么是期望,请帮我一起详细解释

1. 符号拆解
  • Δ(Delta):通常表示差异或变化量,例如工资变化、就业率变化等。

  • (竖线):在统计学中表示条件,即“在给定某个条件下的结果”。

  • X:代表一个或多个控制变量(如教育水平、年龄、地区等)。

组合含义
“Δ∥X” 表示 “在控制变量X的条件下,变化量Δ的期望值”。例如:

  • Δ = 工资变化X = 教育水平

  • Δ∥X 可理解为:“在不同教育水平下,工资变化的平均差异”。

2. 什么是期望(Expectation)?

定义:期望是概率论中的概念,表示随机变量在长期重复实验中的平均值。简单来说,就是“平均结果”。

案例
假设你掷一个公平的六面骰子,可能的结果是1到6。

  • 期望值计算: 

  • 解释:如果无限次掷骰子,平均结果会趋近于3.5。

3. 结合案例理解“Δ∥X”

场景:研究“职业培训对工资的影响”,控制变量X为“教育水平”。

  • Δ:参加培训后的工资变化(如月薪增加量)。

  • X:教育水平分为“高中以下”和“大学以上”。

问题:在不同教育水平下,职业培训带来的工资增长是否不同?

  1. 分组

    • 组1(X=高中以下):计算该组参与培训后的平均工资变化(Δ)。

    • 组2(X=大学以上):计算该组参与培训后的平均工资变化(Δ)。

  2. 结果示例

结论

  • 在控制教育水平后,职业培训对“大学以上”人群的工资提升更大。

  • 这体现了 “Δ∥X” 的实际意义:不同条件下(如教育水平)的平均处理效应。

 

4. 为什么需要条件期望(Δ∥X)?
  • 避免混淆因素:例如,如果不控制教育水平,可能会错误归因工资变化(高教育人群本身工资更高)。

  • 精准分析:分离出政策或干预(如培训)的真实影响,排除其他变量干扰。

总结
  • Δ∥X = “在考虑变量X的条件下,变化量Δ的平均值”。

  • 期望 = 长期平均结果,用于量化不确定性中的规律性。

  • 应用场景:经济学、医学试验、政策评估中,分析不同群体对同一干预的差异化反应。

平行趋势检验

假设实验组和对照组在政策实行前的关系是平行的。

 

 

 

 

AI提示词:帮我解释这个平行趋势检验的公式,采用具体的案例帮助我理解这个公式。并解释什么是平行趋势检验,为什么要进行平行趋势检验

帮我把平行趋势检验的公式转为latex格式,并解释每个字母的含义,并给出每个字母的拼读

 

1. 平行趋势检验的公式解析

用户提供的公式可拆解为以下两步:
第一行

  • 含义:计算实验组(D=1)在政策后时间点 t 和政策前时间点t′ 的结果差异(如就业率变化)。

第二行

 

  • 含义:将处理组在政策前后的差异与对照组(D=0)在政策前后的差异进行比较。

  • 核心逻辑:若两组在政策前的趋势平行,则政策后的差异可归因于政策本身。

2. 什么是平行趋势检验?

定义
平行趋势检验是双重差分法(DID)的核心假设,要求处理组和对照组在政策干预前的结果变量变化趋势一致

  • 目的:确保政策效应估计不受两组固有趋势差异的影响。

检验方法

  • 使用政策前的多期数据,比较两组的趋势是否平行。

  • 若政策前趋势显著不同,则DID估计可能不可靠。

3. 案例:最低工资政策对就业的影响(Card & Krueger, 1994)

背景

  • 新泽西州(处理组)于1992年提高最低工资,宾夕法尼亚州东部(对照组)未调整。

  • 研究问题:最低工资上涨是否导致就业下降?

平行趋势检验步骤

  1. 选择政策前的时间段:例如1990年和1991年(政策实施前)。

  2. 比较两组的就业趋势

    • 计算新泽西州和宾夕法尼亚州在1990-1991年的就业率年均变化。

    • 若两组趋势一致(如均增长2%),则平行趋势假设成立。

  3. 若趋势不一致

    • 例如新泽西州年均增长3%,宾州增长1%,则需调整模型或选择其他对照组。

4. 为什么要进行平行趋势检验?
  • 排除混杂因素

    • 如果处理组和对照组在政策前趋势不同(如经济增速差异),政策后的结果差异可能源于原有趋势,而非政策本身。

  • 确保因果推断的可靠性

    • 只有满足平行趋势假设,DID估计的 δ3​ 才能被解释为政策的净效应。

5. 公式在案例中的具体应用

假设:

  • Yt​ 表示1992年(政策后)的就业率,Yt′​ 表示1991年(政策前)的就业率。

  • Δ=1 年(时间跨度)。

计算处理组的就业变化

计算对照组的就业变化

平行趋势检验公式

6. 总结
  • 平行趋势检验是DID方法的核心前提,确保政策效应估计的准确性。

  • 案例应用:通过比较政策前两组的趋势,验证研究设计的合理性。

  • 重要性:避免将固有趋势差异错误归因于政策干预。

最终结论
在Card和Kruger的研究中,若新泽西州与宾夕法尼亚州在最低工资调整前的就业趋势平行,则后续DID分析结果(最低工资对就业无显著负面影响)具有可信度。

AI提示词:平行趋势检验是不是应该找政策前的时间点进行分析,你上面举得例子“5. 公式在案例中的具体应用 假设: Yt​ 表示1992年(政策后)的就业率,Yt′​ 表示1991年(政策前)的就业率。”我感觉不太对

1. 用户指正的正确性

您完全正确!平行趋势检验需要基于政策前的多个时间点进行分析,仅比较政策前的一个时间点(如1991年)和政策后的时间点(如1992年)不足以验证趋势是否平行。之前的举例存在简化不当,感谢您的指正!


2. 平行趋势检验的核心要求
  • 政策前的多期数据:需要至少两个政策前的时间点(如1990年、1991年),观察处理组和对照组在这些时间点的趋势是否一致。

  • 逻辑验证:若两组在政策前的趋势平行,则政策后的差异更有可能是政策效应,而非固有趋势差异。


3. 修正后的案例:最低工资政策对就业的影响

背景

  • 新泽西州(处理组)于1992年提高最低工资,宾夕法尼亚州(对照组)未调整。

  • 数据时间点:1989年、1990年、1991年(政策前),1992年(政策后)。

平行趋势检验步骤

  1. 计算政策前的年均就业增长率

    • 新泽西州

      • 1989-1990年增长率:2%

      • 1990-1991年增长率:2.5%

    • 宾夕法尼亚州

      • 1989-1990年增长率:1.8%

      • 1990-1991年增长率:2.3%

  2. 检验趋势是否平行

    • 两组在政策前的增长率和变化方向(均稳步增长)接近,说明趋势平行。

    • 若新泽西州政策前增长率为5%,宾州为1%,则趋势不平行,DID结果不可信。

  3. 公式修正
    平行趋势检验的公式应包含政策前的多期数据,例如:

    检验统计量=(处理组政策前趋势)−(对照组政策前趋势)检验统计量=(处理组政策前趋势)−(对照组政策前趋势)
    • 若统计量接近0,则通过检验。


4. 原回答的问题与修正说明
  • 原错误:仅用1991年(政策前)和1992年(政策后)比较,无法捕捉趋势变化。

  • 正确做法:需使用政策前的多期数据(如1989-1991年),验证趋势是否一致。


5. 为什么必须用政策前的多期数据?
  • 单一时点无法反映趋势:例如,若1991年处理组和对照组就业率恰好相同,但1990年差异巨大,则单一时点的比较会掩盖真实趋势。

  • 避免偶然性:多期数据减少随机波动的影响,提高检验的可靠性。


6. 总结与正确案例示范
  • 平行趋势检验的正确逻辑

    1. 使用政策前的多期数据,分别计算处理组和对照组的趋势(如年均增长率)。

    2. 比较两组趋势是否一致(如统计检验或图形展示)。

    3. 若趋势平行,则DID结果可信;否则需调整模型或更换对照组。

  • 修正后的案例结论

    • 新泽西州和宾夕法尼亚州在1989-1991年就业增长率接近(2% vs 1.8%),满足平行趋势假设。

    • 因此,1992年最低工资政策后的就业差异可归因于政策效应。

最低工资对就业的影响

 

DID 开山之作:Card and Kruger (1994, AER)

  • 研究问题:最低工资对就业的影响

  • 自然实验:1992年4月1日,新泽西州的最低工资从每小时4.25美元上涨至5.05美元,而其他州未作调整。

  • 研究设计:比较新泽西州(处理组)和宾夕法尼亚州东部(对照组)的快餐行业在最低工资上涨前后的就业情况。

  • 数据收集:在新泽西州最低工资调整前后,研究者分别调查了该州和宾夕法尼亚州各约400家快餐店。

  • 研究结论:分析最低工资上涨对就业的具体影响。

    关键术语解释与背景补充:

  • DID(双重差分法)

    • 一种准实验方法,通过比较处理组与对照组在政策实施前后的差异,剥离政策净效应。

    • Card和Kruger的研究是该方法在实证经济学中的里程碑应用。

  • 自然实验(Natural Experiment)

    • 利用现实中的政策变化(如新泽西州最低工资调整)作为“实验条件”,而非人为干预。

  • 研究意义

    • 挑战传统经济学观点(即“最低工资上涨会导致失业”),发现新泽西州快餐业就业未显著下降,甚至部分岗位增加。

    • 引发对劳动力市场弹性和企业应对策略(如价格调整、效率提升)的深入讨论。

  • 局限性

    • 样本局限于快餐行业,结论是否适用于其他低薪行业仍需验证。

    • 短期效应显著,但长期影响需进一步跟踪。

找对照组要找和自己经济水平基本一致的组,其他各方面都一致的

 

最低工资调整之前,新泽西州和宾夕法尼亚洲快餐店工资的分布状况

最低工资调整之后 

 

 

  • 交互项 δ 的意义
    若 δ>0,表示政策(最低工资上涨)对处理组(NJ)的就业有正向影响;
    若 δ<0,则表明政策可能抑制就业。

  • DID逻辑:通过比较处理组与对照组在政策前后的差异,剥离其他混杂因素,单独识别政策效应。

 政策前的差值为-2.89

政策后的差值为-0.14

政策后-政策前=2.76(DID值)

 二、固定效应DID

 AI提示词:固定效应双重差分模型的含义是什么?这个公式的含义是什么,里面的每个字母该如何解释和发音

固定效应模型在面板数据中用于控制不随时间变化的个体异质性和不随个体变化的时间效应。双重差分法则是通过比较处理组和对照组在政策前后的变化来估计处理效应。结合两者,固定效应双重差分模型可以更有效地控制潜在的混杂因素,提高估计的准确性。

1. 固定效应双重差分模型(FE-DID)的含义

固定效应双重差分模型是双重差分法(DID)面板数据固定效应模型的结合,用于在控制个体和时间异质性的基础上,估计政策或干预的因果效应。

  • 核心目标:通过控制不随时间变化的个体特征(如地区差异)和不随个体变化的时间特征(如宏观经济波动),剥离政策处理的净效应。

  • 优势

    • 解决传统DID可能忽略的个体或时间层面的混杂因素。

    • 提高估计的准确性和稳健性。

2. 公式修正与符号解释

用户提供的公式可能存在排版误差,修正后的标准形式如下:

3. 公式解读与案例

场景:研究新泽西州(处理组)提高最低工资对快餐行业就业的影响。

  • 数据:面板数据(多个快餐店 i 在政策前后多个年份 t 的就业数据)。

  • 变量定义

    • Di​=1:新泽西州的快餐店;Di​=0:宾夕法尼亚州的快餐店(对照组)。

    • Tt​=1:1992年及以后(政策实施后);Tt​=0:1992年之前。

模型作用

  1. μi​:控制每家快餐店的固有特征(如品牌、初始规模)。

  2. γt​:控制所有快餐店共同面临的时间趋势(如全国经济衰退)。

  3. :反映最低工资上涨对就业的净效应(剥离个体和时间的干扰)。

4. 为何需要固定效应?
  • 个体固定效应(μi​)
    若新泽西州的快餐店本身规模较大(与宾州不同),直接比较就业变化会产生偏差。固定效应控制这种个体差异,确保结果反映政策影响。

  • 时间固定效应(γt​)
    若所有快餐店在1992年因经济繁荣就业上升,固定效应剥离这一时间趋势,避免将其误归为政策效应。

5. 总结
  • 模型公式

  • 核心意义:在控制个体和时间异质性的基础上,通过交互项 �β 识别政策的因果效应。

  • 应用场景:适用于面板数据下的政策评估(如最低工资、税收改革、教育政策等)。

最终结论:固定效应双重差分模型通过同时控制个体和时间的固定效应,显著提升了传统DID方法的可靠性,是实证经济学中政策分析的黄金标准之一。

提示词:什么是固定效应,用简单的案例解释?

1. 什么是固定效应?

固定效应(Fixed Effects)是统计学中用于控制不随时间(或个体)变化的特征的一种方法。它的核心思想是:

“将那些不变的干扰因素固定住,只关注你想要研究的变量如何影响结果。”

例如,在研究政策效果时,不同地区可能有不同的文化、资源或历史背景,这些因素可能长期不变,但会影响结果。固定效应模型通过“吸收”这些不变因素的干扰,让分析更聚焦于政策本身的影响。

2. 一个生活化案例:教学方法对学生成绩的影响

场景

  • 某学校在A班使用新教学方法,B班沿用传统方法。

  • 学生个体差异:有些学生天生学习能力强,有些则较弱。

问题
如果直接比较A班和B班的平均成绩,结果可能不可靠,因为:

  1. A班可能有更多高能力学生(个体差异干扰)。

  2. 不同年份的考试难度可能不同(时间差异干扰)。

固定效应的作用

  1. 控制个体差异:为每个学生建立一个“固定标签”,消除他们固有能力的干扰。

  2. 控制时间差异:为每一年考试建立一个“固定标签”,消除试题难度波动的干扰。

公式简化

  • 通过固定学生个体和年份,β 能更准确地反映教学方法的效果。


3. 固定效应的核心逻辑
  • 固定个体效应

    • 假设每个学生有一个“隐藏分数”(如天生能力),固定效应模型会将其从结果中剔除。

    • 案例结果:即使A班学生普遍更强,模型也能排除这种优势,单独看教学方法是否有用。

  • 固定时间效应

    • 假设某年考试特别难,所有学生成绩都下降,固定效应模型会剔除这一全局影响。


4. 为什么需要固定效应?
  • 避免虚假关联
    例如,如果A班成绩好是因为学生能力强(而非教学方法好),固定效应能避免这种误判。

  • 聚焦关键变量
    在复杂数据中(如不同地区、不同年份),固定效应帮助“净化”数据,让分析更干净。


5. 总结

固定效应就像“控制变量”的升级版

  • 它通过数学方法,自动排除所有不随时间变化(如学生天赋)或不随个体变化(如年度事件)的干扰因素。

  • 适用场景:面板数据(既有个体差异,又有时间变化),如政策评估、教育实验、经济分析等。

一句话理解
固定效应是“让比较更公平”的工具——把学生天赋、地区差异等“不公平因素”固定住,只看你关心的变量(如教学方法)如何影响结果。

 

三、交错双重差分(Staggered DID)

 

相关文章:

双重差分模型学习笔记(理论)

【DID最全总结】90分钟带你速通双重差分&#xff01;_哔哩哔哩_bilibili 一、DID的基本原理 &#xff08;一&#xff09; 单重差分 1. Cross-Section Comparison 截面数据 只有某个时间点事件发生后的数据 D1 事件发生后 D0 事件发生前 2. Befor-After Vomparison 时间序列…...

企业级私有化部署,内部聊天软件

如何在激烈的市场竞争中脱颖而出&#xff0c;提升工作效率、降低运营成本&#xff0c;同时保障信息安全&#xff0c;成为众多企业管理者亟待解决的问题。而BeeWorks 企业级私有化部署的内部聊天软件&#xff0c;无疑是为这一难题提供了一把金钥匙。 BeeWorks覆盖即时通讯&#…...

HCIA-Datacom 高阶:VLAN、VLANIF 与静态路由综合实验

拓扑图解读 从拓扑图中可以看到&#xff0c;存在三层交换机 LSW3、普通交换机 LSW4、路由器 R2 以及 PC1 - PC4。LSW4 连接了三个不同 VLAN 的 PC&#xff08;PC1 属于 VLAN 10、PC2 属于 VLAN 20、PC3 属于 VLAN 30 &#xff09;&#xff0c;并通过 Ethernet 0/0/1 端口以 tr…...

Android ndk 编译opencv后部分接口std::__ndk1与项目std::__1不匹配

1、opencv-4.11预编译命令&#xff08;在opencv4.5.0之后兼容免费features2d做特征匹配&#xff09;&#xff0c;NDK版本选用的android-ndk-r23c-linux.zip cmake -G Ninja \ -DCMAKE_TOOLCHAIN_FILE/home/who/Downloads/NDK/android-ndk-r23c/build/cmake/android.toolchain.…...

SQL命令一:SQL 基础操作与建表约束

目录 引言 一、SQL 基础命令 &#xff08;一&#xff09;数据库相关操作 &#xff08;二&#xff09;表格相关操作 &#xff08;三&#xff09;MySQL 常用数据类型 二、增删改查&#xff08;CRUD&#xff09;操作 &#xff08;一&#xff09;增加数据 &#xff08;二&a…...

颜色分类,不靠“调色盘”:双指针 VS 计数排序的正面PK

颜色分类&#xff0c;不靠“调色盘”&#xff1a;双指针 VS 计数排序的正面PK 在算法圈混得久了&#xff0c;总有一些题目是面试官的心头好&#xff0c;刷题人绕不过的“鬼门关”。“颜色分类”&#xff08;LeetCode 75&#xff09;就是其中之一&#xff0c;看似小儿科&#xf…...

Shopify网上商店GraphQL Admin接口查询实战

目录 一、Shopify网上商店 二、个人商店配置接口权限 三、PostMan调用接口测试 四、通过Java服务调用接口 一、Shopify网上商店 Shopify是由Tobi Ltke创办的加拿大电子商务软件开发商&#xff0c;总部位于加拿大首都渥太华&#xff0c;已从一家在咖啡店办公的 5人团队&…...

Laravel基础

Laravel 基础 01.Laravel入门和安装 Composer安装Laravel步骤 要使用 Composer 安装 Laravel&#xff0c;请按照以下步骤操作&#xff1a; 确保已经安装了 Composer。如果还没有安装&#xff0c;请访问 https://getcomposer.org/download/ 下载并安装。 打开命令行或终端。…...

【Leetcode 每日一题 - 补卡】2302. 统计得分小于 K 的子数组数目

问题背景 一个数组的 分数 定义为数组之和 乘以 数组的长度。 比方说&#xff0c; [ 1 , 2 , 3 , 4 , 5 ] [1, 2, 3, 4, 5] [1,2,3,4,5] 的分数为 ( 1 2 3 4 5 ) 5 75 (1 2 3 4 5) \times 5 75 (12345)575。 给你一个正整数数组 n u m s nums nums 和一个整数 k…...

力扣——206.反转链表倒序输出链表

206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff08;迭代&#xff09; 设三个指针&#xff0c;前后两个指针都为空&#xff0c;当前指针为输入的头指针 开始循环——判断条件为当前节点不为空 先给下一个节点赋值为——当前节点的下一个 改变当前节点的…...

Arthas在Java程序监控和分析中的应用

Arthas在Java程序监控和分析中的应用 在互联网大厂Java求职者的面试中&#xff0c;经常会被问到关于使用Arthas来监控和分析Java程序的相关问题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官&#xff1a;马架构&#xff0c;欢迎来到我们公司的面…...

第13讲:图形尺寸与分辨率设置——适配论文版面,打造专业图稿!

目录 📌 为什么这一讲重要? 🎯 一、先认识几个关键词 ✍️ 二、ggsave() 是导出图的标准方法 📐 三、尺寸设置技巧:对齐目标期刊 🔍 找到目标期刊的图形栏宽 📦 四、多个图组合导出(与 patchwork 搭配) 🧪 五、使用 Cairo / ragg 导出高质量图 🎁 六…...

Docker与Vmware网络模式的对别

前言 在使用了很久的VMware和Docker后&#xff0c;分别独立配置过他们的网络&#xff0c;但是每次配置一方时&#xff0c;总感觉和另一方有点不一样&#xff0c;但是也没有来得及总结。刚好最近有时间可以总结一下。 重点&#xff1a; 1、VMware的桥接模式和Docker的桥接模式完…...

大模型在肾癌诊疗全流程中的应用研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 国内外研究现状 二、大模型预测肾癌术前情况 2.1 基于影像组学的肾癌良恶性及分级预测 2.1.1 MRI 影像组学模型预测肾透明细胞癌分级 2.1.2 CT 影像深度学习模型鉴别肾肿物良恶性及侵袭性 2.2 大模型对手术风…...

Springboot使用登录拦截器LoginInteceptor来做登录认证

创建拦截器LoginInteceptor类 interceptors/LoginInteceptor.java package org.example.interceptors;import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.example.utils.JwtUtil; import org.springframework.s…...

2025年- H13-Lc120-189.轮转数组(普通数组)---java版

1.题目描述 2.思路 import java.util.Arrays;public class H189 {public static void main(String[] args) {int[] newArr {1, 2, 3, 4, 5};int[] nums new int[5];System.arraycopy(newArr,0,nums,0,4);System.out.println(Arrays.toString(nums)); } }补充2&#xff1a; 3.…...

Android Framework常见问题

以下是不同难度级别的 Android Framework 面试题&#xff0c;包含答案要点&#xff0c;可帮助你为面试做好准备。 初级难度 1. 请简要解释 Android Framework 是什么。 答案要点&#xff1a;Android Framework 是 Android 系统的核心组成部分&#xff0c;它为开发者提供了一…...

【AI】图片处理的AI工具

博主最近需要给客户展示一下做的一些设备和仪器&#xff0c;随手拍了一些照片&#xff0c;觉的背景不是很好看&#xff0c;于是在网上寻找AI图片处理工具。后来随手用了一下豆包AI&#xff0c;发现很好用&#xff0c;这里把一点使用的心得体会记录一下&#xff0c;并和大家分享…...

Python列表全面解析:从基础到高阶操作

一、为什么需要列表&#xff1f; 在Python中&#xff0c;列表是可变有序序列&#xff0c;用于存储多个元素的容器。相较于单一变量存储独立值&#xff0c;列表能更高效地管理批量数据&#xff0c;其特点包括&#xff1a; ​引用存储&#xff1a;列表元素存储的是对象的引用​…...

C++调用C动态库编译时报undefined reference to “funcxxx“错误

问题描述&#xff1a;Linux平台上C调用C库进行make编译时报undefined reference to "funcxxx"错误&#xff0c;错误实例如下&#xff1a; /usr/bin/ld: CMakeFiles/dialog.dir/widgets/widget.cpp.o: in function Widget::loadVerificationModule(): /home/zhangxia…...

基于Spring Boot+Vue 网上书城管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

C++ 中自主内存管理 new/delete 与 malloc/free 完全详解

C 中 new/delete 与 malloc/free 完全详解 一、new/delete 与 malloc/free 的区别 特性new/deletemalloc/free属于C语言C语言申请的内存区堆&#xff08;Heap&#xff09;堆&#xff08;Heap&#xff09;返回类型指向对象类型的指针&#xff08;自动转换&#xff09;void*&…...

Maven中的依赖管理

目录 什么是依赖范围 什么是依赖传递 依赖范围对依赖传递的影响 依赖冲突 什么是依赖冲突 依赖冲突的解决方案 版本锁定 短路径优先 ​编辑 声明优先 特殊优先&#xff08;后来者居上&#xff09; 可选依赖 排除依赖 可选依赖和排除依赖的区别 刷新依赖的8种方式…...

生态修复项目管理软件

在“双碳”目标与生态文明建设的双重驱动下&#xff0c;生态修复项目正成为全球环境治理的核心战场。然而&#xff0c;矿山复绿、湿地修复、水土保持等工程往往面临跨地域、多主体、长周期的管理难题——从数据分散到进度失控&#xff0c;从成本超支到风险频发&#xff0c;传统…...

深度剖析 RocketMQ 5.0 之架构解析:云原生架构如何支撑多元化场景?

拓展学习&#xff1a;&#x1f50d;「RocketMQ 中文社区」 持续更新&#xff0c;提供 RocketMQ 领域专家模型的 AI 答疑 作者 | 隆基 简介&#xff1a; 了解 RocketMQ 5.0 的核心概念和架构概览&#xff1b;然后我们会从集群角度出发&#xff0c;从宏观视角学习 RocketMQ 的管…...

Spring中bean的生命周期(笔记)

bean的生命周期&#xff0c;按照最重要五步 第一步&#xff1a;实例化bean,调用无参构造方法&#xff08;通过BeanDefinition利用反射实例化Bean对象(无参数构造方法) 并通过推断构造方法...并放入三级缓存中..&#xff09; 第二步&#xff1a;给bean属性赋值&#xff08;调用…...

transform-实现Encoder 编码器模块

Encoder 论文地址 https://arxiv.org/pdf/1706.03762 Encoder结构介绍 Transformer Encoder是Transformer模型的核心组件&#xff0c;负责对输入序列进行特征提取和语义编码。通过堆叠多层结构相同的编码层&#xff08;Encoder Layer&#xff09;&#xff0c;每层包含自注意力机…...

LVGL -窗口操作

1 窗口背景介绍 在 LVGL 中&#xff0c;screen 是一个顶层对象&#xff0c;代表你设备上当前显示的整个画面。它相当于一个“全屏容器”&#xff0c;你可以在上面添加按钮、标签、图像、容器等各种界面控件。它的本质就是一个特殊的 lv_obj_t&#xff0c;但它没有父对象&#…...

ollama运行qwen3

环境 windows server GPU 32G 内存 40G 升级ollama 需要版本 0.6.6以上 ollama --version拉取模型 ollama pull qwen3:32b时间比较长&#xff0c;耐心等待 运行模型 ollama run qwen3:32b运行起来之后发现GPU是可以跑起来的,发个你好看看 默认是深度思考的&#xff0c;不…...

如何查看和验证AWS CloudFront的托管区域ID

在使用AWS Route 53设置DNS记录时,正确识别CloudFront分发的托管区域ID是至关重要的。本文将详细介绍几种查看和验证CloudFront托管区域ID的方法,特别关注中国区CloudFront的特殊情况。 为什么托管区域ID很重要? 托管区域ID是AWS服务中的一个关键标识符。在创建指向CloudF…...

yum 安装 ncurses-devel 报错 baseurl 的解决方法

解决 yum 安装 ncurses-devel 报错&#xff08;baseurl 问题&#xff09; 出现 yum install ncurses-devel 报错 Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 的原因&#xff0c;很可能是因为 CentOS 7 的 SCL 源在 2024 年 6 月 30 日停止维护了。以下是解…...

《Vue3学习手记7》

组件通信&#xff08;续&#xff09; $attrs 组件通信&#xff1a;$attrs 适用于祖传孙或孙传祖 &#xff08;需要通过中间组件&#xff09; 传递给后代的数据&#xff0c;但未被接收&#xff0c;都保存在attrs中 1.祖传孙 父组件&#xff1a; <template><div cl…...

算法备案类型解析:如何判断你的算法属于哪种类型?

根据《互联网信息服务算法推荐管理规定》政策&#xff0c;算法备案已经成为了强制性备案。但对于企业而言&#xff0c;如何准确判断自身算法所属的备案类型往往存在困惑&#xff0c;今天我们就来详细盘一盘算法备案的类型&#xff0c;教你如何判断自己的算法属于哪一类 一、算…...

Javascript 中作用域的理解?

一、作用域的类型 1. 全局作用域&#xff08;公司大门外&#xff09; 范围&#xff1a;整个 JavaScript 文件变量&#xff1a;像贴在公告栏上的信息&#xff0c;所有人可见例子&#xff1a;const companyName "阿里"; // 全局变量&#xff0c;任何地方都能访问 fu…...

Qt入门——什么是Qt?

Qt背景介绍 什么是Qt? Qt 是⼀个 跨平台的 C 图形用户界面应用程序框架 。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是 完全面向对象 的&#xff0c;很容易扩展。Qt 为开发者提供了 ⼀种基于组件的开发模式 &#xff0c;开发者可以通过简单的拖拽和组合…...

Snap7西门子PLC通信协议

S7协议&#xff0c;作为西门子的专有协议&#xff0c;广泛应用于多种通讯服务中&#xff0c;如PG通讯、OP通讯以及S7基本通讯等。它独立于西门子的各种通讯总线&#xff0c;能够在MP、PROFIBUS、Ethernet以及PROFINET等多种网络上运行。S7协议实质上是一个由多种应用层协议构成…...

GTC Taipei 2025 医疗域前瞻:从AI代理到医疗生态,解码医疗健康与生命科学的未来图景

引言 2025年,全球医疗健康领域正经历一场由人工智能、机器人技术与分布式计算驱动的范式转移。随着NVIDIA及其生态伙伴在GTC Taipei 2025大会上的深度布局,医疗行业的核心趋势愈发清晰:AI代理程序(Digital AI Agents)赋能临床协作、医疗大数据与精准医学加速落地、医学影…...

C++的vector中emplace_back() 与 push_back() 的区别

C 中 vector 的 emplace_back() 和 push_back() 均用于向容器末尾添加元素&#xff0c;但二者在实现和效率上有显著区别&#xff1a; 1. 参数传递方式 push_back()&#xff1a;接受一个已构造的对象&#xff08;左值或右值&#xff09;&#xff0c;将其拷贝或移动到容器中。 s…...

LangChain4j +DeepSeek大模型应用开发——5 持久化聊天记忆 Persistence

默认情况下&#xff0c;聊天记忆存储在内存中。如果需要持久化存储&#xff0c;可以实现一个自定义的聊天记忆存储类&#xff0c;以便将聊天消息存储在你选择的任何持久化存储介质中。 1. 存储介质的选择 大模型中聊天记忆的存储选择哪种数据库&#xff0c;需要综合考虑数据特…...

C++核心编程 1.2 程序运行后

1.2 程序运行后 栈区&#xff1a; 由编译器自动分配释放, 存放函数的参数值,局部变量等 注意事项&#xff1a;不要返回局部变量的地址&#xff0c;栈区开辟的数据由编译器自动释放 int * func() {int a 10;return &a; }int main() {int *p func();cout << *p <…...

小市值策略复现(A股选股框架回测系统)

相关config配置 https://quantkt.com/forumDetail?id201043 很早就知道了小市值模型&#xff0c;正好量化选股回测框架出来了&#xff0c;把最裸的小市值复现下&#xff0c;顺便验证下框架逻辑。 科普: 小市值策略基于 “小市值效应”&#xff0c;即从历史数据来看&#xf…...

C语言(6)—函数递归

文章目录 一、递归的基本概念1.1 什么是递归1.2 递归的核心思想1.3 递归的必要条件 二、递归的经典应用2.1 阶乘计算 三、递归与迭代的比较3.1 递归的优缺点3.2 迭代的优缺点 四、递归的底层机制4.1 函数调用栈4.2 栈溢出风险 五、递归优化技巧5.1 记忆化&#xff08;Memoizati…...

【网络】HTTP报文首部字段

目录 一. 预备知识 1.1.代理、网关和隧道 1.1.1.代理 1.1.2.网关 1.1.3.隧道 1.2.保存资源的缓存 1.2.1.缓存的有效期限 1.2.2.客户端的缓存 1.3.用单台虚拟主机实现多个域名 二. HTTP首部字段 2.1.HTTP 首部字段格式 2.2.四种 HTTP 首部字段类型 三. HTTP通用首部…...

【Fifty Project - D20】

今日完成记录 TimePlan完成情况7&#xff1a;30 - 11&#xff1a;30收拾行李闪现广州 & 《挪威的森林》√10&#xff1a;00 - 11&#xff1a;00Leetcode√16&#xff1a;00 - 17&#xff1a;00健身√ Leetcode 每日一题 每日一题来到了滑动窗口系列&#xff0c;今天是越…...

【Linux系统】systemV共享内存

system V共享内存 在Linux系统中&#xff0c;共享内存是一种高效的进程间通信&#xff08;IPC&#xff09;机制&#xff0c;它允许两个或者多个进程共享同一块物理内存区域&#xff0c;这些进程可以将这块区域映射到自己的虚拟地址空间中。 共享内存区是最快的IPC形式。一旦这…...

【计算机网络】DHCP——动态配置ip地址

DHCP 是什么&#xff1f; DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09; 是一种网络协议&#xff0c;用于自动分配 IP 地址和其他网络配置参数&#xff08;如子网掩码、默认网关、DNS 服务器等&#xff09;给网络中的设备&…...

TDengine 订阅不到数据问题排查

简介 TDengine 在实际生产应用中&#xff0c;经常会遇到订阅程序订阅不到数据的问题&#xff0c;总结大部分都为使用不当或状态不正确等问题&#xff0c;需手工解决。 查看服务端状态 通过 sql 命令查看有问题的 topic 和consumer_group 组订阅是否正常。 select * from inf…...

低版的spring boot 1.X接入knife4j

低版的spring boot 1.X接入knife4j 老的项目是用spring boot 1.5.10.RELEASE 不好升级 &#xff0c;原来接口文档一直用的是老的swagger样式&#xff0c;不是很好看&#xff0c;网上查了下&#xff0c;发现有个knife4j挺好看的&#xff0c;用一下他们的样式&#xff0c;下面是…...

outlook for mac本地邮件存放在哪儿?

尽管 PST 格式通常与 Microsoft Outlook 联系在一起&#xff0c;但认为它也在 Mac OS 上存储邮箱数据是一种误解。实际上&#xff0c;Outlook for Mac 不会将邮件存储为 PST 文件。无法在 Outlook for Mac 中找到 PST 文件位置&#xff0c;因为它不使用 PST 文件来存储邮箱数据…...

javascript<——>进阶

一、作用域&#xff1a;变量可以被访问的范围 1.局部作用域 1.1函数作用域 在函数内部声明的变量&#xff0c;在函数内部被访问的&#xff0c;外部无法直接访问。 总结&#xff1a;1、函数内部声明的变量&#xff0c;在函数外部无法直接访问 2、函数的参数也是函数内部的局…...