【Python计量】自相关性(序列相关性)的检验

2023-11-09


此文章首发于微信公众号:Python for Finance

链接:https://mp.weixin.qq.com/s/BuZg3hY8APHBr_vjmubn5g

多元线性回归模型的基本假设之一就是模型的随机干扰项相互独立或不相关。如果模型的随机干扰项违背了相互独立的基本假设,则称为存在序列相关性(自相关性)。

我们以伍德里奇《计量经济学导论:现代方法》的”第12章 时间序列回归中序列相关和异方差性“的案例12.4为例,使用BARIUM中的数据来进行序列相关性的检验。

import wooldridge as woo
import pandas as pd
import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf

barium = woo.dataWoo('barium')
T = len(barium)
barium.index = pd.date_range(start='1978-02', periods=T, freq='M')

reg = smf.ols(formula='np.log(chnimp) ~ np.log(chempi) + np.log(gas) +'
                      'np.log(rtwex) + befile6 + affile6 + afdec6',
              data=barium)
results = reg.fit()
resid = results.resid#获取残差

一、图示法

由于残差 e t e_t et可以作为扰动项 u t u_t ut的估计,因此,如果存在序列相关性,必然会由残差项 e t e_t et反映出来,因此可利用 e t e_t et的变化图形来判断随机干扰项的序列相关性。

(一)滞后图

滞后图,就是将残差 e t e_t et和残差滞后n阶的散点图,需要用到pandas的lag_plot函数。

from pandas.plotting import lag_plot

lag_plot函数用法:

lag_plot(series, lag=1, ax=None, **kwds)
主要参数:
series :时间序列数据
lag : 滞后阶数,默认为1
ax : Matplotlib的子图对象,可选

我们绘制残差 e t e_t et和残差滞后1阶 e t − 1 e_{t-1} et1的自相关图,代码如下:

lag_plot(resid, lag=1)
plt.show()

如果我们要绘制残差 e t e_t et与其滞后1-4阶的图,代码如下:

fig, axes = plt.subplots(1, 4, figsize=(10,3), sharex=True, sharey=True, dpi=100)#1行4列的画布
for i in range(4):
    lag_plot(resid,lag=i+1, ax=axes[i])
    axes[i].set_title(f'Lag{i+1}')

结果如下:

(二)自相关图

自相关图的绘制,可以使用pandas库的autocorrelation_plot函数

from pandas.plotting import autocorrelation_plot

生成图片的横轴是滞后阶数,纵轴是自相关系数。

我们绘制残差项的自相关图,代码如下:

autocorrelation_plot(resid)
plt.show()

(三)自相关图和偏自相关图

自相关系数和偏自相关系数的区别

  • 假设时间序列数据 y t y_t yt
  • y t = α 0 + α 1 y t − 3 y_t=\alpha_0+\alpha_1y_{t-3} yt=α0+α1yt3,这个 α 1 \alpha_1 α1就是, y t y_t yt y t − 3 y_{t-3} yt3的自相关系数。
  • y t = α 0 + α 1 y t − 1 + α 2 y t − 2 + α 3 y t − 3 y_t=\alpha_0+\alpha_1y_{t-1}+\alpha_2y_{t-2}+\alpha_3y_{t-3} yt=α0+α1yt1+α2yt2+α3yt3,这个 α 3 \alpha_3 α3就是, y t y_t yt y t − 3 y_{t-3} yt3的偏自相关系数。

自相关图和偏自相关图,建议使用statsmodels包的plot_acf, plot_pacf函数。

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf #自相关图、偏自相关图
import matplotlib.pyplot as plt

plot_acf、plot_pacf函数的参数意义

plot_acf(x, ax=None, lags=None, *, alpha=0.05, use_vlines=True, adjusted=False, fft=False, missing='none', title='Autocorrelation', zero=True, auto_ylims=False, bartlett_confint=True, vlines_kwargs=None, **kwargs)
plot_pacf(x, ax=None, lags=None, alpha=0.05, method=None, use_vlines=True, title='Partial Autocorrelation', zero=True, vlines_kwargs=None, **kwargs)
x:一维的数据序列。
lags:滞后阶数,若未提供,则取np.arange(len(corr))

我们绘制残差项的自相关图,代码如下:

 plot_acf(resid,lags=20) 
 plt.show()

上图反映了resid序列的各阶自相关系数的大小,该图的高度值对应的是各阶自相关系数的值,蓝色区域是95%置信区间,这两条界线是检测自相关系数是否为0时所使用的判别标准:当代表自相关系数的柱条超过这两条界线时,可以认定自相关系数显著不为0。观察上图可知,1、2、3阶的自相关系数都在蓝色范围外,也就是落在了95%置信区间外,所以初步判断该序列可能存在短期的自相关性。

我们还可以绘制出残差项的偏自相关系数图,代码如下:

plot_pacf(resid,lags=20)
plt.show()

我们若希望将自相关系数图和偏自相关系数图合并成一张图,可以定义函数。

import matplotlib.pyplot as plt
def acf_pacf_plot(timeseries,lags):
    fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 4), dpi=100)
    plot_acf(timeseries, lags=lags,ax=axes[0])
    axes[0].set_title('acf') #设置自相关图标题,也可不设置,采用默认值Autocorrelation
    plot_pacf(timeseries,lags=lags,ax=axes[1])
    axes[1].set_title('pacf') #设置偏自相关图标题,也可不设置,采用默认值Partial Autocorrelation
    plt.show()

若我们需要对残差项做20阶的自相关图、偏自相关图,则调用上述函数即可,参数timeseries设置为resid,参数lags设置为20。

acf_pacf_plot(resid,20)

结果如下:

二 、DW检验法

DW检验是较早提出的自相关检验,现已不常用。它的主要缺点是只能检验一阶自相关,且必须在解释变量满足严格外生性的情况下才成立。

from statsmodels.stats.stattools import durbin_watson
print(f'D-W检验值为{durbin_watson(results.resid)}')
#返回结果:
D-W检验值为1.4584144308481417

三、Breusch-Godfrey检验

BG检验克服了DW检验的缺陷,适合于高阶序列相关及模型中存在滞后被解释变量的情形。

考虑如下多元线性模型:
y t = β 0 + β 1 x t 1 + β 2 x t 2 + . . . + β k x t k + u y_t=\beta_0+\beta_1x_{t1}+\beta_2x_{t2}+...+\beta_kx_{tk}+u yt=β0+β1xt1+β2xt2+...+βkxtk+u
若怀疑随机干扰项存在p阶序列相关:
u t = ρ 1 u t − 1 + ρ 2 u t − 2 + . . . + ρ p u t − p + ε t u_t=\rho_1u_{t-1}+\rho_2u_{t-2}+...+\rho_pu_{t-p}+\varepsilon_t ut=ρ1ut1+ρ2ut2+...+ρputp+εt
检验原假设:
H 0 : ρ 1 = ρ 2 = . . . = ρ p = 0 H_0:\rho_1=\rho_2=...=\rho_p=0 H0:ρ1=ρ2=...=ρp=0
由于 u t u_t ut不可测,故用 e t e_t et替代,并引入解释变量,进行如下辅助回归:
e t = γ 1 x t 1 + γ 2 x t 2 + . . . + γ k x t k + δ 1 e t − 1 + δ 2 e t − 2 + . . . + δ p e t − p + ε t e_t=\gamma_1x_{t1}+\gamma_2x_{t2}+...+\gamma_kx_{tk}+\delta_1e_{t-1}+\delta_2e_{t-2}+...+\delta_pe_{t-p}+\varepsilon_t et=γ1xt1+γ2xt2+...+γkxtk+δ1et1+δ2et2+...+δpetp+εt
无自相关的原假设相当于检验:
H 0 : γ 1 = γ 2 = . . . = γ p = 0 H_0:\gamma_1=\gamma_2=...=\gamma_p=0 H0:γ1=γ2=...=γp=0
BG检验的步骤:

(1)将 y t y_t yt x t 1 x_{t1} xt1, x t 2 x_{t2} xt2,…, x t k x_{tk} xtk做回归,求出OLS残差 e t e_t et

(2)将 e t e_t et x t 1 x_{t1} xt1, x t 2 x_{t2} xt2,…, x t k x_{tk} xtk, e t − 1 e_{t-1} et1, e t − 2 e_{t-2} et2,…, e t − p e_{t-p} etp做回归

(3)计算 e t − 1 e_{t-1} et1, e t − 2 e_{t-2} et2,…, e t − p e_{t-p} etp联合显著的F检验

(一)手动编制函数进行BG检验

barium['resid'] = results.resid
barium['resid_lag1'] = barium['resid'].shift(1)
barium['resid_lag2'] = barium['resid'].shift(2)
barium['resid_lag3'] = barium['resid'].shift(3)

reg_manual = smf.ols(formula='resid~ np.log(chempi) + np.log(gas) +'
                             'np.log(rtwex) + befile6 + affile6 + afdec6+'
                             'resid_lag1 + resid_lag2 + resid_lag3', data=barium)
results_manual = reg_manual.fit()

hypotheses = ['resid_lag1 = 0', 'resid_lag2 = 0', 'resid_lag3 = 0']
ftest_manual = results_manual.f_test(hypotheses)
F_statistic = ftest_manual.fvalue
F_pval = ftest_manual.pvalue
print(f'BG检验的F统计量: {F_statistic}')
print(f'BG检验的p值: {F_pval}')

'''
BG检验的F统计量: 5.122907054069363
BG检验的p值: 0.0022898028329663344
'''

我们可以查看辅助回归的回归结果:

print(results_manual.summary())
'''
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  resid   R-squared:                       0.116
Model:                            OLS   Adj. R-squared:                  0.048
Method:                 Least Squares   F-statistic:                     1.719
Date:                Sat, 14 May 2022   Prob (F-statistic):             0.0920
Time:                        09:28:33   Log-Likelihood:                -104.56
No. Observations:                 128   AIC:                             229.1
Df Residuals:                     118   BIC:                             257.6
Df Model:                           9                                         
Covariance Type:            nonrobust                                         
==================================================================================
                     coef    std err          t      P>|t|      [0.025      0.975]
----------------------------------------------------------------------------------
Intercept        -14.3691     20.656     -0.696      0.488     -55.273      26.535
np.log(chempi)    -0.1432      0.472     -0.303      0.762      -1.078       0.792
np.log(gas)        0.6233      0.886      0.704      0.483      -1.131       2.378
np.log(rtwex)      0.1787      0.391      0.457      0.649      -0.596       0.953
befile6           -0.0859      0.251     -0.342      0.733      -0.583       0.411
affile6           -0.1221      0.255     -0.479      0.632      -0.626       0.382
afdec6            -0.0668      0.274     -0.244      0.808      -0.610       0.476
resid_lag1         0.2215      0.092      2.417      0.017       0.040       0.403
resid_lag2         0.1340      0.092      1.454      0.148      -0.048       0.317
resid_lag3         0.1255      0.091      1.378      0.171      -0.055       0.306
==============================================================================
Omnibus:                        6.375   Durbin-Watson:                   1.947
Prob(Omnibus):                  0.041   Jarque-Bera (JB):                5.978
Skew:                          -0.444   Prob(JB):                       0.0503
Kurtosis:                       3.576   Cond. No.                     9.78e+03
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 9.78e+03. This might indicate that there are
strong multicollinearity or other numerical problems.
'''

由于辅助回归使用了 e t − p e_{t-p} etp损失了p个样本观测值,故样本容量仅有 ( n − p ) (n-p) (np)。Davidson and MacKinnon(1993)建议,把残差中因滞后而缺失的项用其期望值0来代替,以保持样本容量为n。

则代码修改为:

barium['resid'] = results.resid
barium['resid_lag1'] = barium['resid'].shift(1).fillna(0) #将残差缺失项用0来代替
barium['resid_lag2'] = barium['resid'].shift(2).fillna(0) #将残差缺失项用0来代替
barium['resid_lag3'] = barium['resid'].shift(3).fillna(0) #将残差缺失项用0来代替

reg_manual = smf.ols(formula='resid~ np.log(chempi) + np.log(gas) +'
                             'np.log(rtwex) + befile6 + affile6 + afdec6+'
                             'resid_lag1 + resid_lag2 + resid_lag3', data=barium)
results_manual = reg_manual.fit()

hypotheses = ['resid_lag1 = 0', 'resid_lag2 = 0', 'resid_lag3 = 0']
ftest_manual = results_manual.f_test(hypotheses)
F_statistic = ftest_manual.fvalue
F_pval = ftest_manual.pvalue
print(f'BG检验的F统计量: {F_statistic}')
print(f'BG检验的p值: {F_pval}')

'''
BG检验的F统计量: 5.124662239772509
BG检验的p值: 0.002263719767131574
'''

我们可以查看辅助回归的回归结果:

print(results_manual.summary())
'''
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  resid   R-squared:                       0.113
Model:                            OLS   Adj. R-squared:                  0.047
Method:                 Least Squares   F-statistic:                     1.708
Date:                Sat, 14 May 2022   Prob (F-statistic):             0.0942
Time:                        09:26:57   Log-Likelihood:                -106.95
No. Observations:                 131   AIC:                             233.9
Df Residuals:                     121   BIC:                             262.7
Df Model:                           9                                         
Covariance Type:            nonrobust                                         
==================================================================================
                     coef    std err          t      P>|t|      [0.025      0.975]
----------------------------------------------------------------------------------
Intercept        -13.1407     20.351     -0.646      0.520     -53.431      27.149
np.log(chempi)    -0.0435      0.457     -0.095      0.924      -0.948       0.862
np.log(gas)        0.5436      0.876      0.621      0.536      -1.190       2.277
np.log(rtwex)      0.2024      0.386      0.525      0.601      -0.561       0.966
befile6           -0.0815      0.251     -0.325      0.746      -0.578       0.415
affile6           -0.1243      0.254     -0.489      0.626      -0.628       0.379
afdec6            -0.0776      0.274     -0.283      0.777      -0.619       0.464
resid_lag1         0.2186      0.090      2.416      0.017       0.039       0.398
resid_lag2         0.1341      0.092      1.458      0.147      -0.048       0.316
resid_lag3         0.1257      0.091      1.381      0.170      -0.054       0.306
==============================================================================
Omnibus:                        5.672   Durbin-Watson:                   1.955
Prob(Omnibus):                  0.059   Jarque-Bera (JB):                5.196
Skew:                          -0.414   Prob(JB):                       0.0744
Kurtosis:                       3.516   Cond. No.                     9.76e+03
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The condition number is large, 9.76e+03. This might indicate that there are
strong multicollinearity or other numerical problems.
'''

(二)调用statsmodels的函数进行BG检验

从statsmodels库的stats子模块的diagnostic工具中导入acorr_breusch_godfrey

from statsmodels.stats.diagnostic import acorr_breusch_godfrey #BG检验

acorr_breusch_godfrey函数的参数意义及返回结果

acorr_breusch_godfrey(res, nlags=None, store=False)
参数介绍:
res : 回归结果,对该模型的残差进行自相关检验。
nlags : 滞后阶数
store : 默认为False;若为True,则会返回ResultsStore

返回值:
lm : LM统计量值
lm_pvalue : LM统计量的p值,若p值小于显著性水平,则拒绝无自相关性的原假设,即存在自相关性
fvalue : F统计量值       
f_pvalue : F统计量对应的p值,若p值小于显著性水平,则拒绝无自相关性的原假设,即存在自相关性
res_store:ResultsStore,若store为True则返回

Davidson and MacKinnon(1993)建议,把残差中因滞后而缺失的项用其期望值0来代替,以保持样本容量为n。acorr_breusch_godfrey函数采用的是Davidson-MacKinnon方法。

对上述模型做BG检验,代码如下:

bg_result = acorr_breusch_godfrey(results,nlags=3) 
bg_lm_statistic = bg_result[0]
bg_lm_pval = bg_result[1]
bg_F_statistic= bg_result[2] 
bg_F_pval = bg_result[3]
bg_test_output=pd.Series(bg_result[0:4],index=['bg_lm_statistic','bg_lm_pval','bg_F_statistic','bg_F_pval'])   
print(bg_test_output)

'''
bg_lm_statistic    14.768156
bg_lm_pval          0.002026
bg_F_statistic      5.124662
bg_F_pval           0.002264
dtype: float64
'''

同时,我们可以查看BG检验的辅助回归模型结果:

print(bg_result[4].resols.summary())
'''
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.113
Model:                            OLS   Adj. R-squared:                  0.047
Method:                 Least Squares   F-statistic:                     1.708
Date:                Fri, 13 May 2022   Prob (F-statistic):             0.0942
Time:                        20:26:10   Log-Likelihood:                -106.95
No. Observations:                 131   AIC:                             233.9
Df Residuals:                     121   BIC:                             262.7
Df Model:                           9                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         -6.5703     10.175     -0.646      0.520     -26.715      13.575
x1            -0.0435      0.457     -0.095      0.924      -0.948       0.862
x2             0.5436      0.876      0.621      0.536      -1.190       2.277
x3             0.2024      0.386      0.525      0.601      -0.561       0.966
x4            -0.0815      0.251     -0.325      0.746      -0.578       0.415
x5            -0.1243      0.254     -0.489      0.626      -0.628       0.379
x6            -0.0776      0.274     -0.283      0.777      -0.619       0.464
x7            -6.5703     10.175     -0.646      0.520     -26.715      13.575
x8             0.2186      0.090      2.416      0.017       0.039       0.398
x9             0.1341      0.092      1.458      0.147      -0.048       0.316
x10            0.1257      0.091      1.381      0.170      -0.054       0.306
==============================================================================
Omnibus:                        5.672   Durbin-Watson:                   1.955
Prob(Omnibus):                  0.059   Jarque-Bera (JB):                5.196
Skew:                          -0.414   Prob(JB):                       0.0744
Kurtosis:                       3.516   Cond. No.                     7.48e+16
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The smallest eigenvalue is 1.33e-29. This might indicate that there are
strong multicollinearity problems or that the design matrix is singular.
'''

acorr_breusch_godfrey函数做辅助回归的因变量为残差项,自变量为[1,A,1,B],其中A为解释变量,B为残差滞后项。

在以上回归结果中,y代表残差项,x1-x6代表解释变量,x8-x10代表残差滞后项,(const+x7)代表常数项。

我们可以在acorr_breusch_godfrey函数的基础上,编制一个能返回自相关性检验结果的函数。

def bg_test(results,nlags):
    bg_result = acorr_breusch_godfrey(results,nlags=3) 
    bg_lm_statistic = bg_result[0]
    bg_lm_pval = bg_result[1]
    bg_F_statistic= bg_result[2] 
    bg_F_pval = bg_result[3]
    bg_test_output=pd.Series(bg_result[0:4],index=['bg_lm_statistic','bg_lm_pval','bg_F_statistic','bg_F_pval'])   
    return bg_test_output

#失败,先放着。同时,我们可以编制一个函数,可以

p_value_threshold=0.1
autocorrelation_results = pd.DataFrame(columns=['Autocorrelation test', 'lag', 'p-value', 'outcome']
for i in range(0, 5):
	lag=i+1
    bg_F_pval = acorr_breusch_godfrey(results, nlags=lag)[3]
    autocorrelation_results.iloc[i] = ['Breusch-Godfrey', lag, bg_F_pval, 'Pass' if bg_F_pval> p_value_threshold else 'Fail']

四、Ljung-Box检验

LB检验:

  • H0假设:序列的每个值是独立的,即纯随机
  • HA假设:序列之间不是独立的,即存在相关性

从statsmodels库的stats子模块的diagnostic工具中导入acorr_ljungbox

from statsmodels.stats.diagnostic import acorr_ljungbox #LB检验

acorr_ljungbox函数的参数意义及返回结果

acorr_ljungbox(x, lags=None, boxpierce=False, model_df=0, period=None, return_df=True, auto_lag=False)
y : 一维的数据序列
lags:滞后阶数,若lags为整数,则会对[1,lags]区间的所有滞后阶数做LB检验;若lags为列表,则只展示列表内的滞后阶数的LB检验结果。
boxpierce:默认False,为True时表示除返回LB统计量还会返回Box和Pierce的Q统计量

返回结果为:
lbvalue: Ljung-Box检验统计量
pvalue: Ljung-Box检验统计量对应的p值,若p值小于显著性水平,则拒绝纯随机序列的原假设,即序列不是纯随机序列
bpvalue:Box-Pierce检验统计量
bppvalue: Box-Pierce检验统计量对应的p值,若p值小于显著性水平,则拒绝纯随机序列的原假设

对上述模型做LB检验,代码如下:

print(acorr_ljungbox(results.resid, lags=[10])) #对10阶做LB检验
'''
      lb_stat  lb_pvalue
10  24.445298   0.006502
'''
print(acorr_ljungbox(results.resid, lags=10)) #对1-10阶均做LB检验
'''
      lb_stat  lb_pvalue
1    9.821711   0.001725
2   16.072867   0.000323
3   21.332651   0.000090
4   21.532752   0.000248
5   21.571232   0.000632
6   21.619047   0.001419
7   22.365714   0.002197
8   22.973536   0.003398
9   24.381012   0.003738
10  24.445298   0.006502
'''

LB检验的p值小于0.01, 则拒绝纯随机序列的原假设,即序列不是纯随机序列。

参考文献:

Python时间序列分析https://www.machinelearningplus.com/time-series/time-series-analysis-python/

Python与时间序列https://blog.csdn.net/yuanzhoulvpi/article/details/120384708

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python计量】自相关性(序列相关性)的检验 的相关文章

  • Psycopg / Postgres:连接随机挂出

    我正在使用 psycopg2 作为我当前正在开发的cherrypy 应用程序 并使用 cli 和 phpgadmin 来手动处理一些操作 这是Python代码 One connection per thread cherrypy threa
  • 如何在 Linux 中显示进程状态(阻塞、非阻塞)

    有没有办法查询 Linux 进程表中进程的状态 以便能够演示执行查询时进程是正在运行还是被阻止 我的目标是从进程或程序的 外部 执行此操作 因为我希望从操作系统进程的角度来理解这一点 但欢迎任何想法 这是Python代码阻塞的过程 impo
  • Python - 包和设置文件

    我有一个 python 包 需要从我的项目目录中提取设置 这是我的项目当前的结构 Project bin mypackage package files Project myproject project files start py se
  • 如何在 pygame 中聚焦光线或如何仅绘制窗口的某些圆形部分?

    对于这一点 如果您熟悉它 请想想 超级马里奥制造2 中嘘关卡中的黑暗模式 我试图在角色周围创建一个圆形聚光灯 这也将使圆圈范围内的任何内容都可见 例如部分站在地板上 敌人或场景中的任何其他物体 我的计划是首先绘制圆圈 聚光灯 然后绘制场景
  • 确定Python模块中的函数是否可用

    我正在研究一些使用Python套接字的代码socket fromfd http docs python org library socket html socket fromfd功能 但是 此方法并非在所有平台上都可用 因此我正在编写一些后
  • 将列表传递给 PyCrypto 中的 AES 密钥生成器

    我尝试使用 Pycrypto 生成 AES 密钥 但收到以下错误 类型错误 列表 不支持缓冲区接口 对于以下声明 aescipher AES new mykey AES MODE ECB mykey 属于类型list并包含 18854347
  • Python 函数可能会引发哪些异常? [复制]

    这个问题在这里已经有答案了 Python 中有什么方法可以确定 内置 函数可能引发哪些异常 例如 文档 http docs python org lib built in funcs html http docs python org li
  • Cython:为什么 size_t 比 int 快?

    更改某些 Cython 变量的类型int输入size t可以显着减少某些功能的时间 30 但我不明白为什么 例如 cimport numpy as cnp import numpy as np def sum int cnp int64 t
  • 对于 pygtk 应用程序来说,什么是好的嵌入式浏览器?

    我计划在我的 pygtk 应用程序中使用嵌入式浏览器 并且我正在 gtkmozembed 和 pywebkitgtk 之间进行辩论 两者之间有什么引人注目的区别吗 还有我不知道的第三种选择吗 应该注意的是 我不会使用它来访问网络上的内容 我
  • 监控单个文件

    我需要监控 使用watchdog http pythonhosted org watchdog index html 单个文件 而不是整个目录 避免监视整个目录的最佳方法是什么 我想this http pythonhosted org wa
  • 在Python中引用不带换行符的长字符串

    我正在尝试在 Python 中编写一个长字符串 该字符串显示为 OptParser 选项的帮助项 在我的源代码 py 文件中 我想放置换行符 以便我的代码不会花费新行 但是 我不希望这些换行符影响代码运行时该字符串的显示方式 例如 我想写
  • 收到的标签值 1 超出了 [0, 1) 的有效范围 - Python、Keras

    我正在使用具有张量流背景的 keras 开发一个简单的 cnn 分类器 def cnnKeras training data training labels test data test labels n dim print Initiat
  • 在 Django/python 中,如何将内存缓存设置为无限时间?

    cache set key value 9999999 但这并不是无限的时间 def get memcache timeout self timeout Memcached deals with long gt 30 days timeou
  • 仅对某些行的不同大小的两个 pandas 数据帧的列进行求和

    我有两个 pandas 数据框 如下所示 df1 n column1 0 5 0 0 0 1 6 0 0 0 2 7 0 0 0 3 8 0 0 0 4 9 0 0 0 5 10 0 0 0 df2 n column2 0 6 0 1 0
  • Python 类方法的示例用例是什么?

    我读了Python 中的类方法有什么用 https stackoverflow com questions 38238 what are class methods in python for但那篇文章中的例子很复杂 我正在寻找 Pytho
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • 在字典理解中为 locals() 添加下标失败并出现 KeyError [重复]

    这个问题在这里已经有答案了 我对 Python 的奇怪行为感到困惑locals 基本上我想从字典中获取一个项目locals 在字典理解中 但它失败了 这是一个非常基本的事情 所以 gt gt gt foo 123 gt gt gt bar
  • 使用 Pandas 和 Group By 绘制堆叠直方图

    我正在使用如下所示的数据集 Gender Height Width Male 23 4 4 4 Female 45 4 4 5 我想可视化高度和宽度的堆叠直方图 我希望每个图有两个堆叠的直方图 每个性别一个 这是文档中的堆叠直方图 如果存在
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件
  • Python列表问题

    我在使用 python 列表时遇到问题 简化版本是 mylist1 some items in a list mylist2 mylist1 mylist1 pop i mylist insert i item print mylist1

随机推荐

  • Sortablejs实现vue项目表格拖动排序

    1 简介 Sortable js是一款优秀的js拖拽库 支持ie9及以上版本ie浏览器和现代浏览器 也可以运行在移动触摸设备中 不依赖jQuery 支持 Meteor AngularJS React Vue Knockout框架和任何CSS
  • Tomcat 9 免安装版 配置教程

    1 首先进入到https tomcat apache org 下载对应版本的TomCat 的 zip 包 解压到PC某个文件夹中 2 进入到目录 解压路径 bin 下 如我的路径参考 D Tomcat apache tomcat 9 0 6
  • Android 使用 okhttp3和retrofit2 进行单文件和多文件上传

    目录 前言 一 单文件上传 二 多文件上传 总结 前言 开发项目中需要进行单文件多文件的上传功能 下面演示的ApiResponse是自己分装的返回值 要根据自己的项目来完成 使用的mvvm框架 kotlin协程 看下大体思路和传参形式 仅供
  • leetcode刷题(9.24总结)

    1 相交链表 题目描述 https leetcode cn problems intersection of two linked lists class Solution def getIntersectionNode self head
  • 不平衡数据处理技术——RUSBoost

    RUSBoost是一个非常简单的针对不平衡数据集的算法 算法如其名 就是RUS Boost RUS random undersampling 随机欠抽样 随机从数据集中抽取一定量的多数类样本和少数类组成平衡分布的训练数据集 Boost 指的
  • linux 给lvm磁盘扩容

    目录 linux 给lvm磁盘扩容 扩容步骤 确认可用空间 创建新的物理卷 将物理卷添加到现有的卷组中 扩展逻辑卷 linux 给lvm磁盘扩容 早上到公司发现磁盘满了 挂载点是一个lvm 跟领导确认后决定先扩容再清理 原先是1T 决定扩容
  • oRACLE错误怎么办,Oracle的常见错误及解决办法

    ORA 12528 TNS listener all appropriate instances are blocking new connections ORA 12528问题是因为监听中的服务使用了动态服务 实例虽然启动 但没有注册到监
  • 解决adbd cannot run as root in production builds问题

    1 验证你的手机是否已经root了 adb shell su 行命令后 变为 即 表示root 成功 2 安装adbd insecure apk adb install adbd insecure apk 3 设置 打开应用将Enable
  • 集成公告|多链NFT游戏Blockchain Monster Hunt即将上线Moonbeam

    用户现可在Moonbase Alpha测试网体验Blockchain Monster Hunt游戏 并计划将于明年Moonbeam启动后上线Moonbeam平台 Moonbeam宣布支持多链NFT游戏Blockchain Monster H
  • 【弱网测试】

    弱网测试简介 1 测试方法及工具 随着互联网的快速发展 越来越多的应用核心功能需要联网实现 现在的网络制式有2G 3G 4G 5G 还有越来越多的公众WiFi 不同的网络环境和网络制式的差异都会对用户使用APP造成一定的影响 弱网测试作为健
  • [Codeforces 1579G] Minimal Coverage

    You are given n lengths of segments that need to be placed on an infinite axis with coordinates The first segment is pla
  • 爬虫获取电影数据----以沈腾参演电影为例

    数据可视化 分析实战 1 1 沈腾参演电影数据获取 1 2 电影数据可视化分析 文章目录 数据可视化 分析实战 前言 1 网页分析 2 构建数据获取函数 2 1 网页数据获取函数 2 2 网页照片获取函数 3 获取参演影视作品基本数据 4
  • Linux的c编程-文件节点的打开与读写操作

    1 open 打开文件 相关函数 read write fcntl close link stat umask unlink fopen 表头文件 include
  • Python实现简单爬虫功能

    在我们日常上网浏览网页的时候 经常会看到一些好看的图片 我们就希望把这些图片保存下载 或者用户用来做桌面壁纸 或者用来做设计的素材 我们最常规的做法就是通过鼠标右键 选择另存为 但有些图片鼠标右键的时候并没有另存为选项 还有办法就通过就是通
  • 如何用php请求gpt接口

    定义GPT接口地址和参数 url https api openai com v1 completions data array prompt gt Once upon a time max tokens gt 5 temperature g
  • 清除HTML的超链接样式,Markdown导出HTML,删除超链接下划线和字体样式

    使用Markdown生成的HTML含有超链接的下划线 如下图 将Markdown导出的HTML文件放置在Blog文章中时 Markdown文件的超链接下划线样式会影响整个页面的超链接下划线样式 如下图 修改方法是 将Markdown导出的H
  • Quaternion.Euler(0, 90, 0)*Vector3(0.0, 0.0, -10)

    Quaternion Euler x y z 返回一个绕x轴旋转x度再绕y轴旋转y度再绕z轴旋转z度的Quaternion 因此Quaternion Euler 0 90 0 返回一个绕y轴旋转90度的旋转操作 Quaternion作用于V
  • nginx 显示php错误日志,nginx php-fpm 输出php错误日志-php教程

    nginx是一个web效劳器 因而nginx的access日记只有对拜访页面的记载 没有会有php 的 error log信息 nginx把对php的申请发给php fpm fastcgi过程来解决 默许的php fpm只会输入php fp
  • 2021蓝桥杯模拟赛-删除字符

    题目 题目链接 题解 贪心 贪心思路 将整个字符串视为若干段降序排列的子串 即 从左边开始向右遍历 遇到逆序的就删除 再对新的串从头遍历找逆序 不停地重复整个过程是为了保证删除的尽可能靠前 贪心 如果整个字符串都顺序了 但是还要删 那么就从
  • 【Python计量】自相关性(序列相关性)的检验

    文章目录 一 图示法 一 滞后图 二 自相关图 三 自相关图和偏自相关图 二 DW检验法 三 Breusch Godfrey检验 一 手动编制函数进行BG检验 二 调用statsmodels的函数进行BG检验 四 Ljung Box检验 此