自回归模型(AR )

最近看到一些模型使用了自回归方法,这里就学习一下整理一下相关内容方便以后查阅。

自回归模型(AR )

  • 自回归模型(AR )
    • AR 模型的引入
    • AR 模型的定义
    • 参数的估计方法
    • 模型阶数选择
    • 平稳性与因果性条件
    • 自相关与偏自相关函数
    • 优缺点总结
  • 自相关(Autocorrelation)与偏自相关(Partial Autocorrelation)
    • 基本概念与定义
      • 自相关函数(ACF)
        • 样本自相关系数
      • 偏自相关函数(PACF)
    • ACF与PACF图在模型识别中的作用
    • 工具与代码实现
  • 自回归移动平均模型(Autoregressive Moving Average Model,ARMA)
    • 基本概念与定义
      • 自回归(AR)模型
      • 移动平均(MA)模型
      • ARMA模型的定义
    • ARMA(p, q)模型的数学公式
  • 参考资料

自回归(Autoregression,简称AR)是一类广泛应用于时间序列分析和建模的统计模型。它的核心思想是将当前时刻的数据值表示为过去若干时刻数据值的线性组合,以及一个随机误差项。通过这种方式,自回归模型能够捕捉时间序列内部的自相关结构,从而实现对未来值的预测、对数据生成机制的理解,或对信号特征的建模。

自回归模型(AR )

AR 模型的引入

考虑如图所示的单摆系统。设 x t x_t xt 为第 t t t 次摆动过程中的摆幅。根据物理原理,第 t t t 次的摆幅 x t x_t xt 由前一次的摆幅 x t − 1 x_{t-1} xt1 决定,即有 x t = a 1 x t − 1 x_t=a_1x_{t-1} xt=a1xt1。考虑到空气振动的影响,我们往往假设
x t = a 1 x t − 1 + ε t , t ≥ 1 x_t=a_1x_{t-1}+\varepsilon_t,t\geq1 xt=a1xt1+εt,t1

其中,随机干扰 ε t ∼ N ( 0 , σ 2 ) ε_t \sim N(0, σ^2) εtN(0,σ2)

在这里插入图片描述

设初始时刻 x 0 = 1 x_0=1 x0=1,现在取不同的 a 1 a_1 a1 σ σ σ 值进行实验。实验结果如下图。

在这里插入图片描述
可以看出,参数 a 1 a_1 a1 对序列的稳定性起到决定性的作用,而噪声强度 σ 2 σ^2 σ2 决定了序列的波动程度。

在这里,我们称第一个公式为一阶自回归模型。更一般地,可以考虑序列值 x t x_t xt 可由前 p p p 个时刻的序列值及当前的噪声表出,即
x t = a 1 x t − 1 + a 2 x t − 2 + ⋯ + a p x t − p + ε t x_t=a_1x_{t-1}+a_2x_{t-2}+\cdots+a_px_{t-p}+\varepsilon_t xt=a1xt1+a2xt2++apxtp+εt

其中, a j a_j aj 为参数, ε t {ε_t} εt 为白噪声。

AR 模型的定义

如果 ε t \varepsilon_\mathrm{t} εt为白噪声,服从 N ( 0 , σ 2 ) N(0,\sigma^2) N(0,σ2) a 0 , a 1 , . . . , a p ( a p ≠ o ) \mathrm{a_0,a_1,...,a_p(a_p\neq o)} a0,a1,...,ap(ap=o)为实数,就称 p p p 阶差分方程
X t = a 0 + a 1 X t − 1 + a 2 X t − 2 + ⋯ + a p X t − p + ε t , t ∈ Z X_t=a_0+a_1X_{t-1}+a_2X_{t-2}+\cdots+a_pX_{t-p}+\varepsilon_t,t\in\mathbb{Z} Xt=a0+a1Xt1+a2Xt2++apXtp+εt,tZ

是一个 p p p 阶自回归模型,简称 A R ( p ) AR(p) AR(p) 模型,称 a = ( a 0 , a 1 , . . . , a p ) T \mathbf{a=(a_{0},a_{1},...,a_{p})^{T}} a=(a0,a1,...,ap)T A R ( p ) AR(p) AR(p) 模型中的自回归系数。满足上述 模型的时间序列 X t {X_t} Xt 称为 A R ( p ) AR(p) AR(p) 序列。

a 0 = 0 a_0=0 a0=0 时,称为零均值 A R ( p ) AR(p) AR(p) 序列,即
X t = a 1 X t − 1 + a 2 X t − 2 + ⋯ + a p X t − p + ε t , t ∈ Z X_t=a_1X_{t-1}+a_2X_{t-2}+\cdots+a_pX_{t-p}+\varepsilon_t,t\in\mathbb{Z} Xt=a1Xt1+a2Xt2++apXtp+εt,tZ

需要指出的是,对于 a 0 ≠ 0 a_0≠0 a0=0 的情况,我们可以通过零均值化的手段把一般的 A R ( p ) AR(p) AR(p) 序列变为零均值 A R ( p ) AR(p) AR(p) 序列。

参数的估计方法

要使用AR模型进行预测或分析,我们需要根据实际数据估计参数 ϕ 1 , ϕ 2 , … , ϕ p \phi_1, \phi_2, \dots, \phi_p ϕ1,ϕ2,,ϕp 和噪声项的方差 σ 2 \sigma^2 σ2。参数估计方法包括:

  • 最小二乘法(OLS):将 AR 模型视为线性回归模型,用 OLS 来估计参数。对于 AR§ 模型,可将 ( x t − 1 , x t − 2 , … , x t − p ) (x_{t-1}, x_{t-2}, \dots, x_{t-p}) (xt1,xt2,,xtp) 作为自变量, x t x_t xt 为因变量,构建线性方程组,求解参数。

  • 极大似然估计(MLE):在高斯噪声假设下,可采用MLE方法,通过最大化似然函数来得到参数估计。

  • Yule-Walker方程:Yule-Walker方程是基于自相关函数推导出的方程组,可以直接求解AR模型参数。这在理论研究和快速估计中非常有用。

模型阶数选择

确定 AR 模型的阶数 p p p 是实际应用中的一个关键步骤。过低的阶数可能无法充分捕捉序列的特征,过高的阶数又会导致过拟合和模型复杂度增加。常用的阶数选择标准包括:

  • 赤池信息准则(AIC) AIC = 2 k − 2 ln ⁡ ( L ) \text{AIC} = 2k - 2\ln(L) AIC=2k2ln(L),其中 k k k 是参数个数, L L L 为似然函数值。AIC倾向较复杂模型,但不宜过于简单。

  • 贝叶斯信息准则(BIC) BIC = ln ⁡ ( N ) k − 2 ln ⁡ ( L ) \text{BIC} = \ln(N)k - 2\ln(L) BIC=ln(N)k2ln(L),其中 N N N 为样本量。BIC惩罚项更大,倾向更简单的模型。

  • HQ准则(Hannan-Quinn):介于 AIC 和 BIC 之间的准则。

一般来说,通过对不同阶数的模型拟合并计算AIC、BIC、HQ等指标,选择使这些准则达到最低值的阶数作为最终模型的阶数。

平稳性与因果性条件

AR模型适用于平稳时间序列,因此研究 AR 模型时需要确保模型的平稳性。一个 A R ( p ) AR(p) AR(p) 模型的平稳性条件可以通过其特征方程来判断:
1 − ϕ 1 z − ϕ 2 z 2 − ⋯ − ϕ p z p = 0. 1 - \phi_1 z - \phi_2 z^2 - \cdots - \phi_p z^p = 0. 1ϕ1zϕ2z2ϕpzp=0.

如果该特征方程的根都落在单位圆之外(即绝对值大于1),那么该 A R ( p ) AR(p) AR(p) 模型是平稳的。平稳性保证了模型参数的统计性质和预测稳定性。如果时间序列不平稳,可对数据进行差分、去趋势或其他平稳化处理后再建模(这类模型可扩展为ARIMA模型)。

自相关与偏自相关函数

AR模型参数与时间序列的自相关特性密切相关。通过自相关函数(ACF)和偏自相关函数(PACF),我们可以获得有助于选择AR阶数的信息。

对于 A R ( p ) AR(p) AR(p) 模型,偏自相关函数在滞后阶数 p p p 处通常会出现截断,这为阶数选择提供了直观的参考。

优缺点总结

优点

  • 模型简单易懂,参数有明确的统计学含义。
  • 算法成熟,估计方法(OLS、MLE、Yule-Walker)简单且高效。
  • 对短期预测十分有效,在数据平稳且线性特征显著时表现良好。

缺点

  • 不适用于非线性序列,需要扩展方法或非线性模型来处理。
  • 对非平稳序列需预处理,否则无法保证参数估计的有效性。
  • 长期预测不如短期预测准确,对突发性、非线性、复杂行为的序列无能为力。

自相关(Autocorrelation)与偏自相关(Partial Autocorrelation)

自相关(Autocorrelation)与偏自相关(Partial Autocorrelation)是时间序列分析中的两个重要统计工具,用于刻画序列中不同时间点之间的相关关系结构。通过自相关和偏自相关函数(分别记为ACF与PACF),我们可以更清晰地了解序列的动态特性,并为模型阶数选择(如AR模型中的阶数 p p p)提供依据。

基本概念与定义

自相关函数(ACF)

自相关描述同一时间序列在不同时间滞后(lag)下的相关程度。对于一个离散时间序列 { x t } \{x_t\} {xt},其均值为 μ \mu μ,自相关可以定义为同一序列在时间间隔为 k k k (又称滞后数)的两个值之间的线性相关程度。

形式化定义:
γ ( k ) \gamma(k) γ(k) 为时间序列在滞后数为 k k k 时的协方差, γ ( 0 ) \gamma(0) γ(0) 为序列的方差,则自相关函数(Autocorrelation Function, ACF)为:
ρ ( k ) = γ ( k ) γ ( 0 ) = E [ ( x t − μ ) ( x t − k − μ ) ] E [ ( x t − μ ) 2 ] . \rho(k) = \frac{\gamma(k)}{\gamma(0)} = \frac{E[(x_t - \mu)(x_{t-k} - \mu)]}{E[(x_t-\mu)^2]}. ρ(k)=γ(0)γ(k)=E[(xtμ)2]E[(xtμ)(xtkμ)].

其中:

  • ρ ( k ) \rho(k) ρ(k) 为滞后 k k k 的自相关系数,取值范围为[-1, 1]。
  • ρ ( k ) \rho(k) ρ(k) 接近1或-1时,表示序列在滞后 k k k 处具有较强的正相关或负相关。
  • ρ ( k ) \rho(k) ρ(k) 接近0时,表示在滞后 k k k 处序列的值与过去的值几乎没有线性关系。

通过计算序列在不同滞后下的自相关,可以构建一组自相关系数,并将其作为自相关函数ACF对滞后数k绘制得到ACF图。

样本自相关系数

在实际应用中,由于未知总体参数,我们通常使用样本自相关系数来估计ACF:
ρ ^ ( k ) = ∑ t = k + 1 N ( x t − x ˉ ) ( x t − k − x ˉ ) ∑ t = 1 N ( x t − x ˉ ) 2 \hat{\rho}(k)=\frac{\sum_{t=k+1}^N(x_t-\bar{x})(x_{t-k}-\bar{x})}{\sum_{t=1}^N(x_t-\bar{x})^2} ρ^(k)=t=1N(xtxˉ)2t=k+1N(xtxˉ)(xtkxˉ)

x ‾ \overline{x} x是样本均值, N N N 是样本大小。

偏自相关函数(PACF)

偏自相关(Partial Autocorrelation)描述的是在考虑中间滞后项的影响后,两个时间点之间的“净”相关度。

偏自相关函数衡量的是在控制了中间所有滞后项的影响后,时间序列在滞后k处的直接相关性。也就是说,PACF α ( k ) α(k) α(k) 是在考虑了滞后1到滞后 k − 1 k−1 k1的影响后, x t x_t xt x t − k x_{t−k} xtk 之间的净相关性。
x t = β 0 + β 1 x t − 1 + β 2 x t − 2 + ⋯ + β k x t − k + ϵ t x_t=\beta_0+\beta_1x_{t-1}+\beta_2x_{t-2}+\cdots+\beta_kx_{t-k}+\epsilon_t xt=β0+β1xt1+β2xt2++βkxtk+ϵt

偏自相关函数 α ( k ) \alpha(k) α(k) 就是回归系数 β k \beta_{k} βk

ACF与PACF图在模型识别中的作用

在AR模型中,ACF与PACF图是选择模型阶数的重要视觉和理论依据。

  • 纯AR模型中的特征
    对于一个 A R ( p ) AR(p) AR(p) 模型:
    x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t , x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t, xt=ϕ1xt1+ϕ2xt2++ϕpxtp+ϵt,

    • ACF图通常会表现为在前几个滞后可能较大(可能逐渐衰减)的自相关,然后在高阶滞后趋近于0。
    • PACF图对于 A R ( p ) AR(p) AR(p)模型有一个明显特征:从滞后p之后,偏自相关系数会快速趋近于0,而且在p阶截断。也就是说,偏自相关函数在滞后数超过p时通常不显著。
  • 纯MA模型中的特征
    若是一个 M A ( q ) MA(q) MA(q) 模型(非AR结构),则ACF在q阶后截断(即ACF在滞后q后接近0),而PACF表现为渐进衰减,不会像AR模型那样干净地截断。

  • ARMA模型中的特征
    对于混合模型 A R M A ( p , q ) ARMA(p,q) ARMA(p,q),ACF和PACF都不会出现干净的截断,而是呈现混合的渐进衰减特性。透过ACF和PACF的形态,可以尝试区分AR、MA及ARMA等模型结构。

通过观察ACF和PACF的截断与衰减模式,我们能够初步推断合适的模型类别与阶数。例如:

  • 如果PACF在p阶截断,而ACF渐进衰减,那么这可能是AR§模型。
  • 如果ACF在q阶截断,而PACF渐进衰减,那么这可能是MA(q)模型。
  • 如果两者都渐进衰减,那么可能是ARMA模型,需要更进一步检验。

工具与代码实现

  • 导入库并加载数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.arima_process import ArmaProcess# 生成AR(1)模型的数据
np.random.seed(42)
phi = 0.6
ar = np.array([1, -phi])  # 注意符号
ma = np.array([1])        # MA部分
arma_process = ArmaProcess(ar, ma)
simulated_data = arma_process.generate_sample(nsample=100)
  • 绘制ACF和PACF图
fig, ax = plt.subplots(2, 1, figsize=(12,8))# 绘制ACF图
plot_acf(simulated_data, lags=20, ax=ax[0])
ax[0].set_title('Autocorrelation Function (ACF)')# 绘制PACF图
plot_pacf(simulated_data, lags=20, ax=ax[1], method='ywm')
ax[1].set_title('Partial Autocorrelation Function (PACF)')plt.tight_layout()
plt.show()

在这里插入图片描述

自回归移动平均模型(Autoregressive Moving Average Model,ARMA)

自回归移动平均模型(Autoregressive Moving Average Model,简称ARMA) 是时间序列分析中一种经典且广泛应用的统计模型。它结合了**自回归(Autoregressive, AR)移动平均(Moving Average, MA)**两种模型的特点,用于描述和预测平稳时间序列数据。ARMA模型在经济学、金融学、气象学、工程学等多个领域都有着重要的应用。

基本概念与定义

自回归(AR)模型

自回归(Autoregressive, AR)模型 假设当前时间点的值是其前若干时间点值的线性组合,加上一个白噪声误差项。AR模型用于捕捉时间序列中的自相关性。

AR§模型 的数学表达式为:
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t xt=ϕ1xt1+ϕ2xt2++ϕpxtp+ϵt

其中:

  • x t x_t xt 是时间序列在时刻 t t t 的值。
  • ϕ 1 , ϕ 2 , … , ϕ p \phi_1, \phi_2, \dots, \phi_p ϕ1,ϕ2,,ϕp 是自回归系数。
  • ϵ t \epsilon_t ϵt 是白噪声误差项,满足 E [ ϵ t ] = 0 E[\epsilon_t] = 0 E[ϵt]=0 Var ( ϵ t ) = σ 2 \text{Var}(\epsilon_t) = \sigma^2 Var(ϵt)=σ2

移动平均(MA)模型

移动平均(Moving Average, MA)模型 假设当前时间点的值是前若干时间点误差项的线性组合,加上一个当前的白噪声误差项。MA模型用于捕捉时间序列中的随机波动。

MA(q)模型 的数学表达式为:
x t = ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q x_t = \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} xt=ϵt+θ1ϵt1+θ2ϵt2++θqϵtq

其中:

  • x t x_t xt 是时间序列在时刻 t t t 的值。
  • θ 1 , θ 2 , … , θ q \theta_1, \theta_2, \dots, \theta_q θ1,θ2,,θq 是移动平均系数。
  • ϵ t \epsilon_t ϵt 是白噪声误差项,满足 E [ ϵ t ] = 0 E[\epsilon_t] = 0 E[ϵt]=0 Var ( ϵ t ) = σ 2 \text{Var}(\epsilon_t) = \sigma^2 Var(ϵt)=σ2

ARMA模型的定义

自回归移动平均(Autoregressive Moving Average, ARMA)模型 结合了AR和MA模型的特点,用于描述具有自回归和移动平均特征的时间序列数据。

ARMA(p, q)模型 的数学表达式为:
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} xt=ϕ1xt1+ϕ2xt2++ϕpxtp+ϵt+θ1ϵt1+θ2ϵt2++θqϵtq

其中:

  • p p p 是自回归部分的阶数。
  • q q q 是移动平均部分的阶数。
  • ϕ i \phi_i ϕi θ j \theta_j θj 分别是AR和MA部分的系数。
  • ϵ t \epsilon_t ϵt 是白噪声误差项。

ARMA模型 适用于平稳时间序列数据,能够捕捉序列中的长期依赖性(通过AR部分)和短期波动性(通过MA部分)。

ARMA(p, q)模型的数学公式

综合AR和MA模型,ARMA(p, q) 模型的数学公式如下:
x t = ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q x_t = \phi_1 x_{t-1} + \phi_2 x_{t-2} + \cdots + \phi_p x_{t-p} + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} xt=ϕ1xt1+ϕ2xt2++ϕpxtp+ϵt+θ1ϵt1+θ2ϵt2++θqϵtq

可以将其表示为:
ϕ ( B ) x t = θ ( B ) ϵ t \phi(B) x_t = \theta(B) \epsilon_t ϕ(B)xt=θ(B)ϵt

其中:

  • ϕ ( B ) = 1 − ϕ 1 B − ϕ 2 B 2 − ⋯ − ϕ p B p \phi(B) = 1 - \phi_1 B - \phi_2 B^2 - \cdots - \phi_p B^p ϕ(B)=1ϕ1Bϕ2B2ϕpBp 是AR多项式。
  • θ ( B ) = 1 + θ 1 B + θ 2 B 2 + ⋯ + θ q B q \theta(B) = 1 + \theta_1 B + \theta_2 B^2 + \cdots + \theta_q B^q θ(B)=1+θ1B+θ2B2++θqBq 是MA多项式。
  • B B B 是滞后算子, B x t = x t − 1 B x_t = x_{t-1} Bxt=xt1

参考资料

自回归模型(AR )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/485955.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吉他初学者学习网站搭建系列(9)——如何用coze做一个网站助手

文章目录 背景功能搭建智能体新增工作流效果总结 背景 随着AI大模型的普及,国内也涌现出许多帮助用户更便捷使用大模型的平台。扣子就是其中之一。国内已经有蛮多用户了,我试用了这个平台,来给我的网站搭建一个小助手,效果非常好…

【网络】网络基础知识(协议、mac、ip、套接字)

文章目录 1. 计算机网络的背景2. 认识网络协议2.1 协议分层2.2 OS与网络的关系 3. 网络传输基本流程3.1 局域网通信流程3.2 跨网络通信流程 4. Socket 编程预备4.1 理解源IP地址和目的IP地址4.2 端口号与Socket4.3传输层的典型代表4.4 网络字节序 5. socket 编程接口5.1 介绍5.…

qtcanpool 知 08:Docking

文章目录 前言口味改造后语 前言 很久以前,作者用 Qt 仿照前端 UI 设计了一个 ministack(https://gitee.com/icanpool/qtcanpool/blob/release-1.x/src/libs/qcanpool/ministack.h) 控件,这个控件可以折叠。部分用户体验后&#…

【PyQt5教程 一】Qt Designer 安装及其使用方法说明,附程序源码

目录 一、PyQt5介绍: (1)PyQt简介: (2)PyQt API: (3)支持的环境: (4)安装: (5)配置环境变量…

青海摇摇了3天,技术退步明显.......

最近快手上的青海摇招聘活动非常火热,我已经在思考是否备战张诗尧的秋招活动。开个玩笑正片开始: 先说一下自己的情况,大专生,20年通过校招进入杭州某软件公司,干了接近4年的功能测试,今年年初&#xff0c…

DDD第一话:业务领域分析

业务领域的概念 业务领域定义了公司的主要活动领域,这是公司为客户提供的服务内容。例如:联邦快递提供快递服务;星巴克最出名的是它的咖啡。 子域 为了实现其业务领域的目标和目标,公司必须在多个子领域中操作。子域是业务活动…

MongoDB change stream实战

什么是 Chang Stream Change Stream指数据的变化事件流,MongoDB从3.6版本开始提供订阅数据变更的功能。 Change Stream 是 MongoDB 用于实现变更追踪的解决方案,类似于关系数据库的触发器,但原理不完全相同: Change Stream 的实…

Linux其二设置端口号,静态ip以及命令

目录 1、VI编辑器 【linux版本的文本文件】 2) 补充的vi编辑器的其他内容(了解) 2、ln 连接的意思 link的缩写 3、文件的查看 【重点】 4、压缩与解压(重点) 5、find 查找命令 6、which & whereis 作用是一样的,表示某…

MetaGPT 安装

1. 创建环境 conda create -n metagpt python3.10 && conda activate metagpt2. 可编辑方式安装 git clone --depth 1 https://github.com/geekan/MetaGPT.git cd MetaGPT pip install -e .3. 配置 metagpt --init-config运行命令,在C盘位置C:\Users\325…

WEB开发: Node.js路由之由浅入深(一) - 全栈工程师入门

作为一个使用Node.js多年的开发者,我已经习惯于用Node.js写一些web应用来为工作服务,因为实现快速、部署简单、自定义强。今天我们一起来学习一个全栈工程师必备技能:web路由。(观看此文的前提是默认你已经装好nonde.js了&#xf…

【后端面试总结】Redis字符串实现原理

字符串是我们平时接触频率最高的一个基础类型,但就是这么一个平平无奇的基本类型,在Redis里面也是经历了各种各样的优化,来优化它对内存的占用,了解这部分内容,与其说是“学习Redis”,不如说是“向Redis学习…

GitToolBox插件:让IntelliJ IDEA的Git操作如虎添翼

GitToolBox插件介绍 GitToolBox是一款针对IntelliJ IDEA的插件,旨在增强IDE内置的Git功能,使Git操作更加便捷和高效。无论是单独开发者还是团队中的一员,这个插件都能帮助更好地管理代码和协作流程。 功能特点 分支管理:GitToolBo…

Vulhub:Shiro[漏洞复现]

目录 CVE-2010-3863(Shiro未授权) 使用浏览器访问靶场主页面 使用Yakit进行抓包 使用ffuf对靶机8080端口进行根路径FUZZ CVE-2016-4437(Shiro-550) 使用浏览器访问靶场主页面 使用Yakit进行抓包 使用Yakit反连中自带的Yso-Java Hack进行漏洞利用 首先运行脚本生成一个…

Netty 框架——TCP 粘包和拆包

Netty 框架——TCP 粘包和拆包 1. 产生的原因 在 TCP 协议中,发送端为了提高网络传输的效率,通常会使用优化算法,如 Nagle 算法,将多个小的数据包合并成一个较大的数据块一起发送。这是因为频繁的小数据包传输可能会导致效率低下…

SQL靶场第九关攻略

我们的第九关需要用到时间盲注 使用条件:完全没有变化的页面 我们在了解一下时间盲注和布尔盲注的区别,时间盲注比布尔盲注多了一个if判断加上sleep()函数的运用 if(a,b,c) if判断句,a为条件,b、c为执行语句;如果a为…

STM32一keil5更换芯片后报错问题的解决。

目录 一、STM32型号认识二、报错问题三、常用的启动配置文件四、问题解决 一、STM32型号认识 二、报错问题 当我们在原来工程下修改芯片时,原本可以编译通过的代码突然很多报错。如下所示,这是因为我们的启动文件配置错误。对于不同型号的芯片其flash容量…

STM32 自学笔记

摘抄于大学期间记录在QQ空间的一篇自学笔记,当前清理空间,本来想直接删除掉的,但是感觉有些舍不得,因此先搬移过来。 RAM vs ROM vs FLASH 2013-09-05记录,ROM和RAM指的都是半导体存储器,ROM是Read Only …

深入解析 HTML Input 元素:构建交互性表单的核心

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

MBox20边缘计算网关:氢能车间数据采集的智慧引擎

氢能作为未来能源体系的重要组成部分,其安全、高效、环保的特性备受瞩目。在氢能车间的日常运营中,数据采集是确保生产流程优化、设备稳定运行及能效提升的关键环节。然而,面对氢能车间复杂多变的生产环境和海量数据,如何实现高效…

敏捷开发之路

1. 引言 最近有个企业软件开发项目,用户要求采用敏捷开发的方法实施项目。以前也参加过敏捷方法的培训,结合最近找的敏捷开发材料,形成了下面的敏捷实施过程内容。 以下采用了QAD量化敏捷开发方法,关于此方法详细参考内容见最后…