结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例...

原文链接:http://tecdat.cn/?p=25044

在本文,我们将考虑观察/显示所有变量的模型,以及具有潜在变量的模型点击文末“阅读原文”获取完整代码数据)。

1 简介

第一种有时称为“路径分析”,而后者有时称为“测量模型”。

2 进行简单的多元回归

SEM 在很大程度上是回归的多元扩展,我们可以在其中一次检查许多预测变量和结果。SEM 还提供了检查潜在结构(即未观察到某些变量的地方)的创新。更具体地说,“结构方程”的概念是指我们有不止一个方程表示协方差结构模型,其中我们(通常)有多个标准变量和多个预测变量。

让我们从简单的演示开始,即 SEM 中的路径模型可以概括简单的单预测变量-单结果回归。我们将检查人口普查中的房价数据查看文末了解数据获取方式,以回顾相关和回归中的重要概念。这是一个很好的回归数据集,因为有许多相互依赖的变量:犯罪,污染物,财产的年龄,等等。

这是上面的单预测回归,作为路径模型运行 :

#示例数据集,包括按人口普查区划分的房屋价格snml <- otnou %>% dplyr::select(cmv, #住宅的中位数价值,以千计crm, #城镇人均犯罪率nx, #一氧化氮浓度lsa, #地位较低的人的比例rd #靠近放射状的高速公路) %>% mutate
summary

f0ba362a25175528ef03151a569aee49.png

为了比较,输出 lm()

summary(lm

8324a4078b23eb2c44dd8074bb7a3443.png

回归系数是相同的(好!)。有一点需要注意的是,我们在输出中没有截距。这突出了一个重要的区别,基本的SEM经常关注数据的协方差结构。我们也可以包括均值,但通常只有当它与我们的科学问题有关时才会包括。例如,男性和女性在抑郁症潜在因素的平均水平上是否有差异?

相关视频

2.1 平均结构

在这种情况下,我们可以要求在模型中包含平均值(截距)  mean=TRUE

summary(lvt)

2838f8a5461948f469e456c85957fc1e.png

2.2 模型参数详情

"参数 "表提供了模型中哪些参数是必须被估计,以及用户在模型语法中要求哪些参数的重要摘要。

Table(mv)

b83d1ad5443cfeef19e3f1706b5d2e91.png

在这里,'user' 指的是我们在语法中明确请求的参数,'free' 列的非零值表示模型自由估计的参数。

请注意,我们也可以得到标准化的估计值 。这是 SEM 中更复杂的主题,因为我们可以仅针对潜在变量(std.lv)或观察变量和潜在变量(std.all)进行标准化。后者通常是 SEM 论文中作为标准化估计报告的内容。

2.3 标准化估计

stdln(v, type)

b37e08e0803141b479cf98ab7aea813e.png

3 住房数据的路径分析

让我们看一些更有趣的东西。如果我们认为一氧化氮 ( nox) 水平也可以预测房价和犯罪率,那会怎样?我们可以将其添加为标准多元回归中的预测变量。

此外,我们假设房屋靠近大型高速公路(rad)预测一氧化氮的浓度,从而预测较低的房价?

模型语法可以指定为:

sem(ln2, data=toSll)

模型看起来像这样

Paths

b30ce29bde3c14138464b82bf0008e39.jpeg


点击标题查阅往期内容

986e27b317d5da0f65d607a9f9367c27.jpeg

结构方程模型 SEM 多元回归和模型诊断分析学生测试成绩数据与可视化

outside_default.png

左右滑动查看更多

outside_default.png

01

35ca68e20f65996db2ea903e3c61e42a.jpeg

02

8c66483016dfe64197c3bea054612240.jpeg

03

1622a1b89da6fc0ed4eee430e752fe39.jpeg

04

8946add58afbde7714fb9c3e0eea1f4a.jpeg

这是文本输出:

summary

4cb02f1ae6479ae600730e7a0db40285.png

需要注意的几点:

  • 请注意警告:“一些观察到的差异(至少)是其他差异的 1000 倍。”

  • 我们的假设似乎都得到了支持。

  • 模型卡方非常显着,表明全局模型拟合不佳。

3.1 调整

当模型中变量的方差显着不同(数量级)时,参数估计可能会遇到困难。鉴于上述警告,让我们来看看。

Table(lv2)

6bff79d9452a193a86587497d2d53a43.png

看起来nox的比例要比其他预测因素小得多,可能是因为它的单位是千万分之一!我们可以通过乘以常数来重新调整变量的比例。在这种情况下,我们可以通过乘以一个常数来重新划分变量的尺度。这对模型的拟合或解释没有影响--我们只需要回忆一下新单位代表什么。另外,如果重要的话,你可以随时从参数估计中除掉常数来恢复原来的单位。

Bonl <- BoSal %>% mutate
summary(lv2)

cbdf016eb1543fa14f2e9da3c3406bed.png

3.2 模型拟合指数

您可以在模型摘要输出中使用更详细的全局拟合指数。

summary(fit.me=TRUE)

b42fb13819f8fa0c36cff7d50d4d55cd.png

您还可以使用以下方法获取适合的度量(包括其他统计信息)

99f5b5298eb9fd75e1de742eff720e10.png

144564ce3b304649a06b2be560da557a.png

这些看起来很差:CFI < .95(甚至远低于 0.9),而 RMSEA 远高于我们认为“还可以”的 0.08 水平。

3.3 模型诊断

这表明需要更详细地检查拟合。首先,我们可以查看模型隐含和观察到的协方差矩阵之间的不匹配。

从概念上讲,结构方程建模 (SEM) 的目标是测试变量间协方差的理论动机模型是否提供了数据的良好近似。

更具体地说,我们试图测试一个解析模型(由测量和/或结构成分组成)对观察到的协方差矩阵的再现程度。从形式上看,我们正在寻求建立一个模型,其模型隐含的协方差矩阵接近于样本(观测)协方差矩阵。

SXX≈Σ (θ ^)

我们可以从中获得这些信息, 进一步诊断模型不匹配。

首先,模型隐含的协方差矩阵:

fitted

23d67719e5b0937930d17cd79399f66e.png

我们也许可以用相关(标准化)单位更容易地解释这一点。也就是说,变量之间的模型隐含相关性是什么?可以访问许多模型详细信息,包括:

d92a7132866c731d3e2964ca53290eb1.png

这与观察到的相关性相比如何?

a15d2647763d0b48ab4d995c5f42d970.png

特别是,获得双变量关联的不匹配。在这里,我们要求相关单位中的残差,这比处理未标准化的协方差更直观。请注意,这是上面观察到的模型隐含矩阵的减法。大的正值表明模型低估了相关性;大的负值表明相关性的过度预测。通常值 |r>.1|值得仔细考虑。

a610772ddb720c064b63e109a0d29886.png

因此,该模型显着低估了 nox 和 crim之间的 关联 。

我们也可以将问题可视化:

plot_matix

08de7a126466ce17f2b17b662b56bc12.png

3.4 修改指数

让我们看一下修改索引,看看我们是否可以通过释放一个或多个路径来修复不匹配,特别是nox  和 log_crim之间的 关系 。

5b07bb4bcf4d6f79ee3da6fee78a525f.png

在这里,我们看到如果我们允许 log_crim 预测 ,模型拟合会大大提高nox。这是否具有理论上的意义是另一回事(而且可能更重要)。出于演示目的,让我们接受需要自由估计这条路径。

#我们可以使用添加参数来添加一个路径,同时保持所有其他模型元素不变
ma3 <- update
summary

8de1cbf5cd0bc2f6dd548162754de129.png

affc9edab9883643cb405def6dafce98.png

18bd64301d784ea45f3a5ab5a7e72d20.png

这在拟合方面看起来好多_了_。 犯罪与我们之前错过的氮氧化物水平之间存在强烈的正相关关系。从概念上讲,这表明犯罪与房价之间的关系部分是由犯罪对污染物水平的影响所调节的。相比之下,靠近高速公路对房价的影响似乎完全由污染物水平调节(正如这条路径没有大的修正指数所示)。

a9219ce0c0633f5baac3fa201b9200bb.jpeg

4 检验调解

如果支持上述模型并且我们对测试中介特别感兴趣,我们通常希望 1)专门检验间接效应,以及 2)使用一种方法对提供可信 _p_值的中介效应进行显着性检验。正如前段时间所指出的(例如,MacKinnon 等人,2007 年),在 SEM 框架中对中介的适当检验是基于  构成中介的成分路径的_乘积。_在这里,我们在两个中介链中只有两条路径:

radlog\_crim→nox→cmedv→nox→cmedvrad→nox→cmedvlog\_crim→nox→cmedv

为了具体测试这些,我们需要在 模型中定义新参数,这些参数是各个路径的产物。这可以使用 =: 运算符('定义为')来完成。请注意,这确实会改变模型中自由参数的数量,因为这些只是现有参数的乘积。为了看哪个估计要相乘,我们必须通过将变量预乘以任意标签来使用“参数标签”。在这里,我将“a1”和“a2”用于 X -> M 路径,将“b1”用于 M -> Y 路径。

i_1 := a1*b1
i_2 := a2*b1
'
summary(mv4)

799fa4f4bf6cc9925c3cca64f1b4724a.png

68ad2b63587f5e6f73e540eb11211fab.png

这看起来很有希望,但正如我上面提到的,这种用于测试中介的“delta 方法”众所周知是有问题的,因为间接路径乘积项的抽样分布不正常。Bootstrapping 是解决这种问题的一种常见解决方法,它不会对感兴趣系数的分布(即两个中介路径的采样分布)做出强有力的假设。我们可以使用参数来实现这一点 se = "bootstrap"。默认情况下,这将使用 1000 个非参数引导样本重新估计参数估计的标准误差。您可以使用bootstrap 参数更改引导样本的数量

summary

0c68ea21177b0112686e64651a110be4.png

646bf2437657c35e253c733538f2e49e.png

正如我们所怀疑的,这两种间接途径都很重要,表明了调节的证据。

5 带有潜在变量的 SEM

当我们对测试有潜变量的模型感兴趣时,怎么办?通常,这将是一个 "反映性潜变量 "模型,我们认为一个假定的潜变量是由几个(通常是3个以上)显性指标来衡量的。这样的变量通常被称为 "因子 "或 "潜在特质"。在SEM世界中,确认性因子分析是最常见的反映性潜变量模型。

这样的模型中使用=~操作符('测量的')来指定。

让我们以 衡量智力数据查看文末了解数据获取方式‍为例,其中有 9 个项目可以衡量智力的不同方面:视觉、文本和速度。观察到的变量是 x1-x9

这是一个“经典”数据集,用于许多关于结构方程建模 (SEM) 的论文和书籍,包括一些商业 SEM 软件包的手册。数据包括来自两所不同学校的七年级和八年级儿童的心理能力测试成绩。在我们的数据集版本中,仅包含原始 26 个测试中的 9 个。通常针对这 9 个变量提出的 CFA 模型由三个潜在变量(或因子)组成,每个潜在变量具有三个指标:

  • 由 3 个变量测量的 视觉 因子 x1: x2 和 x3

  • 由 3 个变量测量的 文本 因子 x4: x5 和 x6

  • 由 3 个变量测量的 速度 因子 x7: x8 和 x9

a2b26b531e54cb014431bd6fef81ff4f.jpeg

一个 3 因素 CFA 示例

5.1 指定因子模型

指定此模型的相应 语法如下:

visual =~ x1 + x2 + x3textual =~ x4 + x5 + x6speed =~ x7 + x8 + x9

在此示例中,模型语法仅包含三个“潜在变量定义”。

5.2 典型 CFA 输出

默认情况下,第一个指标具有 1 的固定负载以缩放基础因子(“单位负载标识”)。让我们来看看:

summary

321d4a0587bf75ac68731180643a150d.png

d6abee7c6da729b2e99935a5db2b2f98.png

5310a221bd46ed17c739c735fb37c5cd.png

c07eee08b2284e87d251c00437d83d68.png

5.3 CFA 的修正指数

modification

0d975cecbecacf5a7e7e07975dce9bab.png

修正指数表明 x9 可能会加载 visual 因子,或者 x7 可能 x9 具有唯一的残差相关性。这又是一个理论上的问题,但我们可以测试修改后的模型以进行演示。我们使用 ~~ 运算符来指定模型中的(残差)方差或协方差项。

summary(fit2, fit.meas)

5d23a337b0e109544fae66ef7c68054e.png

仍然不是很好。我们可以重新检查修改指数

modificatio

d11815b4d106f7da72285680058ac31f.png

现在是时候咨询你关于潜在结构应该是什么的预测或理论了。这是一个模型构建和模型比较问题,很大程度上超出了本教程的范围。然而,我们至少可以测试这些模型之间的全局拟合差异。这些是嵌套模型(因为 x7 ~~ x9 在更简单的模型中残差协方差为 0),这允许我们使用似然比检验(也称为模型卡方差):

anova

0f7246fa7a6a7673695e63395f0990f7.png

该 anova 函数将使用 LRT 方法测试整体拟合差异。LRT 的自由度是自由参数数量的差异(此处为 1)。

5.4 详细看模型

我们可以查看自由参数在矩阵规范中的位置。自由参数被编号(按顺序),零表示可能的参数,固定为零(即不估计)。

inspect

8330b0ccc1a829c31fb3dadc044b5784.png

e73bc68a6fc6731a55c11373d041510b.png

我们还可以看到矩阵形式的参数估计:

inspect( "est")

16ee5480dcc35bb6878ec24e7f21ed51.png

a76fc60a6cffbe4a01257ff83bdd0ffe.png

5.5 结构模型呢?

上面的 CFA 只包含一个测量模型——一个具有因子之间相关性的三因子模型。如果我们还想看看学校的年级在多大程度上可以预测智力因素(视觉、文本、速度)的水平,该怎么办?

summary( fit.measures=TRUE)

e478c8a02b60b8c2857c7a16bfa5717e.png

4851b4a95d1753ad1044b15117e28df5.png

a42fcc2146751cda3e34a34a2075a3b3.png

19bb266304c256baaeecdb8383819ecb.png

semPath

0ecb80065c264efc81db02092b4d92d3.png

正如人们所预料的那样,高年级的孩子在潜在智力因素上得分更高。

最后,如果我们想在结构模型中使用一般与特定(残差)方差怎么办?为了让它们在相同的参数矩阵中适当地发挥作用,我们为感兴趣的项目残差创建了一个单指标潜在变量。

x1d =~ 1*x1 #定义干扰因子,将1.0加载到指标上(如RAM的符号)。
x1 ~~ 0*x1 #指标的零残差(所有加载到干扰因素上)。#根据标准模型,干扰因素与因子不相关
x1d ~~ 0*视觉
x1d ~~ 0*文本
x1d ~~ 0*速度#我们现在可以看看X1的具体方差和视觉因素是否能唯一地预测人的年龄summary(fitne)

1496777a84726671a85be9345cda17d9.png

0d9cc434bb6a9b12b3ba7141c4d55ce2.png

aba4bc9252b27b7656f26111fa67560c.png

f34d1f8d01778e5c52bbe3fc1bd59ca0.png

这里没有骰子,但你明白了。

6 分类数据

支持使用阈值结构来正式处理内生的分类数据。这源于这样的观点:一个项目的基本分布是连续的(高斯),但我们的离散化(如二元或多态)在特定的点上降低了这个维度。

bdb062bd63fe6656930ff3395bfac3a1.jpeg

我们有4个级别的变量(1、2、3、4),但只有三个阈值--每个阈值指定两个相邻级别(锚)之间的边界。如果我们有动力来说明这个结构,这些阈值可以被指定为模型中的自由参数。这实质上是在估计ττ参数沿着连续体的落点;它们不需要均匀分布

如果我们对一个项目有5个以上的锚,我们也许可以把它当作连续的,而不会出现重大的错误。请注意,这就是我们在最初的CFA中所做的事情--我们将x1-x9视为正态/连续分布。事实证明,它们是(即不是高度离散的)。

hist(Holz$x1)

eceea398ced2042b62931335e21fb34b.png

但是,如果我们有具有 2、3 或 4 个值的数据,将变量视为连续变量通常是不合适的,并且可能导致有偏差、不准确的结果。

通常,具有阈值结构的模型是使用“加权最小二乘”(WLS)估计器而不是最大似然(ML;SEM 中的典型估计器)估计的。均值和协方差调整的 WLS(又名“WLSMV”)通常是可行的方法,因为它可以比典型的 WLS 更好地处理多元分布的非正态性。

6.1 CFA分类数据演示

这是一个快速演示——如果我们的每个智力测试项目只有三分法怎么办?

hist

a9694e9910fbabe4dfba027e8727ca89.png

我们用有序参数告诉R哪些项目是有序分类的。

summary(fiat)

a842ba056ba14959c0281b8724f58977.png

4fffc0026441c0d4b5f27b0fe421308b.png

fa7e6865fe359da071143ecb242566fc.png

9a605b4e65f54bfcbd269b6dc4025036.png

9e5bafa8adb9c5f099f461fe0a9cdff3.png

032ce42148b583f6fd87a7d7d7bbb234.png

请注意,我们现在对每个项目都有阈值估计,其中较高的数值表示对一个类别和下一个类别之间的边界有较高的估计,而这个潜在的连续体据说是该项目的基础。

7 估计

最后, 可以用许多不同的算法来估计模型中的参数。“ML”是连续数据的默认值,“WLS”是(部分)分类数据的默认值。

这些估计器的'稳健'通常会在整个模型的卡方检验和标准误差的层面上对非正态性(以及潜在的其他东西,如聚类)进行稳健处理,因此,显著性检验。让你的统计数据对非正态性具有鲁棒性通常是一件好事......因此,许多人将使用 "MLR "作为他们对连续数据的首选,而 "WLSMV "则用于分类数据。

可以使用 estimator 参数指定它。

summary(filr, fit.measures=TRUE)

37f22b7f0358a5a03bb81ba6b142989c.png

542617b8e40e092acebebd576c071492.png

53693415c3a10604ed8193103504e835.png

75adafe140596d172d92230a90b2fe9e.png

我们现在有一列“稳健”的全局拟合指数,并注意标准误差是使用 Huber-White 估计器估计的(对非正态性和聚类稳健)。

8 缺失数据

默认情况下, 通常会删除缺少任何变量的样本。但是您可能会丢失大量数据,并且因为它可能会给数据带来偏差。虽然远远超出了本教程,但通常最好在数据随机缺失的假设下使用所谓的全信息最大似然 (FIML),即给定变量的缺失可能与其他变量相关,但是而不是变量本身。使用 FIML,估计尝试根据具有可用数据的案例来估计所有参数。

以下是默认情况下发生的情况:

0eb45841aadb77fbd6af575e976fc203.png

a4399c3bb290e8264fe45d210f65c915.png

ab2b04b52c39b94574915a23d4a8ccbe.png

b790f6ebde7f517d0478b90b3dd338f0.png

注意输出:

c6b1cf0239376b6054c54c961dc2a7fc.png

结果不理想。

好的,下面是FIML

summary(fiiml, fit.measures=TRUE)

3f697456b36f6f0dfebf066ee1af1eac.png

10dc14ea4a4b17d8b6793911d926d23c.png

ff3905070fc5d135bab0a72bb7d36e4c.png

b4db484f490b2f3c0415999f5ed13dd7.png

ade5e19847fb65d64ca15af64eb9ccab.png

结果更理想:

19c8d4c50513e3338e035483b7112c80.png

同样,关于缺失数据的理论和正式方法超出了本教程的范围,但我希望这能让大家了解到如何在sem中处理缺失问题。

数据获取

在下面公众号后台回复房价数据“智力数据”,可获取完整数据。


d131bd82f665e0dbd85bcb45393c6ccc.png

本文摘选R语言结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例,点击“阅读原文”获取全文完整资料。

cd00c7000e30a40f9f5f3b53deb54bb0.jpeg

2edc74182a4f30d872d9ef4e13cfd659.png

点击标题查阅往期内容

结构方程模型 SEM 多元回归和模型诊断分析学生测试成绩数据与可视化

在R语言中实现sem进行结构方程建模和路径图可视化

R语言结构方程SEM中的power analysis 效能检验分析

stata如何处理结构方程模型(SEM)中具有缺失值的协变量

R语言基于协方差的结构方程拟合的卡方检验

R语言基于协方差的SEM结构方程模型中的拟合指数

R语言:结构方程模型、潜变量分析

R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归

R语言进行支持向量机回归SVR和网格搜索超参数优化

R语言贝叶斯MCMC:用rstan建立线性回归模型分析汽车数据和可视化诊断

R语言深度学习:用keras神经网络回归模型预测时间序列数据

R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例

R语言使用虚拟变量(Dummy Variables) 回归分析工资影响因素

欲获取全文文件,请点击左下角“阅读原文”。

76bfe78235d7d37d905891eca9ccd115.gif

e5d4d7e78af608db84930de879efb1cd.png

b0f410207ddb5d48ff9e7e09f4ac6ead.jpeg

18d85e8e143df59b72c91a334fce857f.png

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

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

相关文章

这应该是最全的机器学习模型可解释性的综述

模型可解释性方面的研究&#xff0c;在近两年的科研会议上成为关注热点&#xff0c;因为大家不仅仅满足于模型的效果&#xff0c;更对模型效果的原因产生更多的思考&#xff0c;这样的思考有助于模型和特征的优化&#xff0c;更能够帮助更好的理解模型本身和提升模型服务质量。…

【LeetCode-中等题】22. 括号生成

文章目录 题目方法一&#xff1a;递归&#xff1a;方法二&#xff1a;递归回溯 题目 方法一&#xff1a;递归&#xff1a; 递归入口 空子结果集&#xff0c;左括号数目&#xff08;初始为0&#xff09;&#xff0c;右括号数目&#xff08;初始为0&#xff09; 递归出口 若左括…

【数字通信原理】笔记(持续更新ing)

通信原理学习笔记&#xff0c;课程见b站: 由于教材不同&#xff0c;我们的课程使用的是《数字通信原理》主编:李白萍 版本&#xff0c;因此此笔记以我们的教材为主整理up主的笔记。 详情见:通信原理 文章目录 第一章 绪论1. 通信的基本概念2. 信息的量度3. 通信系统的性能指标 …

用C语言实现牛顿摆控制台动画

题目 用C语言实现牛顿摆动画&#xff0c;模拟小球的运动&#xff0c;如图所示 拆解 通过控制台API定位输出小球运动的只是2边小球&#xff0c;中间小球不运动&#xff0c;只需要固定位置输出左边小球上升下降时&#xff0c;X、Y轴增量一致。右边小球上升下降时&#xff0c;X、…

了解静电消除器离子风嘴的作用

离子风嘴在工业用途中很广泛。属于用压缩气系列的除静电的一种设备。具有安装简单、性能稳定、风速强劲、除静电迅速的特点。 离子风嘴可以产生许多的带着有正电荷负电荷的气体&#xff0c;被压缩气吹出&#xff0c;可以把设备上带的电荷中和掉。当设备表面上带有的电荷为负电荷…

索尼 toio™ 应用创意开发征文 | 如何用Python控制Q宝进行机器人擂台赛

你是否曾经想过&#xff0c;如果能用编程来控制真实的物体&#xff0c;那该有多有趣&#xff1f;如果能让一个小方块按照你的指令来移动、旋转、闪烁&#xff0c;那该有多酷&#xff1f;如果能让一个小方块和其他小方块互动&#xff0c;那该有多神奇&#xff1f;这些想法&#…

软件测试/测试开发丨跨平台 api 对接 学习笔记

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/27139 跨平台 api 对接 测试平台需求 稳定 功能 调用脚本报告获取分布式支持 API 调用 开源 Jenkins 环境准备 Jenkins 满足所有调度平台的需求 需…

MindFusion.Diagramming for ASP.NET MVC 4.2 Crack

ASP.NET MVC 4.2 的 MindFusion.Diagramming 添加对多个图表页面和选项卡式图表视图的支持。 2023 年 9 月 8 日 - 16:57新版本 特征 多个图表页面-添加了DiagramDocument 类&#xff0c;它表示图表页面或工作表的集合。 可以将新页面添加到文档中&#xff0c;并且可以删除或重…

容器编排学习(一)容器技术

一 容器 1 Linux 容器的起源 容器的起源可以追溯到1979年 UNIX 系统中提供的chroot命令&#xff0c;容器的最初的设计目标是为了隔离计算机中的各类资源以便降低软件开发、测试阶段的风险&#xff0c;或者充当蜜罐&#xff0c;吸引黑客的攻击&#xff0c;以便监视黑客的行为…

Logstash--logstash-syslog-putput插件安装及使用

这篇文章讲的是如何在Linux服务器上安装logstash-syslog-output插件及使用&#xff0c;是集网上之大成&#xff0c;择选出一条正确有效简短的路。 安装 插件logstash-syslog-output&#xff0c;如果你的logstash没有&#xff0c;则需要安装。 查看logstash是否含有这个插件的…

二分搜索树节点的查找(Java 实例代码)

目录 二分搜索树节点的查找 Java 实例代码 src/runoob/binary/BinarySearchTreeSearch.java 文件代码&#xff1a; 二分搜索树节点的查找 二分搜索树没有下标, 所以针对二分搜索树的查找操作, 这里定义一个 contain 方法, 判断二分搜索树是否包含某个元素, 返回一个布尔型变…

SpringMVC之CRUD------增删改查

目录 前言 配置文件 pom.xml文件 web.xml文件 spring-context.xml spring-mvc.xml spring-MyBatis.xml jdbc.properties数据库配置文件 generatorConfig.xml log4j2日志文件 后台 PageBaen.java PageTag.java 切面类 biz层 定义一个接口 再写一个实现类 …

C++设计模式_03_模板方法Template Method

文章目录 1. 设计模式分类1.1 GOF-23 模式分类1.2 从封装变化角度对模式分类 2. 重构&#xff08;使用模式的方法&#xff09;2.1 重构获得模式 Refactoring to Patterns2.2 重构关键技法 3. “组件协作”模式4. Template Method 模式4.1 动机&#xff08; Motivation&#xff…

【Linux从入门到精通】通信 | 共享内存(System V)

本篇文章接着上篇文章通信 | 管道通信&#xff08;匿名管道 & 命名管道&#xff09;进行讲解。本篇文章的中点内容是共享内存。 文章目录 一、初识与创建共享内存 1、1 什么是共享内存 1、2 共享内存函数 1、2、1 创建共享内存 shmget 1、2、2 ftok 生成 key 1、2、3 获取共…

YOLO目标检测——红火蚂蚁识别数据集+已标注yolo格式标签下载分享

实际项目应用&#xff1a;目标检测红火蚂蚁识别数据集在农业、生态学、环境保护、城市管理和学术研究等领域都有着广泛的应用。通过准确识别和定位红火蚂蚁&#xff0c;可以帮助我们更好地了解和管理这一入侵物种&#xff0c;从而减少其对环境和经济的负面影响。数据集说明&…

一文看懂微信小程序新版隐私协议(附带弹窗组件)

一、前言 微信小程序近期又迎来了一次改革–9月15日之后如果小程序涉及调用微信的隐私接口获取用户的信息的&#xff0c;需要用户手动同意协议后才可正常调用接口&#xff0c;否则会返回报错信息。 隐私接口目前常用的有&#xff1a;手机号快捷获取、读取照片、获取用户的头像…

【爬虫】实验项目三:验证码处理与识别

目录 一、实验目的 二、实验预习提示 三、实验内容 实验要求 基本要求&#xff1a; 改进要求A&#xff1a; 改进要求B&#xff1a; 四、实验过程 基本要求 五、源码如下 六、资料 一、实验目的 部分网站可能会使用验证机制来阻止用户无效登录或者是验证用户不是用程…

自己设计CPU学习之路——基于《Xilinx FPGA应用开发》

1. 一个32组位宽为32的寄存器堆 框图 代码 regfile.h ifndef __FEGFILE_HEADER__define __REGFILE_HEADER__define HIGH 1b1define LOW 1b0define ENABLE_ 1b0define DISABLE_ 1b1define DATA_W 32define DataBus 31:0define DATA_D 32d…

socket编程

网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合。一般系统网络协议包括五个部分&#xff1a;通信环境&#xff0c;传输服务&#xff0c;词汇表&#xff0c;信息的编码格式&#xff0c;时序、规则和过程。 Socket是应用层和TIP/IP协议簇通…

Middleware ❀ Kafka功能与使用详解

文章目录 1. 概述1.1. 消息队列1.2. 应用场景1.3. 工作模式1.4. 基础结构1.4.1. 结构组件1.4.2. 数据同步1.4.3. ACK机制1.4.4. 分区机制1.4.4.1. 使用Partition Key写入1.4.4.2. 轮询写入 - 默认规则1.4.4.3. 指定Partition写入 1.4.5. Offset偏移量1.4.5.1. 消息顺序性1.4.5.…