时间序列平稳性相关检验方法

理解平稳性

一般来说,平稳时间序列是指随着时间的推移具有相当稳定的统计特性的时间序列,特别是在均值和方差方面。平稳性可能是一个比较模糊的概念,将序列排除为不平稳可能比说序列是平稳的更容易。通常不平稳序列有几个特征:

  1. 平均值随时间推移发生变化,不保持稳定;
  2. 每个周期的波峰和波谷之间的距离在增长(缩短),也就是序列的方差随时间推移而增加(减小);
  3. 整个序列表现出强烈的季节性行为,与平稳性相反。

如何判断序列是否平稳?

时间序列平稳性检验方法,一般可分为两类:

  1. 图形分析方法
  2. 假设检验方法

1.图形分析方法

这是最简单的方法,即可视化时间序列数据,或可视化时间序列的统计特征,进行肉眼判断。

1.1 可视化数据

import numpy as np
import pandas as pd
import akshare as ak
import matplotlib.pyplot as plt
import seaborn as sns
import warnings

sns.set(style='darkgrid')
warnings.filterwarnings('ignore')

np.random.seed(123)

# -------------- 准备数据 --------------
# 白噪声
white_noise = np.random.standard_normal(size=1000)

# 随机游走
x = np.random.standard_normal(size=1000)
random_walk = np.cumsum(x)

# GDP
df = ak.macro_china_gdp()
df = df.set_index('季度')
# df.index = pd.to_datetime(df.index)
gdp = df['国内生产总值-绝对值'][::-1].astype('float')

# GDP DIFF
gdp_diff = gdp.diff(4).dropna()


# -------------- 绘制图形 --------------
fig, ax = plt.subplots(2, 2, figsize=(22,16), dpi=300)

ax[0][0].plot(white_noise)
ax[0][0].set_title('white_noise')
ax[0][1].plot(random_walk)
ax[0][1].set_title('random_walk')

ax[1][0].plot(gdp)
ax[1][0].set_title('gdp')
ax[1][1].plot(gdp_diff)
ax[1][1].set_title('gdp_diff')

plt.show()

在这里插入图片描述

  • 白噪声:曲线围绕0值上下波动,波动幅度前后、上下一致,为平稳序列;
  • 随机游走:曲线无确定趋势,均值、方差波动较大,非平稳序列;
  • GDP数据趋势上升,均值随时间增加,非平稳序列;
  • GDP季节差分后数据,曲线大致在一条水平线上下波动,波动幅度前后变化较小,可认为是平稳的。

1.2 可视化统计特征

可视化统计特征,是指绘制时间序列自相关图和偏自相关图,根据自相关图的表现来判断序列是否平稳。

自相关,也叫序列相关,是一个信号与自身不同时间点的相关度,或者说与自身的延迟拷贝(或滞后性)的相关性,是延迟的函数。不同滞后期得到的自相关系数,叫自相关图。(这里有一个默认假设是序列是平稳序列,平稳序列的自相关性只和时间间隔k有关,不随时间t的变化而变化,因而可以称自相关函数是延迟k的函数)

平稳序列通常具有短期自相关性,对于平稳的时间序列,自相关系数往往会迅速退化到零(滞后期约短相关性越高,滞后期为0,相关性为1);而对于非平稳的数据,退化会发生得更慢,或存在先减后增或者周期性波动等变动。

自相关的计算公式为根据滞后期 k k k将序列拆成等长的两个序列,计算两个序列的相关性得到滞后期为 k k k时的自相关性。举例:
X = [ 2 , 3 , 4 , 3 , 8 , 7 ] , A = [ 2 , 3 , 4 , 3 , 8 ] , B = [ 3 , 4 , 3 , 8 , 7 ] X=[2,3,4,3,8,7],\quad A=[2,3,4,3,8], \quad B=[3,4,3,8,7] X=[2,3,4,3,8,7],A=[2,3,4,3,8],B=[3,4,3,8,7]
X ˉ = 1 6 ∑ i = 1 6 X i = 4.5 \bar{X} = \frac{1}{6} \sum_{i=1}^{6}X_i = 4.5 Xˉ=61i=16Xi=4.5
s 2 ( X ) = 1 6 ∑ i = 1 6 ( X i − X ˉ ) ( X i − X ˉ ) = 4.916 s^2(X)=\frac{1}{6} \sum_{i=1}^{6}(X_i- \bar{X})(X_i- \bar{X})=4.916 s2(X)=61i=16(XiXˉ)(XiXˉ)=4.916
r ( 1 ) = 1 5 ( A i − X ˉ ) ( B i − X ˉ ) = 1.75 r(1)=\frac{1}{5}(A_i-\bar{X})(B_i-\bar{X})=1.75 r(1)=51(AiXˉ)(BiXˉ)=1.75
A C F ( 1 ) = r ( 1 ) s 2 ( X ) = 0.356 ACF(1)=\frac{r(1)}{s^2(X)}=0.356 ACF(1)=s2(X)r(1)=0.356

import statsmodels.api as sm
X = [2,3,4,3,8,7]
sm.tsa.stattools.acf(X, nlags=1, adjusted=True)    # 返回值:[滞后期为0时的自相关性,滞后期为1的自相关系数]
array([1.       , 0.3559322])

根据 A C F ACF ACF求出滞后 k k k自相关系数时,实际上得到并不是 X ( t ) X(t) X(t) X ( t − k ) X(t-k) X(tk)之间单纯的相关关系。因为 X ( t ) X(t) X(t)还会受到中间 k − 1 k-1 k1个随机变量的影响,而这 k − 1 k-1 k1个随机变量又都和 X ( t − k ) X(t-k) X(tk)具有相关关系,如果提出中间 k − 1 k-1 k1个随机变量的影响,所计算得到的是偏自相关系数,计算较为复杂。

# 数据生成过程在第一个代码块中
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

fig, ax = plt.subplots(4, 2, figsize=(22, 16), dpi=300)
fig.subplots_adjust(hspace=1.2)

plot_acf(white_noise, ax=ax[0][0])
ax[0][0].set_title('ACF(white_noise)')
plot_pacf(white_noise, ax=ax[0][1])
ax[0][1].set_title('PACF(white_noise)')

plot_acf(random_walk, ax=ax[1][0])
ax[1][0].set_title('ACF(random_walk)')
plot_pacf(random_walk, ax=ax[1][1])
ax[1][1].set_title('PACF(random_walk)')

plot_acf(gdp, ax=ax[2][0])
ax[2][0].set_title('ACF(gdp)')
plot_pacf(gdp, ax=ax[2][1])
ax[2][1].set_title('PACF(gdp)')

plot_acf(gdp_diff, ax=ax[3][0])
ax[3][0].set_title('ACF(gdp_diff)')
plot_pacf(gdp_diff, ax=ax[3][1])
ax[3][1].set_title('PACF(gdp_diff)')

plt.show()

在这里插入图片描述

  1. 白噪音的自相关系数很快就衰减到0附近,是明显的平稳序列。滞后期为0时的自相关系数和偏自相关系数其实就是序列自己和自己的相关性,故为1;滞后期为1时,自相关系数为0,表示白噪声无自相关性;
  2. 随机游走,自相关系数下降非常缓慢,故为非平稳序列;另从偏自相关系数中可以看到随机游走只和前一项有关;
  3. GDP数据的自相关图中也可以看到存在一定的周期性,滞后4、8、12等自相关系数较大下降较慢,差分后下降多一些起到一定效果,认为差分后序列是平稳的。同可视化数据一样,直观判断带有较强主观性,但能让我们对数据有更直观的认识。

2.假设检验

平稳性的假设检验方法当前主流为单位根检验,检验序列中是否存在单位根,若存在,则为非平稳序列,不存在则为平稳序列。

2.1 DF检验

A D F ADF ADF检验(Augmented Dickey-Fuller Testing)是最常用的单位根检验方法之一,通过检验序列是否存在单位根来判断序列是否是平稳的。 A D F ADF ADF D F DF DF检验的增强版。

迪基(Dickey)和弗勒(Fuller)1979年基于非平稳序列的基本特征将其大致归为三类并提出DF检验:

  1. 当序列基本走势呈现无规则上升或下降并反复时,将其归为无漂移项自回归过程;
  2. 当序列基本走势呈现明显的随时间递增或递减且趋势并不太陡峭时,将其归为带漂移项自回归过程;
  3. 当序列基本走势随时间快速递增时,则将其归为带趋势项回归过程。

对应检验回归式为:

  1. 无漂移项自回归过程: Y t = ρ Y t − 1 + ε t , Y 0 = 0 Y_t=\rho Y_{t-1} + \varepsilon_t, \quad Y_0=0 Yt=ρYt1+εt,Y0=0
  2. 带漂移项自回归过程: Y t = μ + ρ Y t − 1 + ε t , Y 0 = 0 Y_t=\mu + \rho Y_{t-1} + \varepsilon_t, \quad Y_0=0 Yt=μ+ρYt1+εt,Y0=0
  3. 带漂移项和趋势项自回归过程: Y t = μ + β t + ρ Y t − 1 + ε t , Y 0 = 0 Y_t=\mu + \beta_t + \rho Y_{t-1} + \varepsilon_t, \quad Y_0=0 Yt=μ+βt+ρYt1+εt,Y0=0
    其中 μ \mu μ是常数项, β t \beta_t βt是趋势项, ε t \varepsilon_t εt为白噪声无自相关性。
  • 原假设 H 0 : ρ = 1 H_0: \rho = 1 H0:ρ=1(存在单位根,为非平稳时间序列);
  • 备择假设 H 1 : ρ < 1 H_1: \rho < 1 H1:ρ<1(不存在单位根,时间序列是平稳的:不含截距项和趋势项的平稳/含截距项的平稳/含截距项和趋势平稳);

若检验统计量大于临界值( P P P值大于显著性水平 α \alpha α),不能拒绝原假设,序列是非平稳的;
若检验统计量小于临界值( P P P值小于显著性水平 α \alpha α),拒绝原假设,序列是平稳的。

2.2 ADF检验

D F DF DF检验公式为一阶自回归过程,为了能适用于高阶自回归过程的平稳性检验,迪基等1984年对 D F DF DF检验进行了一定的修正,引入了更高阶的滞后项, A D F ADF ADF的检验回归式修正为:

  1. 无漂移项自回归过程: Y t = ρ Y t − 1 + ∑ i = 1 k C i △ Y t − i + ε t , Y 0 = 0 Y_t=\rho Y_{t-1} + \sum_{i=1}^{k}C_i\bigtriangleup Y_{t-i} + \varepsilon_t, \quad Y_0=0 Yt=ρYt1+i=1kCiYti+εt,Y0=0
  2. 带漂移项自回归过程: Y t = μ + ρ Y t − 1 + ∑ i = 1 k C i △ Y t − i + ε t , Y 0 = 0 Y_t=\mu + \rho Y_{t-1} + \sum_{i=1}^{k}C_i\bigtriangleup Y_{t-i} + \varepsilon_t, \quad Y_0=0 Yt=μ+ρYt1+i=1kCiYti+εt,Y0=0
  3. 带漂移项和趋势项自回归过程: Y t = μ + β t + ρ Y t − 1 + ∑ i = 1 k C i △ Y t − i + ε t , Y 0 = 0 Y_t=\mu + \beta_t + \rho Y_{t-1} + \sum_{i=1}^{k}C_i\bigtriangleup Y_{t-i} + \varepsilon_t, \quad Y_0=0 Yt=μ+βt+ρYt1+i=1kCiYti+εt,Y0=0
    其中 μ \mu μ是常数项, β t \beta_t βt是趋势项, ε t \varepsilon_t εt为白噪声无自相关性。

假设条件不变:

  • 原假设 H 0 : ρ = 1 H_0: \rho = 1 H0:ρ=1(存在单位根,为非平稳时间序列);
  • 备择假设 H 1 : ρ < 1 H_1: \rho < 1 H1:ρ<1(不存在单位根,时间序列是平稳的:不含截距项和趋势项的平稳/含截距项的平稳/含截距项和趋势平稳);

检验流程同 D F DF DF检验一致。若要严格判断序列是否是宽平稳的,可以直接检验是否不含截距项和趋势项平稳;若不能拒绝原假设(如 p > 0.05 p>0.05 p>0.05),序列非平稳,此时仍有必要检验序列是否是趋势平稳的。非平稳且非趋势平稳,可以使用一阶差分等平稳化方法处理后再做检验,弱势趋势平稳,困于过度差分则不宜使用差分方式平稳化。

import numpy as np
from matplotlib import pyplot as plt

np.random.seed(123)

y = np.random.standard_normal(size=100)
for i in range(1, len(y)):
    y[i] = 1 + 0.1*i + y[i]

plt.figure(figsize=(12, 6), dpi=300)
plt.plot(y)
plt.show()

在这里插入图片描述

from arch.unitroot import ADF
adf = ADF(y)
print(adf.summary().as_text())

adf = ADF(y, trend='ct')
print(adf.summary().as_text())
   Augmented Dickey-Fuller Results   
=====================================
Test Statistic                 -0.739
P-value                         0.836
Lags                                5
-------------------------------------

Trend: Constant
Critical Values: -3.50 (1%), -2.89 (5%), -2.58 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.
   Augmented Dickey-Fuller Results   
=====================================
Test Statistic                 -9.963
P-value                         0.000
Lags                                0
-------------------------------------

Trend: Constant and Linear Time Trend
Critical Values: -4.05 (1%), -3.46 (5%), -3.15 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.

arch包中 A D F ADF ADF检验可指定trend = "n"(不含截距项和时间趋势项)、trend = "c"(含截距项)、trend = "ct"(含截距项和时间趋势项)、trend = "ctt"(含截距项、时间趋势项和二次型时间趋势项),分别对应不同平稳类型的检验。

再来看看GDP季节差分前后数据是否为平稳:

# 数据在第一个代码块中
from arch.unitroot import ADF
adf = ADF(gdp)
print(adf.summary().as_text())

adf = ADF(gdp_diff)            # 差分后平稳
print(adf.summary().as_text())
   Augmented Dickey-Fuller Results   
=====================================
Test Statistic                  2.606
P-value                         0.999
Lags                               12
-------------------------------------

Trend: Constant
Critical Values: -3.55 (1%), -2.91 (5%), -2.59 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.
   Augmented Dickey-Fuller Results   
=====================================
Test Statistic                 -3.651
P-value                         0.005
Lags                                8
-------------------------------------

Trend: Constant
Critical Values: -3.55 (1%), -2.91 (5%), -2.59 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.
# 数据在第一个代码块中
from arch.unitroot import ADF
adf = ADF(gdp, trend='ct')        # 差分前非趋势平稳
print(adf.summary().as_text())
   Augmented Dickey-Fuller Results   
=====================================
Test Statistic                 -2.358
P-value                         0.402
Lags                                4
-------------------------------------

Trend: Constant and Linear Time Trend
Critical Values: -4.10 (1%), -3.48 (5%), -3.17 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.

2.3 PP检验

Phillips和Perron(1988)提出了一种非参数检验方法,主要是为了解决残差项中潜在的序列相关和异方差问题,其检验统计量的渐进分布和临界值与ADF检验相同。同样出现较早,假设条件一样,用法相似,可作为ADF检验的补充。

假设条件不变:

  • 原假设 H 0 : ρ = 1 H_0: \rho = 1 H0:ρ=1(存在单位根,为非平稳时间序列);
  • 备择假设 H 1 : ρ < 1 H_1: \rho < 1 H1:ρ<1(不存在单位根,时间序列是平稳的:不含截距项和趋势项的平稳/含截距项的平稳/含截距项和趋势平稳);

同样构造一个趋势平稳序列,看下PP检验结果:

import numpy as np
from arch.unitroot import PhillipsPerron

np.random.seed(123)

y = np.random.standard_normal(size=100)
for i in range(1, len(y)):
    y[i] = 1 + 0.1*i + y[i]


pp = PhillipsPerron(y)             # 10%显著水平下平稳
print(pp.summary().as_text())

pp = PhillipsPerron(y, trend='ct')   # 1%显著水平下趋势平稳
print(pp.summary().as_text())
     Phillips-Perron Test (Z-tau)    
=====================================
Test Statistic                 -2.825
P-value                         0.055
Lags                               12
-------------------------------------

Trend: Constant
Critical Values: -3.50 (1%), -2.89 (5%), -2.58 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.
     Phillips-Perron Test (Z-tau)    
=====================================
Test Statistic                -10.009
P-value                         0.000
Lags                               12
-------------------------------------

Trend: Constant and Linear Time Trend
Critical Values: -4.05 (1%), -3.46 (5%), -3.15 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.

2.4 DF-GLS检验

DF-GLS检验,是Elliot,Rothenberg,and Stock 1996年提出的一种单位根检验方法,全称Dickey-Fuller Test with GLS Detredding,即“使用广义最小二乘法去除趋势的检验”,是目前最有功效的单位根检验。

DF-GLS检验利用广义最小二乘法,首先对要检验的数据进行一次“准差分”,然后利用准差分的数据对原序列进行去除趋势处理,再利用ADF检验的模型形式对去除趋势后的数据进行单位根检验,但此时ADF检验模型中不再包含常数项或者时间趋势变量。

  • 原假设:序列存在单位根(时间序列是非平稳的);
  • 备择假设:序列不存在单位根(时间序列是平稳的或趋势平稳的)

同样构造一个趋势平稳序列来看下检验效果(DF-GLS检验trend只能指定为cct):

import numpy as np
from arch.unitroot import DFGLS

np.random.seed(123)

y = np.random.standard_normal(size=100)
for i in range(1, len(y)):
    y[i] = 1 + 0.1*i + y[i]

dfgls = DFGLS(y)
print(dfgls.summary().as_text())

dfgls = DFGLS(y, trend='ct')            # 趋势平稳
print(dfgls.summary().as_text())
      Dickey-Fuller GLS Results      
=====================================
Test Statistic                  1.186
P-value                         0.945
Lags                                4
-------------------------------------

Trend: Constant
Critical Values: -2.77 (1%), -2.15 (5%), -1.83 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.
      Dickey-Fuller GLS Results      
=====================================
Test Statistic                 -7.565
P-value                         0.000
Lags                                0
-------------------------------------

Trend: Constant and Linear Time Trend
Critical Values: -3.62 (1%), -3.04 (5%), -2.74 (10%)
Null Hypothesis: The process contains a unit root.
Alternative Hypothesis: The process is weakly stationary.

2.5 KPSS检验

KPSS检验是由Kwiatkowski, Phillips, and Shin 1992年提出的,与之前的检验方法相比,最大的不同点就是它的原假设是平稳序列或趋势平稳序列,而备择假设是存在单位根。

  • 原假设:序列不存在单位根(时间序列是平稳的或趋势平稳的)
  • 备择假设:序列存在单位根(时间序列是非平稳的)
import numpy as np
from arch.unitroot import KPSS

np.random.seed(123)

y = np.random.standard_normal(size=100)
for i in range(1, len(y)):
    y[i] = 0.1 + y[i-1] + y[i]

kpss = KPSS(y)
print(kpss.summary().as_text())

kpss = KPSS(y, trend='ct')
print(kpss.summary().as_text())
    KPSS Stationarity Test Results   
=====================================
Test Statistic                  1.393
P-value                         0.000
Lags                                5
-------------------------------------

Trend: Constant
Critical Values: 0.74 (1%), 0.46 (5%), 0.35 (10%)
Null Hypothesis: The process is weakly stationary.
Alternative Hypothesis: The process contains a unit root.
    KPSS Stationarity Test Results   
=====================================
Test Statistic                  0.114
P-value                         0.115
Lags                                5
-------------------------------------

Trend: Constant and Linear Time Trend
Critical Values: 0.22 (1%), 0.15 (5%), 0.12 (10%)
Null Hypothesis: The process is weakly stationary.
Alternative Hypothesis: The process contains a unit root.

KPSS检验中原假设为不存在单位根。默认检验趋势类型下P值为0.000,拒绝原假设,存在单位根,序列非平稳。指定trend="ct"后,P值不拒绝原假设,认为序列趋势平稳,检验错误。以上几种检验均不能100%保证检验正确,PP检验可认为是ADF检验的补充,KPSS检验同样也可和其他检验一同使用,当均认为是平稳或趋势平稳时方判定为平稳。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch】学习记录分享13——OCR(Optical Character Recognition,光学字符识别)

[TOC](OCR(Optical Character Recognition,光学字符识别)) 1. OCR资源汇总 OCR(Optical Character Recognition,光学字符识别)指提取图像中的文字信息&#xff0c;通常包括文本检测和文本识别。 文字检测&#xff1a;将图片中的文字区域位置检测出来&#xff08;如图1(b)所示…

怎么寄快递可以便宜一点,怎么领快递优惠券?

随着网购越来越多了&#xff0c;人们对于寄快递的需求也越来越大啦。那么&#xff0c;怎么样寄快递才便宜呢&#xff1f;今天&#xff0c;就让有十年网店经验的小编来告诉你。忒别是最近又临近年关&#xff0c;人民喜悦的心情越来越迫切。亲戚朋友之间互送礼品的往来也越来越密…

C++ 多态向下转型详解

文章目录 1 . 前言2 . 多态3 . 向下转型3.1 子类没有改进父类的方法下&#xff0c;去调用该方法3.2 子类有改进父类的方法下&#xff0c;去调用该方法3.3 子类没有改进父类虚函数的方法下&#xff0c;去调用改方法3.4 子类有改进父类虚函数的方法下&#xff0c;去调用改方法3.5…

【设计模式之美】面向对象分析方法论与实现(二):需求到接口实现的方法论

文章目录 一. 进行面向对象设计1. 划分职责>需要有哪些类2. 定义类及其属性和方法3. 定义类与类之间的交互关系4. 将类组装起来并提供执行入口 二. 如何进行面向对象编程&#xff1f;1. 接口实现2. 辩证思考与灵活应用 【设计模式之美】面向对象分析方法论与实现&#xff08…

【JUC】Volatile关键字+CPU/JVM底层原理

Volatile关键字 volatile内存语义 1.当写一个volatile变量时&#xff0c;JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。 2.当读一个volatile变量时&#xff0c;JMM会把该线程对应的本地内存设置为无效&#xff0c;直接从主内存中读取共享变量 所以volatile…

力扣hot100 二叉树展开为链表 递归 特殊遍历

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f469;‍&#x1f3eb; 参考题解 &#x1f60b; 将左子树插入到右子树上 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* …

基于ssm毕业设计选题系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本毕业设计选题系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

ubuntu20快速搭建自己的git代码仓库环境

##安装docker groupadd docker apt install docker.io ##用户添加到docker组 sudo usermod -aG docker ${USER} ##用户添加sudo cat /etc/sudoers apt install vim ##sudoers文件权限可以写 chmod uw sudoers vim sudoers ##在root底下添加这行&#xff0c;yym改到自…

Android 项目适配64位架构后,腾讯X5内核加载失败解决方案

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 在接入最新腾讯X5内核后&#xff0c;发现初始化会失败&#xff0c;在APP模块的build.gra…

关于设计模式的一点总结

一、GoF 23种设计模式 1.分类 GoF 23种设计模式可分为几类&#xff1a;创建型、结构型和行为型。如下表 分类设计模式创建型单例模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式结构型代理模式、适配器模式、装饰者模式、桥接模式、组合模式、门面模式、享元模式行…

js——json对象相互转化——js基础积累

js——json对象相互转化——js基础积累 需求场景解决步骤1&#xff1a;定义一个变量接收此字段&#xff0c;方便处理解决步骤2&#xff1a; { 外面的双引号要去掉解决步骤3&#xff1a;使用正则去除参数中的\\解决步骤4&#xff1a;如果此参数必须以{开头&#xff0c;以}结尾解…

[C#]C# OpenVINO部署yolov8目标检测模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 抛弃了前几代模型的 Anchor-Base。 YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来&#xff0c;领域内的研究者们…

Transformer简略了解

Transformer出自论文&#xff1a;《Attention Is All You Need》 该论文的提出&#xff0c;对RNN循环神经网络产生了冲击&#xff0c;席卷了自然语言处理(NLP)领域&#xff0c;后续的GPT4.0版本也是根据其进行训练优化的 一、Transformer主体架构 可以简化分为Encoders和Decod…

绿色能源、引领未来-2024武汉国际氢能源及燃料电池产业展览会

绿色能源、引领未来-2024武汉国际氢能源及燃料电池产业展览会 2024武汉国际氢能源及燃料电池产业博览会 2024 Wuhan International Hydrogen Energy and Fuel Cell Industry Expo 同期举办&#xff1a;2024世界汽车制造技术暨智能装备博览会 时间&#xff1a;2024.8.14-16 …

Vue: 多个el-select不能重复选择相同属性

一、场景 1.需求&#xff1a; 用户可自由选择需要修改的对象并同时修改多个属性&#xff0c;需要校验修改对象不能重复选择&#xff0c;但是可供修改属性是固定的 2.目标效果&#xff1a; 二、实现 1.主要代码&#xff1a; <template><el-selectv-model"se…

uniapp中组件库丰富的Switch 开关选择器使用方法

目录 #平台差异说明 #基础使用 #加载中 #禁用switch #自定义尺寸 #自定义颜色 #自定义样式 #异步控制 API #Switch Props #Switch Event 选择开关用于在打开和关闭状态之间进行切换。 #平台差异说明 App&#xff08;vue&#xff09;App&#xff08;nvue&#xff0…

全国计算机等级考试| 二级Python | 真题及解析(10)

一、选择题 1.要实现将实数型变量a的值保留三位小数,以下python可以实现的是( ) A.a%0.001 B.a//0.001 C.round(a,3) D.round(3,a) 2.在Python中要交换变量a和b中的值,应使用的语句组是( )。 A…

[足式机器人]Part2 Dr. CAN学习笔记-Ch01自动控制原理

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Ch01自动控制原理 1. 开环系统与闭环系统Open/Closed Loop System1.1 EG1: 烧水与控温水壶1.2 EG2: 蓄水与最终水位1.3 闭环控制系统 2. 稳定性分析Stability2.1 序言2.2 稳定的分类2.3 稳定的对…

ssm基于echarts的基金交易网站的设计与实现论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

Dockerfile + harbor详解

Dockerfileharbor私服 一 docker工作流 1. docker管理流程 2. 镜像仓库阿里 (1) 阿里私有仓库 公司内部管理项目涉及到的所有docker镜像&#xff0c;会使用私有仓库的方式&#xff0c;集中管理。 (2) 创建阿里Docker仓库 登录阿里云创建私有仓库 网址&#xff1a;容器镜像服…
最新文章