├── Intro_RSiena.md ├── Intro_RSiena.pdf ├── LICENSE ├── README.md ├── data1 ├── Kapf1.dat ├── Kapf2.dat ├── Kapferer.txt ├── Siena.txt ├── kapfa_stat.dat ├── kapfat.dat ├── kapfti1.dat ├── kapfti2.dat ├── kapfts1.dat ├── kapfts2.dat └── program.R ├── example1.ipynb └── picture1.png /Intro_RSiena.md: -------------------------------------------------------------------------------- 1 | ## 模型基本原理 2 | 3 | ### SAOM模型简介 4 | 5 | SIENA(Simulation Investigation for Empirical Network Analysis)是一个统计工具,适用于分析纵向网络数据。其主要运用的是一种动态网络模型:**随机行动者导向模型**(Stochastic Actor-Oriented Model,SAOM)。为方便表述,我们通常将在SIENA中实现的SAOM称为“SIENA模型”。 6 | 7 | SAOM模型的主要特点是其“行动者导向”的性质,意味着模型从行动者(即网络节点)的视角来模拟变化。在网络演化中,行动者可能建立、维持或终止与其他行动者的连结。研究者通常假设,行动者的这些决策会受到网络本身的结构、行动者自身以及网络中其他行动者的特性和行为的影响。SAOM模型为我们提供了一种手段,可以量化这些因素在不同观测时期的网络演化中所起的作用及其相关的不确定性。 8 | 9 | SAOM模型可以被视为一个基于行动者的网络演化仿真模型。在该模型中,相邻时点的变化被称为“单元行动”(ministep),一个行动者可以创建或终止一个外向的连结。这些单元行动是依序并且基于概率进行的。通过大量的这样的单元行动,我们可以观察到从一个时间点到另一个时间点的网络演化。行动者的决策将受到当前网络状态的影响,且每一次单元行动的发生都可能改变网络的状态。这种机制使得模型能够反映出网络动态中典型的反馈过程。 10 | 11 | ### SIENA模型类型 12 | 13 | SIENA不仅可以分析单一网络的演化,而且有多种随机行动者导向模型的变体,适用于更复杂的数据结构。这些选项的可用性取决于研究问题以及可用数据的数量和类型。本部分将简要讨论当前已实现的模型类型,以帮助研究者确定他们能够利用随机行动者导向模型进行哪种类型的分析。 14 | 15 | 适合使用RSiena进行分析的最小数据集包括在同一节点集上定义的单个网络的两次观测。在这种情况下,我们能够测试网络结构如何促进其自身的演化。然而,根据可用的数据,可能适用更多的建模选项。目前已实现的随机行动者导向模型适用于以下分析: 16 | 17 | 1. **单模网络的演化**:分析有向或无向单模网络的演化,例如一个班级中的友谊网络(Snijders, 2001)。 18 | 2. **双模网络的演化**:分析双模网络的演化,例如一个班级中的社团成员连结:第一模式是由学生组成,第二模式是由社团组成(Koskinen和Edling, 2012)。 19 | 3. **个体行为的演化**:分析个体行为(如吸烟)的演化。 20 | 4. **单模网络、双模网络和个体行为的共演化**:分析单模网络、双模网络和个体行为的共同演化,例如友谊和吸烟,或友谊和社团成员连结的共同演化(Steglich et al., 2010; Snijders et al., 2013)。 21 | 22 | 在所有这些情况下,数据也可以包括协变量:影响动态的观察变量,但其值本身不被建模。 23 | 24 | 在前两种情况下,可以使用RSiena评估给定单模或双模网络的变化在多大程度上取决于网络结构本身和协变量。第三种选项,即模拟个体行为本身的变化,而不考虑其在网络中的嵌入性,使用较少。对于这类数据,存在许多其他的纵向建模技术。 25 | 26 | 因此,第四种模型类型已广泛应用。分析网络和行为的共同演化允许研究者解决与选择和影响过程相关的问题,例如,是否吸烟者倾向于成为朋友,或者朋友是否倾向于在吸烟习惯上变得相似。SIENA共演化模型的强大之处在于,可以同时考虑网络结构对网络演化、行为实际水平对行为变化、网络结构对行为变化、以及行为实际水平对网络演化的影响。除了网络和行为的共演化,这类随机行动者导向模型还允许对多个网络(例如友谊和建议,友谊和不喜欢,或者它们三者)的联合分析,以及有序多网络(一个网络中的联系假设另一个网络中的联系存在,例如在友谊和最好的朋友关系中)的分析。 27 | 28 | ## 研究工具准备 29 | 30 | 在进行SAOM(Stochastic Actor-Oriented Models)模型研究之前,需要设置好R环境并安装RSiena库。RSiena是一个在R环境中运行的软件包,专门用于分析SAOM模型。 31 | 32 | ```R 33 | # 安装RSiena 34 | install.packages("RSiena") 35 | 36 | # 加载RSiena库 37 | library(RSiena) 38 | ``` 39 | 40 | ## 数据准备 41 | 42 | 在使用SAOM模型前,需要把数据准备成适用于R的格式。以下是一些基本的R函数: 43 | 44 | ```R 45 | # 读取文件中的数据为数据框 46 | df <- read.table(file, header = TRUE, sep = ",") 47 | 48 | # 将数据框转换为矩阵 49 | matrix <- as.matrix(df) 50 | 51 | # 检查对象的类别 52 | class(object) 53 | 54 | # 检查矩阵维度 55 | dim(matrix) 56 | ``` 57 | 58 | ### 网络要求 59 | 60 | SAOM模型中对于网络主要有以下基本要求: 61 | 62 | - **二值网络**:SAOM模型适用于二值网络,即网络连结状态为存在(1)或不存在(0)的网络。 63 | 64 | - **至少两期**:使用SAOM模型至少需要两个时间点的观察数据。 65 | 66 | 数据集中可以包含一个或多个网络。网络可以是单模的或双模的。模态是用节点集标识的。所有单模网络必须具有相同的节点集,也称为“行动者”。如果存在一些单模网络和任何双模网络,则所有双模网络的第一个节点集应该是单模网络的节点集(行动者集)。单模网络和双模网络的选择是通过`sienaDependent()`函数中的`type`参数指定的,对于网络可以设置为`oneMode`或`bipartite`;后者表示双模网络。如果同时存在单模网络和双模依赖网络,则应该首先在`sienaDependent()`调用中指定单模网络。 67 | 68 | 通过`sienaDependent()`进行数据规范时,必须将网络指定为矩阵、数组或稀疏矩阵三元组列表的形式。`sienaDependent()`的帮助页面有使用稀疏矩阵作为输入的示例。 69 | 70 | 对于通过`sienaDataCreateFromSession()`函数规范的数据,允许使用的数据类型是边列表格式、Pajek程序格式和Siena格式的原始边列表。对于节点数量较多(比如大于100)的网络,边列表格式在计算机内存使用上更高效。 71 | 72 | 请注意,`sienaDataCreateFromSession()`仅在RSienaTest中可用。 73 | 74 | 与Pajek或Siena格式相比,稀疏矩阵(可通过`sienaDependent`输入使用)对于运行估计具有相同的效率。三种可能的网络输入格式如下: 75 | 76 | 1. **邻接矩阵** 77 | 78 | 这些可以在`sienaDependent`和`sienaDataCreateFromSession`中使用。 79 | 80 | 在常规的单模网络情况下,邻接矩阵以`n`行和`n`列的矩阵形式给出,包含整数。对角线的值无意义,但必须存在。在双模网络(即具有两个节点集的网络,所有连结在第一个和第二个节点集之间)的情况下,矩阵不必是正方形的,因为第一个集合中的节点数通常不会等于第二个集合中的节点数;而且如果矩阵是正方形的,对角线仍然是有意义的。 81 | 82 | 尽管本节只讨论有向图,但对于单模网络,如果所有观察到的邻接矩阵都是对称的,也可以指定无向网络。这将由SIENA自动检测,然后程序将采用非定向网络的方法。 83 | 84 | 连结的值必须为0、1或NA(不可用=缺失);或者是预设值10或11(见下文)。 85 | 86 | `sienaDependent`的帮助页面通过示例展示了如何使用稀疏矩阵进行规范。 87 | 88 | 2. **Pajek格式** 89 | 90 | 这些可以在`sienaDataCreateFromSession`中使用(仅在RSienaTest中可用)。 91 | 92 | 如果有向图数据文件的扩展名是`.net`,则程序假定数据文件具有Pajek格式。文件应该只与一个观察相关,并且应该包含一个顶点列表(使用关键字`*Vertices`,以及一个弧列表,使用关键字`*Arcs`后面跟随按Pajek规则的数据行。这些关键词必须在不包含其他字符的行中。`s50`数据集的`examples`目录中分发的示例输入文件演示了这种格式。 93 | 94 | 3. **Siena格式** 95 | 96 | 这些可以在`sienaDataCreateFromSession`中使用(仅在RSienaTest中可用)。 97 | 98 | 边列表是一个包含三列或四列的矩阵:起点、终点、权重、迭代(可选)。 99 | 100 | 与Pajek格式一样,这种格式的优点是不存在的连结(权重为0的连结)不需要在数据矩阵中提及。通过在Siena格式的第四列中指定迭代,可以使用一个矩阵包含所有迭代的数据。 101 | 102 | 缺失值必须以R中常用的方式表示,即NA。 103 | 104 | ## 变量设定 105 | 106 | ### 因变量设定 107 | 108 | #### 网络因变量设定 109 | 110 | | t1 | t2 | | 111 | | :---------------: | :---------------: | :-----------------------: | 112 | | i     j | i -> j | creation of a tie | 113 | | i -> j | i -> j | maintenance of a tie | 114 | | i -> j | i     j | termination of a tie | 115 | | i     j | i     j | maintenance of a ‘no-tie’ | 116 | 117 | 118 | 对于一个二值网络的两次观测,单个网络连结变量可以有四种模式,如上表所示。在SAOM模型中,连结的变化被定义为三种方式: 119 | 120 | - 创建(creation):建立先前不存在的连结 121 | - 维持(endowment):维持现有连结 122 | - 评估(evaluation):不区分创建或维持,仅评估连结的存在 123 | 124 | 这三个可能的连结变化值构成了网络演化模型的因变量(除此之外,还有速率函数)。模型化创建、维持或存在网络连结的概率(更准确地说,它们是对数概率的线性预测器的组成部分)作为因变量,构成不同的效应(effect)。下表可以帮助理解每种情况下概率是如何参照的:比较绿色情况的概率和蓝色情况的概率。 125 | 126 | ![picture1](picture1.png) 127 | 128 | 它们通过三个函数在RSiena中进行建模: 129 | 130 | ```R 131 | # 评估函数 132 | my_model <- setEffect(my_model, effectName = "evaluation", ...) 133 | 134 | # 创建函数 135 | my_model <- setEffect(my_model, effectName = "creation", ...) 136 | 137 | # 维持函数 138 | my_model <- setEffect(my_model, effectName = "endowment", ...) 139 | ``` 140 | 141 | 这些函数取决于行动者以及网络、行为和协变量的状态由某些效应的加权和构成,这些效应定义了决定网络和行为的变化概率特征。 142 | 143 | * **速率函数**:速率函数模型化了因变量改变的速度,即每个网络行动者获得改变其因变量得分机会的速度。 144 | 145 | * **评估函数**:评估函数是变化概率的主要决定因素。向评估函数值更高的状态移动的概率更高。另外一种表示方法是,评估函数建模行动者对其局部网络邻域配置的“满意度”。即假设行动者改变其因变量得分,使其总体满意度提高——带有一个随机元素来表示行为的有限可预测性。 146 | 147 | * **创造函数**:创造函数在评估可能的网络变化时区分新老网络连结,在评估可能的行为变化时区分增加或减少行为值。它仅对向上变化的概率是变化的组成部分:连结的创建,也就是行为因变量值的增大。 148 | 149 | 创造效应可以是评估效应的创造部分,也可以是基本效应。 150 | 151 | 使用满意度的解释方法,创造函数建模创造网络连结或增加行为得分时产生的满意度增加。 152 | 153 | * **禀赋或维持函数**:禀赋函数,也可称为维持函数,在评估可能的网络变化时也区分新老网络连结,在评估可能的行为变化时区分增加或减少行为值。 154 | 155 | 它也仅对向下变化的概率是变化的组成部分:现有连结的维持与终止,行为变量值的减少。 156 | 157 | 同样,禀赋效应可以是评估效应的维持部分,也可以是基本效应。 158 | 159 | 使用满意度的解释方法,禀赋函数对解散网络连结或减少行为得分时导致的满意度损失进行建模(因此使用“禀赋”这个标签)。 160 | 161 | 创造、评估和禀赋效应可以作为一个模型中出现一个或两个作为模型函数的组成部分,但不能所有三个中都出现再一个模型函数中(这将导致完全共线)。每个效应的估计参数应被解释为对数概率比(类似于来自逻辑回归的对数优势比;因为这里的选择是多项的而不是二元的,所以正确的术语是概率比)。从实践的角度看,除非人们对分析的数据集中的连结创建和维持可能怎样有一个清晰的想法,否则开始建模时使用评估效应是更便利的。如果一个给定的效应对连结的创建和维持同样强烈,将一个效应的贡献分解为两个函数需要更多的数据,那么统计效力将由于这种分解而减小。出于这些原因,大多数研究将他们的注意力放在在评估效应上。 162 | 163 | ### 协变量设定 164 | 165 | SAOM模型允许加入不同类型的协变量来控制网络或行为变化中的其他因素。协变量是影响网络或行为动态但本身不被建模的观察变量。协变量可以是一元或二元,不变或变化的: 166 | 167 | * 一元协变量vs二元协变量:一元协变量描述行动者的特征,二元协变量描述行动者对之间的连结。 168 | * 不变协变量vs变化协变量:不变协变量在观测时期保持恒定,变化协变量在不同观测时期发生变化。 169 | * 网络协变量:描述整个网络拓扑结构性质的协变量,例如网络密度、平均路径长度等。 170 | 171 | 通过加入不同类型的协变量,研究者可以区分网络结构效应和协变量效应对网络或行为变化的影响,得到更准确的模型结果。 172 | 173 | #### 行为体绑定协变量 174 | 175 | 行为体绑定变量(也称为一元协变量)是通过`coCovar()`函数(如果它们随时间常量)和`varCovar()`函数(如果它们随时间变化)定义的。 176 | 177 | 每个恒定的行为体绑定协变量对所有观察时刻都有每个行动者一个值,并且具有自变量的作用。 178 | 179 | 变化的变量可以在观测时刻之间改变;这时它们称为“变化的行为体绑定协变量”,也具有自变量的作用。 180 | 181 | SIENA的内部操作不依赖于变量的量表。建议对协变量进行缩放,使其标准偏差在0.1到10之间。 182 | 183 | 变化的行为体绑定协变量被假定在两个观察之间保持不变的值。如果网络的观测时刻为$t_1、t_2、...、t_M$,则变化的协变量参考$M-1$个时刻$t_1$至$t_{M-1}$,并且变化协变量的第$m$个值被假定在时刻$t_m$到$t_{m+1}$期间有效。$t_M$时刻(最后时刻)的价值不起作用。只有在存在3个或更多观测时刻的情况下,变化的协变量作为自变量才有意义,因为对于2个观测时刻,恒定和变化的协变量的区别没有意义。 184 | 185 | 每个变化的行为体绑定协变量必须在对`varCovar()`的单独调用中指定,使用$n\times (M-1)$矩阵作为输入,其中列对应于$M-1$个观测之间的时期。 186 | 187 | 默认情况下,均值从协变量中减去。这可以通过构造带有关键字`centered=FALSE`的协变量来关闭。中心化协变量改进了估计算法的收敛性。因此,建议使用默认值(中心化),除非有理由使用非中心化协变量,例如在效应中用作权重(如对于inPopX效应)。可以将给定的行动者变量以中心化和非中心化的版本都包含在SIENA数据集中,并仅在需要适当的效应定义时使用非中心化版本。请参阅关于中心化的部分。 188 | 189 | #### 二元协变量 190 | 191 | 与网络数据一样,每个二元协变量的测量也必须包含在单独的矩阵中。对于单模数据,这是一个正方形的数据矩阵,对角线值无意义。 192 | 193 | 区分恒定和变化的二元协变量,其中变化指随时间变化。每个恒定的协变量对每个行动者对都有一个对所有观察时刻均有效的值,并且具有自变量的作用。另一方面,变化的协变量在观测之间的每个时期都有这样一个值。如果网络数据有$M$个迭代(即观察时刻),则这涵盖了$M-1$个时期,因此,为指定单个变化的单模二元协变量,需要$n \times n \times (M-1)$的数组。 194 | 195 | 双模二元协变量也是可能的;请参阅`coDyadCovar`和`varDyadCovar`的帮助页面。 196 | 197 | SIENA的内部操作不依赖于量表。建议对协变量进行缩放,使其标准偏差在0.1到10之间。 198 | 199 | 与单体协变量一样,假定变化的二元协变量在两个观察时刻之间保持常数值。如果网络的观测时刻为$t_1、t_2、...、t_M$,则变化的协变量参考$M-1$时刻$t_1$至$t_{M-1}$,并且变化协变量的第$m$个值被假定在时刻$t_m$到$t_{m+1}$期间有效。$t_M$时刻(最后时刻)的值不起作用。 200 | 201 | 使用`coDyadCovar`函数指定恒定二元协变量,使用`varDyadCovar`指定变化的二元协变量。 202 | 203 | #### 协变量的内部处理 204 | 205 | ##### 协变量的交互作用和二元变换 206 | 207 | 对于行为体绑定变量(也称为单体变量),SIENA内部通过相应效应的定义将其转化为两种二元协变量。设行为体绑定变量为$v_i$,二元组中的两个行为体为$i$ 和 $j$。假设$v_i$ 的范围(即最高值和最低值的差值)给定为$r_V$。两种变换如下: 208 | 209 | 1. 二元相似度定义为: 210 | 211 | $$sim_{ij}^V = 1 - \frac{|v_i - v_j|}{r_V}$$ 212 | 213 | 如果两个行为体具有相同的值,则此相似度测量为1;如果一个具有最高可能值,另一个具有最低可能值,则为0。对于各种相似性效应,此测量通过减去所有二元组的均值进行中心化,因此此相似性变量的均值变为0。 214 | 215 | 此相似度测量的优点是其系数在某种意义上是可比较的,即测量总是在0和1之间变化。 216 | 217 | 2. 相同的$V$定义为: 218 | 219 | $$same_{ij}^V = \begin{cases} 220 | 1, & \text{if } v_i = v_j\\ 221 | 0, & \text{if } v_i \neq v_j 222 | \end{cases}$$ 223 | 224 | 这也可以称为相对于$V$的二元同一性。 225 | 226 | 二元相似度适用于可以视为区间级变量的协变量;二元同一性适用于分类变量。 227 | 228 | 此外,SIENA提供了用户自定义的协变量之间的两变量和三变量交互的可能性。 229 | 230 | ##### 中心化(去均值) 231 | 232 | 行为体绑定变量和二元协变量都可以通过程序以下方式中心化。 233 | 234 | 对于行为体绑定变量,均值由`sienaDataCreate`函数减去。然后存储中心化的值,所有计算都使用这些中心化变量。对于变化的变量,使用的均值是全局均值(在所有时期上平均)。这些被减去的均值在`print01Report`的输出中报告。对于多组选项(第11.2节),被减去的值是所有组的全局均值。 235 | 236 | 每个变化的行为体绑定协变量必须在对`varCovar()`的单独调用中指定,使用$n\times (M-1)$矩阵作为输入,其中列对应于$M-1$个观测之间的时期。 237 | 238 | 默认情况下,均值从协变量中减去。这可以通过构造带有关键字`centered=FALSE`的协变量来关闭。中心化协变量改进了估计算法的收敛性。因此,建议使用默认值(中心化),除非有理由使用非中心化协变量,例如在效应中用作权重(例如,对于inPopX效应)。可以将给定的行动者变量以中心化和非中心化的版本都包含在SIENA数据集中,并仅在需要适当的效应定义时使用非中心化版本。 239 | 240 | 对于二元协变量和从行为体绑定变量派生的相似性变量,`sienaDataCreate`函数计算并存储全部均值;存储的变量值不中心化,但在程序计算期间从中减去均值。 (因此,与行为体绑定变量不同,程序内部以不同方式处理二元协变量,意味着在不同时刻减去均值,但效果相同;多组数据集除外,参见下文。) 与“协变量相似性”效应不同,“相同协变量”效应不中心化,而保持其0-1值。 241 | 242 | 对于多组选项(第11.2节),二元协变量与行为体绑定变量的处理不同:在多组数据集的二元协变量中,中心化是通过组内均值完成的;多组数据集的行为体绑定变量通过`sienaGroupCreate`中心化于总体均值。 243 | 244 | 协变量的均值存储为`sienaDataCreate`创建的对象的属性。可以通过对象查看均值信息。 245 | 246 | 依赖行为变量的中心化在内部模拟期间完成,其均值不存储在SIENA数据集中,但存储在依赖变量的属性中。可以通过相关函数计算依赖变量的均值。 247 | 248 | 对于由`sienaGroupCreate`构造的多组数据集,属性“vCovarMean”包含行为体绑定变量的总体均值。 249 | 250 | 此外,`sienaComposition()`处理组合变化,`sienaDataCreate()`组合各数据源,`sienaGroupCreate()`定义群组结构。 251 | 252 | ### 进一步的数据规范 253 | 254 | #### 结构决定值 255 | 256 | 允许图中的某些值是结构决定的,即确定性的而不是随机的。这与列联表中“结构零”的现象类似,但在SIENA中不仅允许结构零,还允许结构一。 257 | 258 | 结构零和结构一可以在输入数据中分别使用预留代码10和11指定。它们可以在不同时间点有所不同。 259 | 260 | 结构零提供了一种简单的方法来处理行动者在观测之间加入或离开网络的情况:在行动者不在场时,将其所有入度和出度连结变量指定为结构零。 261 | 262 | 当模型中包括了赋值或创建效应时,不应该使用变化的结构值。 263 | 264 | #### 缺失数据 265 | 266 | SIENA允许网络变量、协变量和依赖行为变量存在缺失数据,用NA表示。 267 | 268 | 缺失数据被视为非信息性的。缺失数据比例低于10%的情况下通常不会造成太多困难,前提是缺失是非信息性的。 269 | 270 | 为了进行有意义的模拟,缺失值会被填充。在参数估计中,含有缺失的连结变量和行为体变量不会用于计算目标统计量。 271 | 272 | - 在初始观测中,缺失条目被设置为0(无连结)。 273 | 274 | - 在后续观测中,如果存在上一观测值则沿用,否则填充为0。 275 | 276 | - 对于协变量,默认用变量的全局均值填充。 277 | 278 | - 填充值在模拟中可以改变。 279 | 280 | - 统计量仅使用非缺失数据。 281 | 282 | #### 结构变化:加入者和离开者 283 | 284 | 行动者因加入或离开导致的网络结构变化是通过Huisman和Snijders (2003)的“加入者和离开者”方法处理的。 285 | 286 | 数据矩阵必须包含所有时点存在的行动者。对于行动者不在场的迭代: 287 | 288 | - 邻接矩阵条目可以是NA(视为0或上一值)或有效代码。 289 | 290 | - 加入/离开时间由`sienaCompositionChange`或`sienaCompositionChangeFromFile`指定。 291 | 292 | ```R 293 | # 示例 294 | comp <- rep(list(c(1,6)), 50) 295 | comp[[11]] <- c(3,6) 296 | comp[[20]] <- c(1,4) 297 | comp[[33]] <- c(1.5,3, 4.01,6) 298 | changes <- sienaCompositionChange(comp) 299 | ``` 300 | 301 | - 需要无条件估计。 302 | 303 | - 不能与`sienaGOF`联合使用。 304 | 305 | - 使用NA代码使`sienaGOF`起作用。 306 | 307 | - 与赋值/创建效应不兼容;应使用本方法而非结构零。 308 | 309 | ## 模型设定 310 | 311 | 定义数据之后,下一步是模型的设定,涉及选择影响网络和行为变化的效应。 312 | 313 | 并非所有变化概率的贡献都可以写成某些基本函数(评估函数)的变化。因此,有时我们需要直接表示对连结变化或行为变化的贡献,而不借助评估函数,这通过使用基础效应来实现。(Snijders, 2001中称之为满意函数;作为更中性的术语,我们现在使用“基础效应”一词。) 314 | 315 | ### 基础效应 316 | 317 | 以传递闭包为例,它可以表示为行动者倾向于形成封闭三元组,如下图所示。当我们聚焦于行动者i时,如果上一个时点已经具有了i -> j和h -> j的连结,那么这个时点行动者i就可能更倾向于与行为者h形成连结(h对第三个行为者j作出相同的出度选择)。这个过程中,对应的评估效应是趋向于形成封闭三元组的transTrip效应,它由两个不同的基础效应transTrip1(促进创建或维护i -> j连结)和transTrip2(促进i -> h连结)组成。 318 | 319 | ```mermaid 320 | graph TD; 321 | h-->j; 322 | i-->j; 323 | i-->h; 324 | ``` 325 | 326 | 基础效应是直接定义的,不需要基于某个评估函数的变化进行表述。这意味着基础效应比评估效应更为普遍,所有的效应都可以被表示为基础效应。然而,为了方便理解,我们尽可能的使用评估函数来表述效应。 327 | 328 | 基础效应可以适用于连结的创建和维护,也可以只适用于连结的创建或者维持。在RSiena中,基本效应和评估效应之间的区别仅在于内部编程代码,effects对象中指定的效应类型以及includeEffects和setEffect等函数中的可能取值仅为eval、creat和endow。在RSiena这个软件中,基础效应和评估效应的区别主要在于内部编程代码,而效应的类型可能是eval(评估)、creat(创建)和endow(维持)。 329 | 330 | 在SAOM模型中,每个效应都对应一个指标(statistic),这个指标测量了某个特定网络配置的存在程度。每个效应的值都是根据这个指标和一个参数(也就是系数)的乘积来计算的。 331 | 332 | ### 数学规范 333 | 334 | 以下给出了模型的数学定义以准确解释上述直观说明。为了简化记号,我们从公式中省略了所有的统计参数。为了保持本节的简洁,我们不会给出大量的解释,而是引用相关文献。 335 | 336 | 首先考虑网络动态。在任何给定的时刻,设网络被表示为$x_0$。行动者$i$ 的速率函数表示为$\lambda_i(x)$;评价函数表示为$f_i(x)$;创建函数表示为$c_i(x)$;禀赋函数表示为$e_i(x)$。 337 | 338 | 在任何给定的时刻,设当前网络表示为$x_0$。改变的下一个机会出现的时间长度以参数$\lambda^+(x_0) = \sum_i \lambda_i(x_0)$ 指数分布。这意味着期望的时间长度为$\frac{1}{\lambda^+(x_0)}$。行动者$i$ 成为下一个有改变机会的可能性是$\frac{\lambda_i(x_0)}{\lambda^+(x_0)}$。 339 | 340 | 假设行动者$i$ 是下一个有改变机会的人,也可以说,这是关注的行动者。然后行动者$i$ 有改变一个网络连结或保持网络状态不变的可能性。用$C$ 表示所有可以作为结果获得的网络集合。然后这一步得到的网络的概率取决于称为目标函数的$u_i(x_0, x)$,稍后我们将定义这个函数。假设$x \in C$ 是可以作为最小步骤结果获得的某个网络;那么$x$ 将与$x_0$ 相同,除了可能存在于$x$ 但不存在于$x_0$ 的连结$i \rightarrow j$,反之亦然。下一个网络是$x$ 的概率由下式给出: 341 | 342 | $$P(x|x_0) = \frac{\exp(u_i(x_0, x))}{\sum_{x' \in C} \exp(u_i(x_0, x'))}$$ 343 | 344 | 分子是为了让这一步的所有概率之和为1。 345 | 346 | 目标函数定义如下。如果只有评价函数(数学上,这意味着创建函数和禀赋函数都为0),那么目标函数等于新状态的评价函数,$u_i(x_0, x) = f_i(x)$。由于指数函数的特性,我们同样可以将目标函数定义为评价函数的增益,$u_i(x_0, x) = f_i(x) - f_i(x_0)$。 347 | 348 | 定义一般情况时,注意如果$x_0$和$x$不同,那么它们只在一个连结变量$x_{ij}$上不同。定义$\Delta^+(x_0, x) = 1$ 如果$x$的连结比$x_0$多一个,意味着这个改变创建了一个连结,否则$\Delta^+(x_0, x) = 0$。类似地,定义$\Delta^-(x_0, x) = 1$ 如果$x$的连结比$x_0$少一个,意味着这个改变解除了一个连结,否则$\Delta^-(x_0, x) = 0$。然后目标函数的一般定义是: 349 | 350 | $$u_i(x_0, x) = f_i(x) - f_i(x_0) + \Delta^+(x_0, x)(c_i(x) - c_i(x_0)) + \Delta^-(x_0, x)(e_i(x) - e_i(x_0))$$ 351 | 352 | 这表明,如果创建了一个连结($\Delta^+(x_0, x) = 1$),创建函数的改变才起作用;如果解除了一个连结($\Delta^-(x_0, x) = 1$),禀赋函数的改变才起作用。 353 | 354 | 如果也包括基本效应,那么将一般的(评价类型)基本效应的线性组合表示为$f_{el_{ij}}(x)$,创建基本效应表示为$c_{el_{ij}}(x)$,禀赋基本效应表示为$e_{el_{ij}}(x)$。然后我们还需要将$f_{el_{ij}}(x) + \Delta^+(x_0, x) c_{el_{ij}}(x) + \Delta^-(x_0, x) e_{el_{ij}}(x)$加到目标函数$u_i(x_0, x)$中。 355 | 356 | 对于行为动态,定义与之相似。这里的基本假设是,当有改变的机会时,行为变量的可能新值是当前值,当前值+1,或当前值-1,只要这些改变不会使值超出允许的范围。更详细的解释参见(Snijders et al., 2007, 2010b; Steglich et al., 2010; Veenstra et al., 2013)。 357 | 358 | 评价函数、创建函数和禀赋函数都是由效应的线性组合构造的: 359 | $$f_i(x) = \sum_k \beta_k s_{ik}(x)$$ 360 | 其中,$\beta_k$是参数,$s_{ik}(x)$是效应。对于具有多个因变量(网络、行为)的模型,这是特定于每个因变量的;例如,在一个既包含网络又包含行为的研究中,有一个网络和一个行为变量时,就会有两个评价函数。 361 | 362 | 对于网络效应,公式(4)所表示的关键是差值: 363 | $$ 364 | \Delta_{kij}(x) = s_{ki}(x + _{ij}) - s_{ki}(x - _{ij}) 365 | $$ 366 | 其中,$x + _{ij}$是包含连结$i \rightarrow j$ 的网络$x$,$x - _{ij}$是去除该连结的网络$x$。这被称为变化统计量。 367 | 368 | 基本效应定义为: 369 | $$ 370 | s_{el_{ijk}}(x) = x_{ij} s_{el_{ijk}^0}(x) 371 | $$ 372 | 对于一个不依赖于$x_{ij}$ 的统计量$s_{el_{ijk}^0}(x)$。因此,相应的变化统计量是: 373 | $$ 374 | \Delta_{el_{kij}}(x) = s_{el_{ijk}^0}(x) 375 | $$ 376 | 这个公式阐述了,在给定的网络状态$x$下,改变某个特定的连结$i \rightarrow j$ 将会如何改变基本效应。 377 | 378 | 对于行为动态,定义类似。这里的基本假设是,当有改变的机会时,行为变量的可能新值是当前值,当前值+1,或当前值-1,只要这些改变不会使值超出允许的范围。更详细的解释参见(Snijders et al., 2007, 2010b; Steglich et al., 2010; Veenstra et al., 2013)。 379 | 380 | 评价函数、创建函数和禀赋函数都是由效应的线性组合构造的: 381 | $$f_i(x) = \sum_k \beta_k s_{ik}(x)$$ 382 | 其中,$\beta_k$是参数,$s_{ik}(x)$是效应。对于具有多个因变量(网络、行为)的模型,这是特定于每个因变量的;例如,在一个既包含网络又包含行为的研究中,有一个网络和一个行为变量时,就会有两个评价函数。 383 | 384 | 对于网络效应,公式(4)所表示的关键是差值: 385 | $$ 386 | \Delta_{kij}(x) = s_{ki}(x + _{ij}) - s_{ki}(x - _{ij}) 387 | $$ 388 | 其中,$x + _{ij}$是包含连结$i \rightarrow j$ 的网络$x$,$x - _{ij}$是去除该连结的网络$x$。这被称为变化统计量。 389 | 390 | 基本效应定义为: 391 | $$ 392 | s_{el_{ijk}}(x) = x_{ij} s_{el_{ijk}^0}(x) 393 | $$ 394 | 对于一个不依赖于$x_{ij}$ 的统计量$s_{el_{ijk}^0}(x)$。因此,相应的变化统计量是: 395 | $$ 396 | \Delta_{el_{kij}}(x) = s_{el_{ijk}^0}(x) 397 | $$ 398 | 这个公式阐述了,在给定的网络状态$x$下,改变某个特定的连结$i \rightarrow j$ 将会如何改变基本效应。 399 | 400 | ### 简要数学规范 401 | 402 | 对于总的网络效应(将不同的网络结构指标作为因变量),根据以下公式计算: 403 | $$ 404 | f^{\text{net}}_i(x) = \sum_{k} \beta^{\text{net}}_k s^{\text{net}}_{\text{ik}}(x) 405 | $$ 406 | 407 | 其中,$f^{\text{net}}_i(x)$ 是行动者$i$ 的网络效应函数,$\beta^{\text{net}}_k$ 是效应$k$ 的参数,$s^{\text{net}}_{\text{ik}}(x)$ 是效应$k$ 的指标。参数$\beta^{\text{net}}_k$ 是模型的一部分,需要通过模型估计来确定。而指标$s^{\text{net}}_{\text{ik}}(x)$ 则是根据网络数据$x$ 来计算的。 408 | 409 | 对于行为效应(将行动者的不同行为指标作为因变量),公式如下: 410 | $$ 411 | f^{\text{beh}}_i(x, z) = \sum_{k} \beta^{\text{beh}}_k s^{\text{beh}}_{\text{ik}}(x, z) 412 | $$ 413 | 414 | 其中,$f^{\text{beh}}_i(x, z)$ 是行动者$i$ 的行为效应函数,$\beta^{\text{beh}}_k$ 是效应$k$ 的参数,$s^{\text{beh}}_{\text{ik}}(x, z)$ 是效应$k$ 的指标。参数$\beta^{\text{beh}}_k$ 是模型的一部分,需要通过模型估计来确定。而指标$s^{\text{beh}}_{\text{ik}}(x, z)$ 则是根据网络数据$x$ 和行为数据$z$ 来计算的。 415 | 416 | 每个效应的参数通过模型估计来确定,具体来说,参数估计的目标是最大化观察数据的对数似然(可以选择其他的估计方法)。对于单个连结变化的对数概率,可以通过以下公式表示: 417 | $$ 418 | f_{\text{ij}}(\beta, s) = \sum_{k=1}^K \beta_k s_{\text{kij}} + \epsilon_{\text{ij}} 419 | $$ 420 | 421 | 其中,$f_{\text{ij}}(\beta, s)$ 是连结$i \rightarrow j$ 的对数概率,$\beta_k$ 是效应$k$ 的参数,$s_{\text{kij}}$ 是效应$k$ 的指标,$\epsilon_{\text{ij}}$ 是一个误差项。 422 | 423 | 对于行动者$i$ 选择行动者$j$ 作为网络连结的概率,则可以通过以下公式表示: 424 | $$ 425 | Pr_{ij} = \dfrac{\exp\left(\sum_{k=1}^K \beta_k s_{kij}\right)}{\sum_{h=1}^J \exp\left(\sum_{k=1}^K \beta_k s_{kih}\right)} 426 | $$ 427 | 428 | 其中,$Pr_{ij}$ 是行动者$i$ 选择行动者$j$ 的概率,$\beta_k$ 是效应$k$ 的参数,$s_{\text{kij}}$ 是效应$k$ 的指标。参数$\beta_k$ 是模型的一部分,需要通过模型估计来确定。 429 | 430 | 这些公式提供了一个框架,可以在这个框架中定义和计算各种网络和行为效应。具体的效应和指标的选择取决于研究的目标和问题。 431 | 432 | ### 效应设定 433 | 434 | 在RSiena中,我们使用效应对象来定义模型的数据规范。一般而言,效应对象是一个属于`sienaEffects`类的对象,在处理多组模型的情况下(稍后我们会讨论这个主题),它属于`sienaGroupEffects`类。它其实是一种特殊类型的数据框架。函数`getEffects`最初创建了效应对象,然后我们可以使用函数`includeEffects`、`setEffects`等来修改效应对象。其中一个关键组成部分是每个效应的`shortName`,这是数据框架中的一列,用于标识效应。在实际使用SIENA时,`shortNames`极为重要。 435 | 436 | `shortName`本身并未指定协变量,因此除了需要`shortName`,效应的协变量(以及其他作为效应的解释变量的因变量)还需要协变量的名称。如果有多个因变量(网络和/或行为),则指定效应还需要因变量的名称(`name`),这将在效应对象的`interaction1`(等)列中给出。 437 | 438 | 我们可以通过效应的`type`来指定评估效应(`eval`)、禀赋效应(`endow`)和创造效应(`creation`),其默认值是`eval`。对于速率效应,其类型为`rate`,我们可以在函数`includeEffects`、`setEffect`和`includeInteraction`中设置类型。 439 | 440 | 你可以使用`effectsDocumentation()`函数在浏览器中显示当前版本RSiena中所有可用效应的列表及其shortNames。 441 | 442 | 例如,给定效应对象(例如`myeff`)的所有可用效应的列表可以通过下列函数调用在浏览器中显示: 443 | 444 | ```R 445 | effectsDocumentation(myeff) 446 | ``` 447 | 448 | 若要列出`myeff`对象中的前20个效应,可以运行: 449 | 450 | ```R 451 | head(cbind(myeff$effectName, myeff$type, myeff$shortName), 20) 452 | ``` 453 | 454 | 作为另一个例子,要列出`myeff`中的所有评估效应,可以运行: 455 | 456 | ```R 457 | cbind(myeff$effectName, myeff$type, myeff$shortName)[myeff$type == "eval",] 458 | ``` 459 | 460 | 而要获取`myeff`中的所有`shortNames`集合,可以运行: 461 | 462 | ```R 463 | unique(myeff$shortName) 464 | ``` 465 | 466 | 简单来说,选择影响网络和行为变化的效应需要以下三个步骤: 467 | 468 | 1. **选择效应** 469 | 470 | 使用`getEffects()`可以查看RSiena支持的所有内置效应。 471 | 472 | 使用`includeEffects()`可以选择加入模型的效应。`includeEffects()`主要参数: 473 | 474 | - `sienaModel`:SIENA模型对象 475 | 476 | - `effectsToInclude`:字符向量,指定效应名称 477 | 478 | - `behaviors`:是否为行为效应,默认FALSE 479 | 480 | - `layers`:用于选择层次效应的层 481 | 482 | - `period`:用于选择不同时期的效应 483 | 484 | - `formation` :用于选择网络形成效应 485 | 486 | - `rate`:用于选择率效应 487 | 488 | - `maxAlter`:最大选择边数,用于截断效应 489 | 490 | 示例: 491 | 492 | ```R 493 | # 为my_model选择两个网络效应 494 | my_model <- includeEffects(my_model, effectsToInclude=c("outDegree","reciprocity")) 495 | 496 | # 为my_model选择三个行为效应 497 | my_model <- includeEffects(my_model, effectsToInclude=c("linearShape","quadraticShape","interaction"), behaviors=TRUE) 498 | ``` 499 | 500 | 2. **设置效应参数** 501 | 502 | 使用`setEffect()`可以修改或添加效应的参数。`setEffect()`主要参数: 503 | 504 | - `sienaModel`:SIENA模型对象 505 | 506 | - `effectName`:效应名称 507 | 508 | - `behavior`:是否为行为效应,默认FALSE 509 | 510 | - `parameters`:数字向量,设置效应参数 511 | 512 | - `period`:设置特定时期的效应参数 513 | 514 | - `formation`:设置网络形成效应参数 515 | 516 | - `verbose`:是否打印详细信息 517 | 518 | 示例: 519 | 520 | ```R 521 | # 为"outDegree"网络效应设置参数0.2 522 | my_model <- setEffect(my_model, "outDegree", 0.2) 523 | 524 | # 为"linearShape"行为效应设置参数1.5 525 | my_model <- setEffect(my_model, effectName="linearShape", behavior=TRUE, 1.5) 526 | ``` 527 | 528 | 3. **添加交互效应** 529 | 530 | 使用`includeInteraction()`在模型中加入交互效应。`includeInteraction()`主要参数: 531 | 532 | - `sienaModel`:SIENA模型对象 533 | - `interaction`:交互效应名称 534 | 535 | - `nestedIn`:交互效应嵌套的效应名称 536 | 537 | - `period`:添加特定时期的交互效应 538 | 539 | - `formation`:添加网络形成的交互效应 540 | 541 | 示例: 542 | 543 | ```R 544 | # 添加两个网络效应的交互效应 545 | my_model <- includeInteraction(my_model, interaction="outDegree_X_reciprocity") 546 | 547 | # 添加一个行为效应的二次项 548 | my_model <- includeInteraction(my_model, interaction="quadraticShape", nestedIn="linearShape", behavior=TRUE) 549 | ``` 550 | 551 | ## 模型估计 552 | 553 | 模型参数在模型设定完成后进行估计,使用迭代的随机近似算法。实现了四种估计算法:矩方法('MoM';Snijders, 2001;Snijders et al., 2007);广义矩方法('GMoM';Amati et al., 2015, 2019);最大似然法('ML';Snijders et al., 2010a);以及贝叶斯方法(Koskinen, 2004;Koskinen and Snijders, 2007;Schweinberger and Snijders, 2007a)。 554 | 555 | 在本章中,参数的数量用$p$表示。算法基于不断重复模拟网络的演化过程进行。这些重复被称为'runs'。MoM估计算法将观察到的网络(从数据文件获得)与模拟生成的假设网络进行比较,从而进行参数估计。 556 | 557 | 估计算法具有随机性质,因此每次的结果可能会有所变化。对于数据集和模型的良好匹配组合,不同试验中获得的估计结果将非常相似。所以对于将在论文或演示文稿中报告的模型,最好至少重复一次估计过程,以确保模型结果的稳健。如果希望在不同的估计中得到相同的结果,可以设置随机数种子实现。 558 | 559 | ### SIENA估计过程概述 560 | 561 | SIENA中的估计过程在`siena07()`和`sienacpp()`(彼此的替代方法)函数中实现,使用由`sienaAlgorithmCreate()`定义的算法规范。 562 | 563 | 估计从参数的初始值开始,`siena07()`和`sienacpp()`返回一个`sienaFit`对象,其中包含估计值及标准误差以及额外信息。由于估计过程是迭代的(依赖于初始值)且随机的,结果并不总是得到良好的收敛。对于收敛性的检查的方法,我们会进行讨论。 564 | 565 | 下面的许多内容与`siena07()`相关,但也适用于`sienacpp()`。不同之处在于,`sienacpp`的估计完全保持在SIENA的'后端' C++部分,而`siena07()`在C++中进行模拟,但在R '前端'部分进行Robbins-Monro更新,这为`sienacpp()`提供了更高的计算效率。由于对中等规模和大型网络的模拟占用了大部分处理时间,因此时间差异在比例上是明显的的,sienacpp()主要针对模拟运行非常快的数据集(即,参与者数量和第一次和最后一次模拟之间的距离较小)。 566 | 567 | 另外,`sienacpp`的结果不能用于`sienaGOF`,`sienacpp`只在RSienaTest中可用。 568 | 569 | 估计算法由以下语句指定: 570 | 571 | ```r 572 | algorithm1 <- sienaAlgorithmCreate(projname = "trypro") 573 | results1 <- siena07(algorithm1, data = mydata, effects = myeff) 574 | ``` 575 | 576 | `sienaAlgorithmCreate()`定义具有选项的算法对象,通过`siena07()`执行估计。如果不需要图形输出,使用`batch = TRUE`: 577 | 578 | ```r 579 | results1 <- siena07(algorithm1, data = mydata, effects = myeff, batch = TRUE) 580 | ``` 581 | 582 | 要打印详细的算法信息,使用`verbose = TRUE`: 583 | 584 | ```r 585 | results1 <- siena07(algorithm1, data = mydata, effects = myeff, verbose = TRUE) 586 | ``` 587 | 588 | ### SIEAN估计算法 589 | 590 | 估计算法是一个程序的实现,其原始版本由Robbins和Monro(1951)提出。算法在Snijders(2001,2005)和Siena algorithms.pdf中描述,该文件可以从SIENA网站下载。 591 | 592 | 它有三个阶段: 593 | 594 | 1. 在第一阶段,参数向量在其初始值处保持恒定。这个阶段是为了得到一份粗略的导数矩阵估计。 595 | 596 | 2. 第二阶段包括几个子阶段。更多的子阶段意味着更高的精确度。子阶段的默认数量是4。 597 | 598 | 每个子阶段包括大量的运行,通常是几百个。每次运行都会模拟所有期间的网络动态,使用试验参数值。从这个模拟中,计算出估计的统计量;生成的统计量和观察值(即目标值)之间的偏差用于更新试验参数值。对于统计结果过高的统计量,相应的参数将被降低,如果过低,参数将被增加。这些参数值的变化在后面的子阶段中较小。 599 | 600 | 如果启用了`dolby`选项,统计量会在增强数据的得分函数上进行回归。这会减少它们的方差而不影响它们的期望值,参见Snijders(2013)。 601 | 602 | 程序寻找参数值,使得这些偏差平均为0。这反映在输出屏幕上的所谓"准自相关"中。这些是生成的生成统计量与观察值之间的偏差的连续生成的偏差的平均值。当准自相关为负(或接近0的正值)时,这是过程收敛的好迹象,因为这意味着生成的值在观察值周围跳动。当使用矩矩法估计时,准自相关通常接近0。对于最大似然估计,它们通常最终会围绕一些由乘法因子确定的正值波动。大的准自相关(大于0.5)在使用最大似然估计时,表明估计过程还远离其最终的极限(最终估计),或者乘法因子可能太小。但在这种情况下,输出文件中给出的自相关比屏幕上给出的信息更重要。 603 | 604 | 3. 在第三阶段,参数向量再次保持恒定,现在是在其最终值。这个阶段是为了估计用于计算标准误差的协方差矩阵和导数矩阵。 605 | 606 | 第三阶段的运行次数由参数`n3`给出,其默认值为1000。对于精确的标准误差估计,`n3`的更高值是可取的。这需要大量的计算时间,但是当第三阶段的运行次数过少时,计算的标准误差相当不可靠。 607 | 608 | 第二阶段的子阶段数量,以及第三阶段的运行次数,由`sienaAlgorithmCreate`调用中的参数`nsub`和`n3`确定。 609 | 610 | 在估计算法中,如果使用图形用户界面(`siena07`调用中的默认`batch = FALSE`),用户可以中断并以两种方式修改估计过程: 611 | 612 | 1. 可以终止估计; 613 | 614 | 2. 可以终止第二阶段并继续进入第三阶段。 615 | 616 | 这两个选择显然会增加计算时间;但与只是用默认的算法参数长时间使用`siena07ToConvergence`相比,这样做的计算时间更少,而且成功的可能性更大。 617 | 618 | ### SIENA估计算法的参数 619 | 620 | `sienaAlgorithmCreate()`函数定义估计算法。它包含许多预设参数,通常不修改。需要了解的主要参数是: 621 | 622 | 1. `projname`:项目名称,输出文件根。如果在`sienaAlgorithmCreate()`中`projname = "ppp"`,则为工作目录中的`ppp.txt`。 623 | 624 | 2. `n3`:第3阶段迭代次数,决定标准误的精确度。 625 | 626 | 3. `seed`:随机数种子,用于可重复结果。在收敛良好且`n3`足够大的情况下,不同种子会产生等效的实际结果。 627 | 628 | 4. `modelType`:无向网络的模型类型。 629 | 630 | 5. `behModelType`:定义边界行为的模型类型。 631 | 632 | 6. `MaxDegree`:所有行动者的最大出度。 633 | 634 | 7. `Offset`:广义线性模型中添加的偏移量。 635 | 636 | 其他一些参数对收敛有时也很重要: 637 | 638 | 8. `useStdInits`:是否忽略初始值并使用默认值(默认`FALSE`)。 639 | 640 | 9. `nsub`:子阶段数(默认4)。 641 | 642 | 10. `n2start`:第一子阶段迭代次数。 643 | 644 | 11. `firstg`:随机近似中的初始乘数大小。 645 | 646 | 默认的估计算法是矩方法。但是也可以使用最大似然法,由以下参数决定的,后续进行详细讨论。 647 | 648 | 12. `maxlike`:使用ML估计(默认`FALSE`)。 649 | 650 | 13. `mult`:ML的乘数。 651 | 652 | 可以选择条件估计和非条件估计,后续进行详细讨论。相关的参数是 653 | 654 | 14. `cond`:使用条件估计。 655 | 656 | 15. `condvarno`:条件变量编号。 657 | 658 | 16. `condname`:条件变量名称。 659 | 660 | 其他特殊参数: 661 | 662 | 17. `simOnly`:仅运行模拟,不进行估计。 663 | 664 | 18. `lessMem`:减少存储(阻止`sienaTimeTest`、`sienaGOF`)。 665 | 666 | 19. `dolby`:默认`TRUE`减少方差而不影响期望值(Snijders, 2013)。 667 | 668 | ## 估计结果 669 | 670 | 估计在当前工作目录中生成一个输出文件,其名称由`projname`选项定义;在这个例子中,名称是`trypro.txt`。可以在R控制台上生成结果。 671 | 672 | 在R控制台输入`sienaFit`对象的名称,可以给出结果的简要概述。例如,如果这个名字是`results1`, 673 | 674 | ```r 675 | results1 676 | ``` 677 | 678 | 可能会给出如下的概述: 679 | 680 | ``` 681 | Estimates, standard errors and convergence t-ratios 682 | Estimate Standard Convergence 683 | Error t-ratio 684 | 685 | Rate parameters: 686 | 0 Rate parameter 6.0803 ( 1.0220 ) 687 | 1. eval outdegree (density) -2.5270 ( 0.1589 ) 0.0152 688 | 2. eval reciprocity 2.1021 ( 0.3038 ) 0.0039 689 | 3. eval transitive triplets 0.5470 ( 0.1988 ) 0.0214 690 | 4. eval 3-cycles 0.0805 ( 0.3845 ) 0.0369 691 | 5. eval smoke1 similarity 0.4400 ( 0.2560 ) -0.0427 692 | 693 | Overall maximum convergence ratio: 0.1608 694 | ``` 695 | 696 | 命令`summary(results1)`给出更多细节。包括估计器的协方差/相关矩阵。 697 | 698 | ### 收敛检查 699 | 700 | 上面显示的`Convergence t-ratio`列,也称为偏离目标的t统计量,是收敛的指标。如果这些值的绝对值高于0.1,收敛就不充分。`Overall maximum convergence ratio`值是另一个更严格的收敛指标。为了得到充分的收敛,这个值应该小于0.25。对于`sienaFit`对象`results1`,`Overall maximum convergence ratio`由`results1✩tconv.max`给出。 701 | 702 | #### 初始值 703 | 704 | 初始值可以通过以下三种方式给出: 705 | 706 | 1. 默认方式:如果`useStdInits = FALSE`且在调用`siena07`时没有给出`prevAns`参数,初始值将从`sienaEffects`对象中获取,在本示例中称为`myeff`。 707 | 708 | 执行以下命令: 709 | 710 | ```r 711 | myeff 712 | ``` 713 | 714 | 将显示初始值。只要没有使用`sienaTimeFix`请求时间虚拟变量,请求的效应的初始值就在向量中。 715 | 716 | ```r 717 | myeff$initialValue[myeff$include] 718 | ``` 719 | 720 | 更改这些值通常不是必要的,因为`prevAns`参数(如下一项所解释的)会在后台进行这个操作。 721 | 722 | 如果希望更改效应对象中包含的初始值,可以使用`updateTheta`函数,该函数将从`sienaFit`对象中获取的早期结果的估计值复制到效应对象。对于单个效应,可以通过`setEffect`函数更改初始值,然后必须设置`initialValue`。 723 | 724 | 2. 如果`useStdInits = FALSE`且使用了`prevAns`(“previous answer”)参数,如下所示: 725 | 726 | ```r 727 | results1 <- siena07(algorithm1, data = mydata, effects = myeff, 728 | prevAns = results0) 729 | ``` 730 | 731 | 初始参数估计值将从作为`prevAns`参数给出的结果中获取。这必须是一个`sienaFit`对象;在本示例中,它被赋予了`results0`。 732 | 733 | 如果用于获取`results0`的效应对象的规范与`myeff`相同,那么不仅会复制初始值,而且还会跳过算法的第1阶段,因为参数对统计量的敏感性的信息来自`results0`的第3阶段的结果。 734 | 735 | 如果用于获取`results0`的效应对象的规范与`myeff`不同,那么对于匹配的那些参数,初始值将从`results0`复制,然后像往常一样执行第1阶段。 736 | 737 | 3. 如果在调用`sienaAlgorithmCreate`时使用了`useStdInits = TRUE`,那么将使用标准初始值。 738 | 739 | 这些包括速率参数和出度参数的一些合理值,以及行为依赖变量的线性形状参数(如果有的话);其余参数为0。 740 | 741 | 默认情况下,`useStdInits = FALSE`。 742 | 743 | #### 收敛性检查 744 | 745 | 当参数已经被估计后,首先必须检查算法的收敛性。这通过查看收敛的t值(t-ratios)和整体最大收敛比(overall maximum convergence ratio)来完成。这些都在算法的输出中给出,如上所示。此检查考虑的是模拟值(在第3阶段,见下文)的统计量和它们的观察值(被称为“目标”)之间的偏差。理想情况下,这些偏差是0。但是由于算法的随机性,当过程正确收敛时,即使偏差是微小的,但并不完全等于0。程序计算偏差的平均值和标准偏差,并将这些组合成一个t值(在这种情况下,平均值除以标准偏差)。整体最大收敛比是目标值的任何线性组合的比值 746 | 747 | $$ 748 | \frac{\text{平均偏差}}{\text{标准偏差}} 749 | $$ 750 | 751 | 的最大值。精确的定义在SIENA网站上可以下载的Siena algorithms.pdf中给出。`sienaFit`对象`results1`的整体最大收敛比由`results1✩tconv.max`给出。 752 | 753 | 当整体最大收敛比小于0.2,且所有单个参数的收敛t值的绝对值都小于0.1时,收敛性是令人满意;当前者小于0.30时,收敛性是在合理范围内的。对于需要公开发表结果,建议估计值来源于整体最大收敛比小于0.25的运行。(这些界限只是经验建议,并不是严格的限制。) 754 | 755 | 在上述示例中,收敛t值的最大绝对值等于0.0427,整体最大收敛比为0.1608;这两个都是非常好的值。 756 | 757 | 如果收敛不足,最好方式是再进行一次估计运行,从最后获得的结果继续进行。这通过在`prevAns`(“前一个答案”)参数中使用此结果来完成的,同时确保已经指定了`useStdInits = FALSE`(这是默认值)。示例如下: 758 | 759 | ```r 760 | results1 <- siena07(algorithm1, data = mydata, effects = myeff, 761 | prevAns = results1) 762 | ``` 763 | 764 | 在这种情况下,这第二次估计运行产生了好的结果,收敛t值的最大绝对值等于0.0777。输出文件给出了更详细的结果,即,偏离目标的偏差的平均值和标准偏差,以及由此产生的t值: 765 | 766 | ``` 767 | End of stochastic approximation algorithm, phase 3. 768 | --------------------------------------------------- 769 | 770 | Total of 1822 iterations. 771 | 772 | Parameter estimates based on 822 iterations, 773 | basic rate parameter as well as 774 | convergence diagnostics, covariance and derivative matrices based on 1000 iterations. 775 | 776 | Information for convergence diagnosis. 777 | Averages, standard deviations, and t-ratios for deviations from targets: 778 | 779 | 1. 0.2460 16.1494 0.0152 780 | 2. 0.0560 14.3829 0.0039 781 | 3. 0.9520 44.5338 0.0214 782 | 4. 0.5380 14.5726 0.0369 783 | 5. -0.2080 4.8672 -0.0427 784 | 785 | Good convergence is indicated by the t-ratios being close to zero. 786 | Overall maximum convergence ratio = 0.1608. 787 | ``` 788 | 789 | 对于第四个参数(3-环),目标值的平均偏差为0.5380,第3阶段的1000次模拟中的标准偏差为14.5726。这产生了一个t值为0.5380/14.5726 = 0.0369。平均值和标准偏差的大值本身并不是令人担忧的原因;只有t值是重要的。 790 | 791 | #### 继续估计以获得收敛 792 | 793 | 上面提到了`prevAns`参数,它的作用是将前一个估计的结果用作下一个估计的初始值。 794 | 795 | 但是如果对于收敛情况仍不满意,可以使用估计算法的其他设置,这些设置在`sienaAlgorithmCreate`函数中作为参数给出,以尝试改善收敛。可以用于此目的的`sienaAlgorithmCreate`的主要参数如下。 796 | 797 | - `n2start`:这是第2.1阶段,即第2阶段的第一个子阶段的最小长度。默认值是\(2.52 × (p + 7)\),其中$p$是估计参数的数量。后续子阶段的最小长度是\((2.52)^{k-1} × n2start\),用于子阶段$k$。这意味着算法的总持续时间将大致与n2start成正比。可以尝试使用高于默认值的值,增加算法的持续时间以获得更好的结果。 798 | 799 | - `nsub`:这是算法第2阶段的子阶段数量。通常,默认值4就足够了。有时在与增大n2start值联合使用时,使用nsub = 1可能有助于改善收敛(一般是改善一个合理的,但并不完全令人满意的的估计)。 800 | 801 | - `firstg`:这决定了估计算法中的步长。如果算法不稳定,使用一个比默认值(0.2)更小的值(需要大于0)。有时,对于复杂的数据模型组合,算法可能很快的发散,这时可以通过减小firstg的值,(例如0.01或0.05),来尝试抑制发散程度。 802 | 803 | - `diagonalize`:此参数可以从0到1,决定了期望值对参数的导数的矩阵被对角化的程度。值1(完全对角化)提供了最大的稳定性;较小的值提供了更大的效率。MoM的默认值是0.2。 804 | 805 | - `doubleAveraging`:这将Robbins-Monro更新步骤替换为双平均步骤(Bather, 1989;Schwabe and Walk, 1996;Kushner and Yin, 2003)。默认是doubleAveraging=0,调整后从子阶段2.1开始发挥作用。 806 | 807 | 在使用`prevAns`选项进行重复估计并尝试使用不同的算法设置后,如果收敛性仍然不是很好,有时可以尝试使用`updateTheta`复制早期估计的结果,替换`prevAns`。使用相同的起始值但不跳过估计算法的第1阶段,有时可以更快得到收敛的结果。 808 | 809 | 以下的函数将迭代执行siena07,直到收敛。您可以根据需要修改此函数。如果有,可以使用参数ans0将早期存在的“正轨”估计结果作为算法的初始值。 810 | 811 | ```R 812 | siena07ToConvergence <- function(alg, dat, eff, ans0 = NULL, ...){ 813 | numr <- 0 814 | ans <- siena07(alg, data = dat, effects = eff, prevAns = ans0, ...) # 第一次运行 815 | repeat { 816 | save(ans, file = paste("ans",numr,".RData",sep = "")) # 保存结果以备后用 817 | numr <- numr + 1 818 | # 计算重复运行的次数 819 | tm <- ans$tconv.max 820 | # 收敛指标 821 | cat(numr, tm,"\n") 822 | # 报告进展 823 | if (tm < 0.25) {break} # 成功 824 | if (tm > 10) {break} # 无望的发散 825 | # 返回良好的参数值 826 | if (numr > 30) {break} # 耗时过长 827 | ans <- siena07(alg, data = dat, effects = eff, prevAns = ans, ...) 828 | } 829 | if (tm > 0.25) 830 | { 831 | cat("警告:收敛性不足。\n") 832 | } 833 | ans 834 | } 835 | 836 | ``` 837 | 838 | 如果在获得收敛性时遇到困难,也应重新考虑模型的设定;模型的良好规范往往可以大大改善参数估计的收敛性。 839 | 840 | #### 算法参数的使用 841 | 842 | 前文提到的参数可以如下尝试使用,以期达到收敛。如果在连续使用`prevAns`参数进行估计后,无法获得理想的较低`tconv.max`级别,可以尝试使用这些参数。建议使用(1.) 或 (2.),在两种情况下都需要和(3.)一起使用。可以预期(1.)在计算效率上会比(2.)更高。 843 | 844 | 1. 首先,使用算法的默认参数进行估计。如果返回了一个看似合理的临时估计(满足其他条件,包括`tconv.max`的值不是很高,且一个或多个参数估计的绝对值不是很高),那么就继续使用`prevAns`和`nsub=1`进行估计,同时为`n3`(例如,3000或5000)和`n2start`设置一个较高的值。"较高的`n2start`值"的具体数值取决于数据集 - 模型组合,其中首要的是参数的数量。基线值(参见前文)为: 845 | 846 | ```r 847 | (p + 7) × (2.52)^4 848 | ``` 849 | 850 | 其中,p是估计参数的数量(如果使用条件估计,则不包括通过条件估计的速率参数)。对于“较高的值”,可以从约为原来两倍的值开始。注意,第二阶段的计算时间将与`n2start`成正比。使用这些算法参数和`prevAns`继续估计,如果必要的话,可以进一步增加`n2start`。 851 | 852 | 如果估计进一步变得不稳定,此处的一种解决方法是使用一个显著小于默认值0.2的`firstg`值;例如,0.01。但通常使用默认值就能得到良好的结果。 853 | 854 | 2. 作为(1.)的替代方案:在没有使用`prevAns`的估计中,使用不止4个子阶段:`nsub=5`,或者更多,`nsub=6`。 855 | 856 | 注意,如果使用了`prevAns`,`nsub`的更大值就没有意义;反而应该减小`nsub`(并增加`n2start`)。 857 | 858 | 3. 设定`n3`比默认值更大的值。例如,`n3 = 3000`或`5000`;如果有必要进一步增加`nsub`或`n2start`,那么可能也有必要进一步增加`n3`。 859 | 860 | 所有这些选择显然会增加计算时间;但相较于仅使用默认的算法参数并长时间运行`siena07ToConvergence`,这些选择的增加计算时间较少,且更有可能成功。 861 | 862 | #### 收敛问题可能的原因 863 | 864 | 即使在反复使用`prevAns`参数进行估计,并尝试在上一节中建议的各种算法设置后,如果仍然存在收敛问题,这可能有几个原因。 865 | 866 | - 数据规格不正确(例如,编码没有正确给出)。 867 | 868 | - 初始值设定得不好。尝试从标准初始值(密度参数的某个非零值,以及其他参数的零值)重新开始,或者从作为更简单模型的估计值开始,这个模型没有问题。通过选择算法选项“标准初始值”可以获得默认的初始参数值。 869 | 870 | - 即使使用了精心选择的参数,模型也无法很好地表示数据。 871 | 872 | 例如,如果行为者之间存在大的异质性,而这种异质性没有被协变量效应很好地表现出来,就可能出现这种情况。RSiena输出的开始部分给出了出度和入度,以便检查是否有异常的行为者具有非常高的入度或出度,或者他们的度的动态变化异常。强烈的行为者间的异质性必须通过适当的协变量来表示;如果没有这些协变量,可以定义一个或几个虚拟变量,每个虚拟变量代表一个异常的行为者,并在出度异常的情况下给这个虚拟变量一个自我效应(ego effect ),在入度异常的情况下给出一个他人效应(in-degrees)。 873 | 874 | 有时,行为者在改变他们的连结的数量上有重要的差异。这应该通过包括一个或多个速率效应来反映。经验表明,应包括的主要速率效应是出度的速率效应。 875 | 876 | 另一种可能性是存在时间异质性。关于这一点的信息也可以从print01Report生成的输出文件开始部分的描述中收集:向上和向下的改变数量,在网络中,以及在依赖的行为变量中(如果有)。如果这些在观察结果中并没有显示出平滑或相似的模式,那么可能有必要包括表示时间趋势的行为者变量。 877 | 878 | - 包含了太多无关效应。即应该使用较少的效应,删除非显著的效应,并逐步增加复杂性。将上一个(更简单)模型的参数估计值保留为新估计过程的初始值,前提是这个模型的算法具有良好的收敛结果;也可以使用`prevAns`。 879 | 880 | 被排除在估计之外的效应仍然可以在模型中使用,通过用`test=TRUE, fix=TRUE`指定它们;这不会加重估计过程,并提供关于这个被排除的效应的显著性的信息。 881 | 882 | 通常,这将使用`initialValue=0`,默认值。但有时,它可能会用一个合理的非零值作为`initialValue`。 883 | 884 | - 包含了两个或多个效应,但它们几乎是共线的,意味着它们都可以解释相同的观察结构。在结果对象的总结和输出文件中都可以看到参数估计值之间的相关性的绝对值很高。在这种情况下,最好从模型中排除这些效应中的一个。 885 | 886 | - 包含了一个效应,它具有很大的影响,但不稳健(下午中关于固定参数的部分会讨论)。在估计值和标准误差都很大,通常伴随算法的偏离时,这个问题会显现出来。(这种问题也出现在对数线性回归和某些其他广义线性模型的最大似然估计中;参见Geyer和Thompson(1992年,第1.6节),Albert和Anderson(1984年),Hauck和Donner(1977年))。在这种情况下,这个效应应该被固定为一些大的值,而不是留给自由估计。 887 | 888 | 另一个可能试的小技巧如下:有时,速率参数中的一个(或一些)ke能使收敛困难的原因。可以将这个参数固定在一个合适的值,然后估计其他参数。假设这是可行的,即只要这个速率参数固定,就可以获得良好的收敛。那么通过反复试验,可能会找到这个速率参数的一个固定值,对于这个参数的t比值也是可以接受的(小于0.2,最好小于0.1)。通常情况下,人们不会过分关注速率函数的实际意义,因而更容易接受。 889 | 890 | ### `sienaFit`对象的一些重要组件 891 | 892 | 如果用户希望进行进一步的计算,了解`sienaFit`对象的以下组件可能会有所帮助。假设对象被称为`ans`。一些组件如下(进一步的细节可以在`siena07`的帮助文件中找到): 893 | 894 | - `ans$theta` 参数估计值(但是不包括用于条件化的速率参数; 895 | 如果使用`sienaTimeFix`请求了时间虚拟变量,这些也包含在theta中) 896 | 897 | - `ans$covtheta` 估计值的协方差矩阵 898 | 899 | - `ans$se` 估计值的标准误差 900 | 901 | - `ans$pp` 参数数量 902 | 903 | - `ans$targets` 矩矩法估计的目标(观察到的统计量) 904 | 905 | - `ans$nrunMH` 每此迭代用于最大似然估计的Metropolis-Hastings步骤数 906 | 907 | - `ans$tconv` 每个参数的收敛t值 908 | 909 | - `ans$tmax` 非固定参数的这些比率的最大绝对值 910 | 911 | - `ans$tconv.max` 任何参数线性组合的最大t值,称为总体最大收敛比率 912 | 913 | - `ans$sf` 第3阶段的生成统计量(减去目标) 914 | 915 | - `ans$msf` `ans$sf`的协方差矩阵 916 | 917 | - `ans$dfra` 参数的期望统计量的估计导数 918 | 919 | - `ans$ac` 第3阶段生成统计量的自相关 920 | 921 | - `ans$sims` 算法第3阶段的依赖变量的模拟值 922 | 923 | 如果在调用`siena07`时设定`returnDeps = TRUE`;在最大似然估计的情况下,注意对于观察到的连结变量,模拟值等于观察值;对于缺失的连结变量,模拟值可以被视为基于模型的插补值 924 | 925 | - `ans$estMeans` 目标统计量的估计期望值 926 | (如果选择了Dolby选项,注意这不等于模拟的平均值) 927 | 928 | - `ans$requestedEffects` 只包括请求的效应的效应对象 929 | 930 | - `ans$effects` 包括任何请求的交互作用的主效应的效应对象 931 | 932 | - `ans$x` 使用的算法对象 933 | 934 | - `ans$f` C++计算所需的所有内容; 935 | 特别是,数据集隐藏在这里,而且可以被重构。内容中会显示`mat1`为网络数据,`mat2`为缺失值,以及`mat3`为结构性确定的值。所有这些都以转置的边列表的形式存储。 936 | 程序员可以参考函数`initializeFRAN`了解创建此对象的内容。 937 | 938 | - `ans$version` RSiena/Test版本 939 | 940 | - `ans$startingDate` 估计开始的日期和时间(从版本1.2-17开始)。 941 | 942 | 像任何R对象一样,可以通过以下方式请求`sienaFit`对象的内部结构: 943 | 944 | ```r 945 | sink("ans.txt") 946 | str(ans) 947 | sink() 948 | ``` 949 | 950 | 这会将结构写入外部文件`ans.txt`,这可能比打印到控制台更好,因为这会有一个很长的输出。 951 | 952 | 通过以下方式可以获得这个对象结构的有限表示: 953 | 954 | ```r 955 | sink("ans.txt") 956 | str(ans, 1) 957 | sink() 958 | ``` 959 | 960 | 要获得进一步的信息,可以像下面这样研究这个对象的一些组件。注意,像`(A <- B)`这样将语句放在括号中只是一种同时构造对象A并显示它的方式。 961 | 962 | ```r 963 | # 计算生成统计量的协方差矩阵 964 | print(covsf <- cov(ans$sf)) 965 | 966 | # 这与ans$msf相同,前提是没有固定的参数。 967 | 968 | # 生成统计量减去目标的均值和标准偏差: 969 | (v <- colMeans(ans$sf)) 970 | (s <- apply(ans$sf, 2, sd)) 971 | 972 | # 这也允许计算收敛t值 973 | v / s 974 | ``` 975 | 976 | `tconv`组件在上面介绍的函数`siena07ToConvergence`中使用。 977 | 978 | ### 参数值和标准误差 979 | 980 | 输出的下一个关键部分是估计值和标准误差的列表。假设在R控制台上获得了以下结果。 981 | 982 | ``` 983 | Estimate Standard Convergence 984 | Error t-ratio 985 | 986 | Rate parameters: 987 | 0 Rate parameter 6.0742 ( 1.0134 ) 988 | 1. eval outdegree (density) -2.5341 ( 0.1445 ) 0.0571 989 | 990 | 2. eval reciprocity 2.1106 ( 0.2625 ) 0.0710 991 | 3. eval transitive triplets 0.5449 ( 0.1781 ) 0.0584 992 | 4. eval 3-cycles 0.0779 ( 0.3425 ) 0.0777 993 | 5. eval smoke1 similarity 0.4519 ( 0.2497 ) 0.0400 994 | ``` 995 | 996 | 速率参数是称为ρmnet的参数(其中m = 1,因为只有一个时期)。6.0742的值表示在两次观察之间每个行动者(注意每个参与者对应邻接矩阵中的一行)的改变的机会的估计数量是6.07(根据标准误差1.01进行四舍五入)。这个变化机会包括了所有可能的变化,包括那些可能导致“无变化”决策的变化。例如,一个行为者可能选择与另一个行为者建立联系,然后又选择撤销这个联系,这就产生了两次变化,但是实际上这两次变化结果在观察中并没有任何区别,因此被视为“无变化”。 997 | 998 | 因此,速率参数给出的6.07实际上是包括了未观察到的变化的估计数量。由于某些变化可能会被撤销,所以每个行为者实际观察到的差异数量将小于这个未观察到的变化的估计数量。 999 | 1000 | 其他五个参数是评价函数中的权重。在这个模型规格中,评价函数中的项是定义为si1的出度效应,互惠效应si2,传递三元组效应si3,三环效应si5,性别相似性效应si85。因此这里的估计评价函数是 1001 | 1002 | ``` 1003 | -2.53 si1(x) + 2.11 si2(x) + 0.54 si3(x) + 0.08 si5(x) + 0.45 si85(x) 1004 | ``` 1005 | 1006 | 可以将参数估计值与标准误差结合起来对参数进行假设检验。 1007 | 1008 | 对于速率参数,测试其为0的假设是无意义的,因为两个观察网络之间的差异表明改变的速率必须是正的。可以通过t统计量测试评价函数中的权重,定义为估计值除以其标准误差。(不要将此t检验与检查收敛性的t值混淆;尽管两者都是t值,但它们完全不同)这里的t值分别为,-2.5341/0.1445 = –17.54, 2.1106/0.2625 = 8.04, 0.5449/0.1781 = 3.06, 0.0779/0.3425 = 0.23, 0.4519/0.2497 = 1.81。由于前三者的绝对值大于2,它们在0.05的显著性水平下是显著的。这意味着有证据表明参与者对互惠和传递关系有“偏好”。对于三元闭包,效果不显著(t = 0.23),对于吸烟相似性,它在0.10的显著性水平上是显著的。密度参数的值并不是很重要;重要的是要包括这个参数来控制网络的密度,但由于所有其他统计量都与密度相关,所以密度本身很难解释。 1009 | 1010 | ### 共线性检查 1011 | 1012 | 在输出文件中,提供了估计值的协方差矩阵。也可以通过`summary(ans)`得到这个矩阵。对于条件估计,用于条件的依赖变量的速率参数不包含在这个矩阵中。在这种情况下,协方差矩阵如下。 1013 | 1014 | ``` 1015 | Covariance matrix of estimates (correlations below diagonal):) 1016 | 1017 | 0.021 -0.018 -0.010 0.006 -0.008 1018 | -0.468 0.069 0.008 -0.034 -0.002 1019 | -0.395 0.180 0.032 -0.049 0.003 1020 | 0.130 -0.378 -0.795 0.117 -0.001 1021 | -0.223 -0.037 0.074 -0.007 0.062 1022 | ``` 1023 | 1024 | 对角线值是方差,即标准误差的平方(例如,对于互惠效应,0.069是0.2625的平方),对角线以下是相关性。例如,估计的出度效应和估计的互惠效应之间的相关性是-0.468。这这些相关性可以用来判断效应之间是否存在重要的共线性。共线性意味着多个不同的参数值组合可能代表同一种数据模式,在这种情况下,是网络统计量的相同值。当一个或多个相关性非常接近-1.0或+1.0时,这是接近共线性的一个标志。这也将导致这些参数的标准误差较大。然后,可能建议从模型中省略一个对应的效应,因为它可能在其他(强相关的)效应存在的情况下变得冗余;但是参见下文。省略另一个效应可能会使保留效应的标准误差大幅减小,这也可能意味着t检验从非显著变为显著。 1025 | 1026 | 建议省略导致与其他效应的参数相关性高的效应的建议并不直接适用于出于其他原因应该包括的效应,例如网络动态的密度效应和行为动态的线性和二次形状效应。 1027 | 1028 | 然而,参数估计之间接近-1.0或+1.0的相关性不应过早地用于作为从模型中排除效应的理由。这有两个原因。首先,网络统计量通常是高度相关的(例如,总的关系数和传递三元组数),这些相关性只是网络的一个属性。其次,接近共线性本身不是问题,但问题(如果有)出现在标准误差很高的时候,这可能是由于高度相关变量的参数值很难以任何精度估计。真正的问题在于过大的标准误差,而不是参数估计之间的强烈相关性本身。如果两个参数的参数估计到标准误差的比值,即t比值,绝对值大于2,尽管参数估计之间的相关性高,那么t检验的显著性就证明了两种效应都值得被包含在模型中。换句话说,就“信噪比”来说:随机噪声很高,但信号强度足以克服噪声。 1029 | 1030 | 对于参数相关性的经验法则,通常对于估计的结构网络效应的相关性,即使这些相关性强烈到0.9,也没有必要担忧。 1031 | 1032 | 在上述例子中,传递三元组和三环之间的参数估计找到了最强的相关性。这并不奇怪,因为它们都是三角效应。在这种情况下,三环效应不显著,因此可以出于这个原因被去掉。 1033 | 1034 | ## 其他话题:估计方法的讨论 1035 | 1036 | ### SIENA估计方法 1037 | 1038 | RSiena可以通过以下方式估计模型: 1039 | 1040 | - (无条件/条件)矩方法(MoM,默认) 1041 | 1042 | - 广义矩方法(GMoM) 1043 | 1044 | - 极大似然(ML) 1045 | 1046 | - 贝叶斯方法 1047 | 1048 | **GMoM** 与 MoM: 1049 | 1050 | - 在理论上更有效 1051 | 1052 | - 略微更慢,因为需要更多模拟/迭代 1053 | 1054 | - 对单网络模型,估计值相似 1055 | 1056 | - 如果信息量大,对协同演化模型的新统计量估计更准确 1057 | 1058 | **ML** 与 MoM: 1059 | 1060 | - 统计上更有效(标准误更小) 1061 | 1062 | - 在良好情况下,对单网络模型的估计值与MoM相似 1063 | 1064 | - 对小网络、小的组合网络/行为数据、复杂模型更准确 1065 | 1066 | **贝叶斯** 与频率: 1067 | 1068 | - 不同的统计范式 1069 | 1070 | - 假设参数不确定性是概率性的 1071 | 1072 | **使用**: 1073 | 1074 | - MoM 和 GMoM: `siena07()` 或 `sienacpp()` 1075 | 1076 | - ML: `siena07()` 并使用 `maxlike=TRUE` 1077 | 1078 | - 贝叶斯:`sienaBayes()`(目前仅多层网络) 1079 | 1080 | 默认的MoM可以胜任大部分工作。GMoM、ML或贝叶斯方法在复杂的或协同演化场景中带来改善。 1081 | 1082 | ### 广义矩法估计 1083 | 1084 | #### 使用函数siena07 1085 | 1086 | 与常规的矩估计法(MoM)相比,广义矩估计法(GMoM)允许使用比参数更多的统计量,从而在观察数据中利用更多的信息。这些额外的信息源自称为GMoM统计量的补充统计量。GMoM统计量仅定义用于评估函数的效果。因此,它们在假设效果对于创建和解散联系,以及行为的增加和减少有相同的强度的情况下使用。换句话说,对应于GMoM统计量的创建和禀赋效应被假定为零。 1087 | 1088 | 通过在效应对象中使用`includeGMoMStatistics`函数指定GMoM统计量,并在由`sienaAlgorithmCreate`函数创建的算法对象中设置`gmm=TRUE`选项,就可以使用`siena07`函数获得GMoM的估计值。 1089 | 1090 | 已经实现了几个用于网络演化和网络与行为的共演化的GMoM统计量: 1091 | 1092 | * 网络演化的统计量(Amati等人,2015)通过考虑网络的两个连续时期的观察来补充常规统计量提供的信息。这种表述允许区分同一效应的不同前因。实施的统计量被命名为`newrecip`,`persistrecip`,`realrecip`,`realtrans`,`agreetrans`。 1093 | 1094 | * 网络和行为的共演化的GMoM统计量(Amati等人,2019)通过同时考虑网络和行为来补充交叉滞后统计量的信息,这取决于网络和行为。因此,GMoM统计量考虑了网络和行为变化的同时观察的信息。实现的GMoM统计量的名称是`avSim gmm`,`avAlt gmm`,`totAlt gmm`,`maxAlt gmm`,`minAlt gmm`,`egoX gmm`,`simX gmm`。 1095 | 1096 | 对于GMoM,用于估计的额外统计量是由函数`includeGMoMStatistics`指定的。 1097 | 1098 | ```r 1099 | myeff <- includeGMoMStatistics(myeff, egoX_gmm, interaction1 = "mybeh") 1100 | myeff <- includeGMoMStatistics(myeff, simX_gmm, interaction1 = "mybeh") 1101 | ``` 1102 | 1103 | 以上命令指定了与协变量相关的活动和相似性效应的GMoM统计量。 1104 | 1105 | 尽管统计量被添加到效应对象中,但我们应记住GMoM统计量并非随机模型中的效应,也就是说,它们并未作为目标函数的项包含在内。它们仅用于参数估计以评估矩条件。 1106 | 1107 | 在R控制台打印效应对象时,会回想起模型效应和GMoM统计量之间的区别。如下面的示例所示,输出分为两部分。第一部分列出了模型效应。第二部分报告了用于估计的统计量:常规统计量(默认情况下,当在概率模型中使用`includeEffects`指定效应时包括),以及使用`includeGMoMStatistics`函数指定的GMoM统计量。效应数量和统计量数量之间的比较说明了,在GMoM中,操作网络和/或行为演化的效应与用于参数估计的统计量之间的一对一对应关系已经丢失。 1108 | 1109 | ``` 1110 | Effects and statistics for estimation by the Generalized Method of Moments 1111 | 1112 | Effects 1113 | 1114 | name effectName include fix test initialValue parm type 1115 | 1 mynet constant mynet rate (period 1) TRUE FALSE FALSE 4.69604 0 rate 1116 | 2 mynet constant mynet rate (period 2) TRUE FALSE FALSE 4.32885 0 rate 1117 | 3 mynet outdegree (density) TRUE FALSE FALSE -1.46770 0 eval 1118 | 4 mynet reciprocity TRUE FALSE FALSE 0.00000 0 eval 1119 | 5 mynet transitive triplets TRUE FALSE FALSE 0.00000 0 eval 1120 | 6 mynet 3-cycles TRUE FALSE FALSE 0.00000 0 eval 1121 | 7 mynet mybeh ego TRUE FALSE FALSE 0.00000 0 eval 1122 | 8 mynet mybeh similarity TRUE FALSE FALSE 0.00000 0 eval 1123 | 9 mybeh rate mybeh (period 1) TRUE FALSE FALSE 0.70571 0 rate 1124 | 10 mybeh rate mybeh (period 2) TRUE FALSE FALSE 0.84939 0 rate 1125 | 11 mybeh mybeh linear shape TRUE FALSE FALSE 0.32237 0 eval 1126 | 12 mybeh mybeh quadratic shape TRUE FALSE FALSE 0.00000 0 eval 1127 | 13 mybeh mybeh total similarity TRUE FALSE FALSE 0.00000 0 eval 1128 | 1129 | Regular and GMoM statistics 1130 | 1131 | name effectName Statistic 1132 | 1 mynet constant mynet rate (period 1) Regular 1133 | 2 mynet constant mynet rate (period 2) Regular 1134 | 3 mynet outdegree (density) Regular 1135 | 4 mynet reciprocity Regular 1136 | 5 mynet transitive triplets Regular 1137 | 6 mynet 3-cycles Regular 1138 | 7 mynet mybeh ego Regular 1139 | 8 mynet mybeh similarity Regular 1140 | 9 mybeh rate mybeh (period 1) Regular 1141 | 10 mybeh rate mybeh (period 2) Regular 1142 | 11 mybeh mybeh linear shape Regular 1143 | 12 mybeh mybeh quadratic shape Regular 1144 | 13 mybeh mybeh total similarity Regular 1145 | 14 mynet mybeh ego GMoM 1146 | 15 mynet mybeh similarity GMoM 1147 | ``` 1148 | 1149 | 计算GMoM估计值比计算常规MoM估计值需要更多的时间。GMoM估计器是通过最小化统计量的期望值和它们的样本对应值之间的距离来计算的。最小化需要计算一个权重矩阵,以描述统计量的重要性和它们对参数的敏感性。为了估计GMoM权重的矩阵,阶段1和阶段3中使用了更多的模拟,以及(至少)一次函数`siena07`的迭代。 1150 | 1151 | 建议采取以下估计步骤来快速达到算法的收敛。 1152 | 1153 | 1. 运行函数`siena07`,在第2阶段使用一到两个子阶段(即`nsub = 1`或`nsub = 2`),在第3阶段使用大量的模拟(例如`n3 = 5000`),以获得模型参数的更好的初始估计值和更稳定的GMoM权重矩阵的估计。 1154 | 1155 | 2. 使用1中产生的估计重新估计模型,使用第2阶段的四个子阶段(`nsub = 4`),第3阶段的相同数量的模拟(例如`n3 = 5000`)和参数`prevAns = TRUE`。 1156 | 1157 | 如果收敛不足,可以反复运行`siena07`,并使用`prevAns = TRUE`。 1158 | 1159 | 当GMoM统计量与常规统计量“高度”相关(> 0.9)时,可能会出现收敛困难。这时应该放弃相应的GMoM统计量将解决问题。直观地说,当GMoM和常规统计量高度相关时,GMoM统计量对参数的估计无法提供相关信息,可以被丢弃。因此,建议检查统计量的协方差矩阵,以决定是否应该使用GMoM统计量进行估计。 1160 | 1161 | #### 使用函数sienacpp 1162 | 1163 | 广义矩法(GMoM)的估计也在函数`sienacpp`中实现,该函数在RSienaTest中可用。 1164 | 1165 | 如果通过`sienaAlgorithmCreate`创建的算法对象使用`maxlike = FALSE`,那么估计函数`sienacpp`将使用MoM或GMoM。如果在效应对象中至少有一个效应被指定为`type = "gmm"`,就会使用后者。 1166 | 1167 | 对于GMoM估计的效应对象的规范要求是,在效应对象中,除了基本的速率效应,还应一些效应被指定在`includeEffects`中,`type = "eval"`(默认值)和其他的`type = "gmm"`。前者是定义模型规格的评估效应,后者是用于估计的统计量。该方法要求统计量的数量(`type = "gmm"`)等于或大于评估效应的数量(`type = "eval"`)。 1168 | 1169 | 例如,以下命令 1170 | 1171 | ```r 1172 | net <- sienaDependent(array(c(s501,s502,s503), dim = c(50,50,3))) 1173 | dataset <- sienaDataCreate(net) 1174 | eff <- getEffects(dataset) 1175 | eff <- includeEffects(eff, density) 1176 | eff <- includeEffects(eff, density, type = "gmm") 1177 | eff <- includeEffects(eff, recip) 1178 | eff <- includeEffects(eff, recip, realrecip, persistrecip, type = "gmm") 1179 | eff <- includeEffects(eff, transTrip) 1180 | eff <- includeEffects(eff, transTrip, agreetrans, realtrans, type = "gmm") 1181 | eff 1182 | ``` 1183 | 1184 | 将打印出结果的效应对象 1185 | 1186 | ``` 1187 | For estimation by the Generalized Method of Moments 1188 | 1189 | Effects 1190 | 1191 | effectName include fix test initialValue parm type 1192 | 1 constant net rate (period 1) TRUE FALSE FALSE 4.69604 0 rate 1193 | 2 constant net rate (period 2) TRUE FALSE FALSE 4.32885 0 rate 1194 | 3 outdegree (density) TRUE FALSE FALSE -1.46770 0 eval 1195 | 4 reciprocity TRUE FALSE FALSE 0.00000 0 eval 1196 | 5 transitive triplets TRUE FALSE FALSE 0.00000 0 eval 1197 | 1198 | Statistics 1199 | 1200 | effectName include type 1201 | 1 outdegree (density) TRUE gmm 1202 | 2 reciprocity TRUE gmm 1203 | 3 persistent recip. TRUE gmm 1204 | 4 real recip. TRUE gmm 1205 | 5 transitive triplets TRUE gmm 1206 | 6 real trans. trip. TRUE gmm 1207 | 7 agree trans. trip. TRUE gmm 1208 | ``` 1209 | 1210 | 表中有三个评估效应和七个统计量。像MoM一样,GMoM允许条件估计以及无条件估计。在此示例中,对于条件估计,统计量的数量将为九个,包括两个用于速率参数的统计量,即连续时期的网络次之间的汉明距离(Hamming distances)。 1211 | 1212 | 与`siena07`的使用相比,`sienacpp`的一些区别: 1213 | 1214 | - 效应必须通过`includeEffects`单独明确地包含为评估效应和统计量;上面给出了一个示例。 1215 | 1216 | - 条件估计通过在`includeEffects`中包括`nConditions`和`condnames`参数完成,而不是通过`sienaAlgorithmCreate`中的`cond`参数。 1217 | 1218 | - 算法参数`gmm`必须设置为`TRUE`。 1219 | 1220 | - 不支持`dolby`估计(但这通常对结果影响很小)。 1221 | 1222 | - 收敛诊断稍有不同;特别是,不报告参数的收敛t值。 1223 | 1224 | 其余与`siena07`的GMoM估计相同。 1225 | 1226 | ### 最大似然和贝叶斯估计 1227 | 1228 | 矩方法(MoM)和最大似然方法(ML)进行参数估计的一个重要区别在于,MoM试图找到能产生模拟结果的参数,这些模拟从迭代的起始出发,其平均目标统计量等于观察到的值;而ML试图找到使得在给定迭代起始的条件下,迭代结束时观察到的数据的概率最大的参数。MoM的模拟仅考虑了每个迭代开始时的观察值;ML的模拟通过连接每个迭代起始和结束时的观察值来增加数据。这种连接可以称为变化路径。这更复杂,因此计算上也更费时。关于MoM的技术解释见Snijders (2001)和 Snijders等(2007),关于ML估计量见Snijders等(2010a)。两种方法都在Snijders (2017)中有介绍。 1229 | 1230 | ML估计是通过函数`siena07`完成的,使用由`sienaAlgorithmCreate`创建的一组选项,其中`maxlike = TRUE`。贝叶斯估计是通过函数`sienaBayes`完成的。本节后面的信息主要关于ML估计;贝叶斯估计目前只实现了多层网络建模。 1231 | 1232 | 对于最大似然估计的应用存在一些限制 1233 | 1234 | 1. 不支持使用加入者和离开者的方法。 1235 | 1236 | 2. 不允许以下数据配置: 1237 | 1238 | (a) 在两个连续迭代中,关系变量从结构零(代码10)变为1; 1239 | 1240 | (b) 在两个连续迭代中,关系变量从结构一(代码11)变为0; 1241 | 1242 | (c) 在三个连续迭代中,关系变量从结构零(代码10)变为NA然后变为1; 1243 | 1244 | (d) 在三个连续迭代中,关系变量从结构一(代码11)变为NA然后变为0; 1245 | 1246 | (e) 对于超过三个连续迭代,存在更多的NA插在其中的类似模式。 1247 | 1248 | 3. 使用结构零来指示参与者的间歇性缺席(即,只在一段时间的开始或结束时有结构零)。 1249 | 1250 | 上述情况在逻辑上不可能,因此不被允许。此外,以下情况也有问题: 1251 | 1252 | - 在迭代开始时为0或1,而在结束时为结构零(代码10)的连结变量,这表明参与者已经离开网络。问题在于,对与RSiena来说,在此期间,连结变量必须改变为0;然而,你可能希望传达的意义是其值是未知的。在一段时间结束时,一个值为10的连带变量并不会被包含在对数似然的计算中,但是通过它与其他变量的依赖关系,它可能有与NA不同的结果。 1253 | 1254 | 一种可能的解决方案是在一个周期结束时,将这种结构零替换为NA,以避免给出误导性信息。 1255 | 1256 | 对于含多个时期(即三个或更多迭代)的数据集,可以使用ML进行分析(如de la Haye等人,2017年所建议),将数据组织为多组数据集(第11.2节)。但是该解决方案在`sienaBayes`中不可用。 1257 | 1258 | ML(最大似然)估计算法使用Metropolis-Hastings步骤来模拟得分函数,该函数是增广数据得分函数的期望值;请参见 Snijders等人(2010a)。对于ML估计,调整算法的一个重要参数是乘法因子,它在`sienaAlgorithmCreate`中作为`mult`参数给出。这决定了模拟每个新的变化路径所采取的Metropolis-Hastings步骤的数量。步骤的数量(在文献中有时被称为“采样频率”)是乘法因子乘以连续迭代之间的距离对依赖变量的总和。当这个数值过低时,连续模拟的变化路径过于相似,将导致生成的统计数据中的自相关度较高。这将导致算法的性能不佳。自相关度在输出文件中给出,当某些自相关度超过0.4时,最好增加乘法因子。另一方面,当乘法因子过高时,计算时间将不必要的延长。因此建议将自相关度的值控制在0.1到0.4之间。 1259 | 1260 | Metropolis-Hastings步骤的数量(采样频率)可能对每个迭代都不同,对于答案对象`ans`,这些数量由`ans✩nrunMH`给出。 1261 | 1262 | 一个更现实的操作方法如下:对于乘法因子的初始调整,使用在创建效应对象后得到的默认模型,其包含的效应非常少。使用这个模型的原因是计算时间不长且易于收敛。如果最高的自相关度超过0.3,就增加乘法因子(例如,使其增大两倍;这也将导致计算时间加倍),然后再次估计模型。如果最高的自相关度小于0.1,那么就减小乘法因子,然后再次估计。调整乘法因子,直到最高的自相关度在0.1到0.3之间。然后开始估计感兴趣的模型。对于其他模型,自相关度可能再次改变,因此后续还可能需要调整乘法因子,以保持最高的自相关度小于0.4。 1263 | 1264 | 请注意,乘法因子可以作为一个数值给出,也可以作为一个向量给出,向量的元素数量等于效应对象中基本率参数的数量;即,周期数乘以迭代数。这允许只为某些周期-波动组合设置高的乘法因子值。 1265 | 1266 | 关于如何将乘法因子的值设置为向量的一些建议可以在 https://www.stats.ox.ac.uk/~snijders/siena/sienaBayes_s.pdf 中找到;这是为`sienaBayes`编写的,但对于使用`siena07`进行的ML估计同样适用。 1267 | 1268 | Metropolis Hastings算法是一种广泛应用的马尔科夫链蒙特卡洛(MCMC)采样算法。在Siena模型中,这个算法使用了多个步骤('InsDiag'、'CancDiag'、'Permute'、'InsPerm'、'DelPerm'、'InsMiss'、'DelMiss'、'InsMisdat'、'DelMisdat'和'Move')来组成建议分布(proposal distribution)。 1269 | 1270 | 每个步骤都有特定的概率,这些概率由'sienaAlgorithmCreate'函数中的参数'prML'决定。前七个步骤的概率确定后,'Move'步骤的概率就是1减去这七个概率的和。'InsMisdat'和'DelMisdat'步骤是'InsPerm'和'DelPerm'步骤的子步骤,所以不需要自己的概率。 1271 | 1272 | 对于那些没有缺失数据的情况,'InsMiss'和'DelMiss'步骤是不需要的,这已经在程序中自动处理了,所以在设定'prML'参数时不需要考虑这两个步骤。对于有多个依赖变量的数据集,目前的算法设计并不支持进行'Move'步骤。 1273 | 1274 | 算法的另一个参数有时需要调整(但比乘法因子调整的次数少)是增益参数的初始值。这决定了在迭代算法中参数更新的步长。它影响算法的稳定性和移动速度。过低的值意味着从一个远离“真”参数估计的初始参数值开始,需要很长时间才能得到一个合理的参数估计。过高的值意味着算法将不稳定,并可能被抛入一个不合理的(例如,无望地大)参数值的区域。 1275 | 1276 | 当使用矩方法(默认的估计过程)时,通常不必更改此参数。在ML情况下,当自相关度小于0.1但t统计量对目标的偏差相对较小(小于,比如说,0.3)但在估计算法的重复运行中并不都小于0.1的绝对值时,那么最好降低增益参数的初始值。通过将其除以例如2或5的因子,然后再尝试几次估计运行。 1277 | 1278 | ### 关于估计算法的其他说明 1279 | 1280 | #### 有条件和无条件估计 1281 | 1282 | RSiena有两种矩方法估计和模拟方法:有条件和无条件。两者的区别在于网络演化模拟的停止规则不同。 1283 | 1284 | 在无条件估计中,每个时期内的网络演化模拟(以及随之演化的行为维度)的停止规则是运行到预定的时间长度结束(每个观测时点之间时期的长度设为1.0)。 1285 | 1286 | 在有条件估计中,停止规则是基于观测数据计算出的停止标准。可以对每个依赖变量(网络或行为)进行有条件化(conditional),即给定这个依赖变量的观测变化数。 1287 | 1288 | 以一个社交网络为例:网络中的人们正在互相分享一个新的健身挑战。设定有两个变量:网络变量是谁与谁建立了联系,而行为变量是每个人接受了多少健身挑战。 1289 | 1290 | 在时间T1观察网络,并记录下每个人接受了多少挑战。在时间T2再次进行观察。现在希望模拟从T1到T2的网络和行为的演变。 1291 | 1292 | - 对网络变量进行有条件化:在条件估计中,你会运行模拟,直到T1的初始观测网络与模拟网络的差异数量等于T1和T2观测的网络邻接矩阵的差异数量。例如,如果从T1到T2有5个人之间的联系发生了变化(例如,新建立或断开的联系),那么模拟会运行,直到模拟网络与T1的初始观测网络的差异数量也达到5。这样,你就模拟了网络在这段时间内的真实变化。 1293 | - 对行为变量进行有条件化:你会运行模拟,直到T1的初始观测行为与模拟行为的绝对分数差之和等于T1和T2观测行为的绝对分数差之和。例如,如果从T1到T2,接受的健身挑战总数变化了10次(考虑所有人的行为变化),那么模拟会运行,直到模拟行为与T1的初始观测行为的绝对分数差之和也达到10。这样,你就模拟了接受健身挑战的行为在这段时间内的真实变化。 1294 | 1295 | 有条件估计更稳定、效率更高,因为相应的速率参数不需Robbins-Monro算法估计,这样可以减少需要该算法估计的参数数量。 1296 | 1297 | 在`sienaAlgorithmCreate`函数中,通过设置`cond`参数选择无条件估计和不同类型的有条件估计。 对于含多个依赖变量的数据,最多只能对一个依赖变量进行有条件化。这通过该函数中的`condvarno`和`condname`参数设置。 1298 | 1299 | 如果存在网络组成变化,只能使用无条件估计过程。 1300 | 1301 | 如果存在大量结构确定值,则无条件估计更可取。 1302 | 1303 | #### 固定参数 1304 | 1305 | 有时必须在模型中包含一个效应,但其精确数值难以确定。例如,如果在时间t2的网络中只包含互惠的选择,那么模型应该包含一个很大的积极互惠效应,但其值是3、5还是10没有区别。这会反映在估计过程中该参数的估计值很大、同时标准误也很大,导数接近0,通常导致算法也无法收敛。(这类问题在逻辑回归的最大似然估计和某些其他广义线性模型中也会出现;参见Geyer和Thompson (1992, section 1.6), Albert和Anderson (1984); Hauck和Donner (1977)。)这种情况下,应将此效应固定在一个很大值,而不是让其自由估计。这可以通过使用`setEffect`函数及`fix = TRUE`选项来指定。 1306 | 1307 | #### 自动固定参数 1308 | 1309 | 如果算法遇到计算问题,有时它会通过自动固定一个(或多个)参数来解决。这会在在报告中显示某参数被报告为已固定,但你并未设定。 1310 | 1311 | 如果第1阶段生成的某统计量似乎对相应参数的变化不敏感,则会使用此自动固定过程。 1312 | 1313 | 这表明在考虑初始参数值的邻域时,数据中关于这个参数的精确值的信息很少。然而,问题可能不在于正在被固定的参数,而是由其或其他参数的初始值选择不当引起的。 1314 | 1315 | 当程序警告自动固定了某参数时,请尝试弄清原因。 1316 | 1317 | 首先,检查数据输入和编码是否正确,然后重新指定模型或用其他(如0)初始值重新开始估计。有时从不同初始值(如算法选项中的“标准初始值”默认值)开始会得到更好的结果,但有时最好从模型中完全删除该效应。 1318 | 1319 | 也可能参数确实需要包含在模型中,但其精确值难以确定。这时,最好将参数设定为一个很大(或很小)的值,并固定他。 1320 | 1321 | #### 模型参数的时间异质性 1322 | 1323 | 在三个或更多不同时期的网络模型中,参数是否在期间之间保持常量是一个问题。这可以通过sienaTimeTest函数进行测试。要指定具有时间异质参数的模型,可以使用includeTimeDummy函数,如下所示。考虑将评估函数改写为: 1324 | 1325 | $f_k^{(m)}(x) = \sum_k (\beta_k + \delta_k^{(m)} h_k^{(m)}) s_{ik}(x(i\leftrightarrow j))$ (8) 1326 | 1327 | 其中m表示期间(在面板数据集中从第m时期的网络到第m+1时期的网络),$\delta_k^{(m)}$是与时间虚变量交互的效应参数。你可以通过以下函数简单地在模型中包含这些参数: 1328 | 1329 | ```R 1330 | myeffects <- includeTimeDummy(myeffects, 1331 | density, reciprocity, timeDummy = "2,3,6") 1332 | ``` 1333 | 1334 | 这会为列出的每个效应添加三个时间虚变量项。 1335 | 1336 | 建议从简单的模型开始,并基于对数据的理论和经验的理解(例如,不同的时期的网络是否覆盖了一些“机制”的重要性可能发生变化的时期)以及sienaTimeTest函数实现的分数量测试来决定是否要包含时间异质参数。 1337 | 1338 | Lospinoso等人(2011)对测试的工作原理及示例进行了技术呈现,Lospinoso和Snijders(2019)展示了其与检验拟合优度的关系。 1339 | 1340 | #### 限制最大出度 1341 | 1342 | 可以要求所有模拟网络的最大出度小于或等于某个给定值。这仅在观测网络在任何时期的网络的任何行为者的最大出度也不大于此数字时才有意义。 1343 | 1344 | 这是通过在确定算法设置的sienaAlgorithmCreate函数中的MaxDegree参数中指定允许的最大值来实现的。MaxDegree是一个已命名的向量,长度等于依赖网络的数量。此向量的每个元素必须具有相应网络的名称。例如,对于一个称为mynet的依赖网络,可以使用 1345 | 1346 | ```R 1347 | MaxDegree = c(mynet = 10) 1348 | ``` 1349 | 1350 | 来将最大度限制为10。对于两个称为friends和advisors的依赖网络,可以使用 1351 | 1352 | ```R 1353 | MaxDegree = c(friends = 6, advisors = 4) 1354 | ``` 1355 | 1356 | 对于单个网络,默认值为0表示最大度不受限制。对于多个网络,如果对一个网络有最大出度的约束但对另一个网络不限制,则此时值0不起作用,应使用至少为n - 1的界限,其中n是网络中的行为者数量(或最大数量,如果有多个群体)。 1357 | 1358 | 如果在所有或几乎所有度都等于该最大值的数据中使用了MaxDegree参数,则估计算法很可能不会收敛。固定选择设计与随机行为者导向模型的自由选择性质不兼容。有关固定选择设计的讨论,请参阅Holland和Leinhardt(1973),有关最近文献的引用,请参阅ˇZnidarˇsiˇc(2012)。 1359 | 1360 | MaxDegree选项不适用于基于似然的估计;因此,使用siena07的ML估计和使用sienaBayes的多层估计都不支持此选项。 1361 | 1362 | ## 其他话题:拟合优度 1363 | 1364 | RSiena中的sienaGOF函数允许用户跟据网络的辅助计量(例如最短路径分布)的拟合程度来评估模型的拟合程度,这些统计量不是某个特定显式效应,但仍是网络重要特征,需要由概率模型表示。当我们按照上文所述的方法指定模型时,可以用此方法检查最终结果是否也能很好地表示这些其他统计量。 1365 | 1366 | sienaGOF函数是由Lospinoso (2012)提出和详细说明的,并在Lospinoso和Snijders (2019)中进一步介绍,其基本操作是通过比较观察到的值(在周期末)与周期末模拟的值。差异通过使用马哈拉诺比斯距离(Mahalanobis Distance)结合辅助统计量进行评估。 1367 | 1368 | 许多辅助统计量可以直接使用(“开箱即用”),例如,入度和出度的分布以及行为变量的分布。这些在sienaGOF-auxiliary的帮助页面中列出。一些其他辅助统计量需要额外的包,如 igraph 和 sna,可以通过复制同一帮助页面中的示例脚本来获取。(构建的原因是减少RSiena对其他包的依赖。) 1369 | 1370 | 直接提供各种辅助统计量(开箱即用),例如入出度分布和行为变量分布。这些在sienaGOF-auxiliary的帮助页面中列出。一些其他辅助统计量需要额外的包,如igraph和sna,可以通过从相同帮助页面的示例中复制脚本获得。 (这种构造的原因是减少RSiena对其他包的依赖。) 1371 | 1372 | sienaGOF和sienaGOF-auxiliary的帮助页面中的示例对如何使用此函数给出了充分的帮助。也可参阅SIENA网站上的脚本。 1373 | 1374 | ### 图 1375 | 1376 | 可以绘制sienaGOF的结果,然后生成小提琴图(Hintze 和Nelson,1998),这种图形以箱线图和密度的平滑近似(由核密度估计)的结合形式展示统计量的分布,并且观察到的值重叠在上面。当概率分布集中在少数几点(通常是整数)时,小提琴图可能会变得扭曲,因此,密度图试图近似离散分布。对于相关的绘图函数,center和scale选项可以用来平衡各种统计量的中心和规模。对于整数集(例如,度或最短路径)的分布和累积分布,通常建议使用默认的center = FALSE,scale = FALSE,而对于共同规模不那么重要的统计量集,例如,三元组计数,通过使用center = TRUE,scale = TRUE进行绘制可能会得到更清晰的图片。 1377 | 1378 | ### p值 1379 | 1380 | sienaGOF的p值将观测数据在辅助统计量的空间(通常维度在4到20之间)中的位置与对应于估计模型的模拟数据集形成的点云进行Mahalanobis Distance距离比较,考虑了辅助统计量组成部分的相关性和不同方差。 1381 | 1382 | 这意味着非常小的p值表示拟合不佳。这里p = 0与p > 0之间存在一个重要区别。假设有1000个模拟数据集(由n3,即“第3阶段长度”给出);那么可能的非零p值的最小值是0.001。如果p = 0,则观测数据距离模拟数据点云的中心比任何模拟数据点都要远。如果p = 0.001或更大,则观测数据点至少必须在模拟点云的某个地方或者云内,因为一个或多个模拟数据点距离中心比观测数据远。总之,如果p = 0,则相对于辅助统计量,拟合的相当差。 1383 | 1384 | 可以使用常见的p值0.05作为判断拟合是否合适的阈值,但这个阈值在这里的重要性比在常规假设检验中的重要性还要低。 1385 | 1386 | 如果你有一个多组估计,需要对每一组单独应用sienaGOF,使用groupName关键字,通常为groupName="Data1",groupName="Data2",等等。(参见sienaGOF的帮助页面)。 1387 | 1388 | 对于多个群体的sienaGOF结果组合,可以组合为每个单独群体计算的p值。这里最合适的方法可能是逆正态法,也称为Lipták法;参见Hedges和Olkin(1985,第C.3节)。该方法将每个p值转换为标准正态变量,相加再除以√N,其中N是组合的研究数量,并在标准正态分布中测试结果。对于正态变换,可以使用R函数qnorm(检查是否需要qnorm(p)或qnorm(1-p))。为在标准正态分布中测试,可以使用pnorm。 1389 | 1390 | 另一种良好的组合程序是Fisher联合p值的方法,在Hedges和Olkin(1985)以及Snijders和Bosker(2012,第3章)中详细介绍。基本思想是,对于给出p值pk的群体k = 1,...,K,统计量是-2求和ln(pk),并在卡方分布中进行检验,自由度为2K。 1391 | 1392 | 脚本示例: 1393 | 1394 | http://www.stats.ox.ac.uk/~snijders/siena/RscriptMultipleGroups.R 1395 | 1396 | ### 组成变化、缺失数据和sienaGOF中的结构值 1397 | 1398 | 用于表示组成变化的加入者和离开者方法与sienaGOF函数不兼容。 1399 | 1400 | 缺失的连结值和结构决定的连结值在估计过程中不直接贡献给目标统计量。在 sienaGOF 中对这些值的处理反映了这种关系。目的是这些值不会贡献给观测值和模拟值之间的任何差异。 1401 | 1402 | 连结变量在期间的开始或结束处若有缺失,则在观测网络和模拟网络中都被替换为0。对于行为变量,它们被替换为缺失值(NA)。 1403 | 1404 | 如果在一个期间的开始和结束之间的结构值有任何差异,那么这些差异将按照以下方式处理。对于在期间开始时有结构值的关系变量,这个值会替换期间结束时的观测值(仅用于适应度评估)。对于在期间结束时有结构值但在开始时有自由值的关系变量,模拟值的参考值是缺失的;因此,期间结束时的模拟值将被期间结束时的结构值替换(同样,仅用于适应度评估)。 1405 | 1406 | 对于在期末有结构值但在期初有自由值的连结变量,缺少了对模拟值的参考;因此,期末的模拟值被替换为期末的结构值(同样,仅用于拟合优度评估)。 1407 | 1408 | ## 其他话题:多重共线性 1409 | 1410 | ### 标准误差 1411 | 1412 | 矩矩估计的标准误差的估计需要导数的估计,这表示统计量的预期值对参数的敏感程度。导数可以通过两种方法估计: 1413 | 1414 | 可以通过两种方法估计导数: 1415 | 1416 | - 带有公共随机数的有限差分法 1417 | - 得分函数法。 1418 | 1419 | 有限差分法简单解释在 Snijders(2001)中,得分函数法在 Schweinberger 和 Snijders(2007b)中发展出来(其中也解释了有限差分法)。得分函数法更可取,因为它是无偏的并且比有限差分法需要更少的计算时间,尽管它在估计算法的第3阶段需要更多的迭代。建议使用至少1000次迭代(默认)的得分函数法在第3阶段。对于需要公开发表的结果,建议在第3阶段至少有5000次迭代。 1420 | 1421 | 在一些情况下,由于参数之间的高相关性,标准误差的估计不稳定。可以通过多次运行 siena07,并使用不同的随机数种子(或默认的种子=NULL,每次运行也会给出不同的种子)来检查这一点。 1422 | 1423 | 检查这一点的更全面的方法呈现在以下脚本中: 1424 | 1425 | http://www.stats.ox.ac.uk/~snijders/siena/SE_checks.R 1426 | 1427 | http://www.stats.ox.ac.uk/~snijders/siena/RscriptStandardErrors.R 1428 | 1429 | 要计算给定估计集的标准误差,当这些估计是满意的的并且不需要更改时,可以使用 nsub = 0 的算法设置在 sienaAlgorithmCreate 中,所以跳过了第1和第2阶段,siena07 的整个操作需要的时间大大减少。 1430 | 1431 | 通过参数`findiff`设置估计导数的方法,通过参数`n3`设置第3阶段的迭代次数,两者都在创建具有算法规格的对象的 sienaAlgorithmCreate 函数中设定。 1432 | 1433 | 1434 | 1435 | ### 多重共线性 1436 | 1437 | 多重共线性意味着求逆以给出相关矩阵的矩阵是病态的。参数估计之间的相关接近±1是最常见的迹象。 1438 | 1439 | 如果参数估计完全共线(某些参数的标准误差,或参数的线性组合是无限大),标准误差会报告为`NA`(R 术语表示"不可用",缺失)。这可能取决于数据模型组合(例如,包括方差为0的协变量的协变量-自身效应; 或包括某些效应的组合,这些效应对任何数据集都是共线的,例如度数、传递三元组、度数活动度和平衡效应的组合 — 参见Snijders,2005),或数据、模型和参数的组合(当给出了某个参数值,或者达到了模型对某些参数或参数组合不敏感的某个参数值)。这里的解决办法通常是去掉一些效应。 1440 | 1441 | 当`siena07`在估计算法结束时发现近乎完美的共线性时,它会发出如下警告消息: 1442 | 1443 | ``` 1444 | *** Standard errors not reliable *** 1445 | The following is approximately a linear combination 1446 | for which the data carries no information: 1447 | 0.5 * beta[8] + -0.41 * beta[9] + 1 * beta[14] 1448 | It is advisable to drop one or more of these effects. 1449 | ``` 1450 | 1451 | 这基于目标函数(或线性预测器)中的项之间的线性依赖关系的自动检测,系数被四舍五入。此警告消息表示提到的效应的组合很可能导致多重共线性。对于算法结束时获得的参数值,会发出这种多重共线性的信号。 1452 | 1453 | 在有强烈但不完全的多重共线性的情况下,即一些参数估计(或它们的线性组合)之间的相关性接近但不等于 -1 或 +1,估计的标准误差通常不可靠。对于这些相关性的估计在输出文件的"估计的协方差矩阵(对角线以下的相关性)"标题下给出,并在估计结果的 summary(...) 中给出。强共线性可能在实践中导致估计的标准误差很大,也可能导致比较不同估计运行产生的结果时参数估计之间的较大差异。解决办法是通过排除参数估计与其他参数高度相关的非显著效应,将模型简化为更加简单的模型。 1454 | 1455 | 通常来说,参数与出度效应的高度相关不值得担忧,发现参数相关性‘过高’的阈值可能相当高,例如0.95(或0.90),但与其他效应的高度相关则需要检查估计的标准误差的稳健性。如果发现参数相关性过高,即超过0.95或0.90,应该通过多次运行模型并观察标准误差的稳定性来检查模型的稳健性。如果标准误差稳定,那么即使参数相关性超过0.90,也仍然可以接受。但是,这种接受度仅适用于那些显著地不同于0的参数,并且这些参数的估计值以及标准误差在重复运行估计算法时是稳定的。 -------------------------------------------------------------------------------- /Intro_RSiena.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LJK0719/Intro_RSiena/fff9a7f2e52c4f51fd5e83f28afb24e9939cb0fa/Intro_RSiena.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RSIENA 中文文档 2 | 3 | 本文档主要参考自RSIENA 英文官方文档,仅用于学习交流,不用于商业用途。 4 | 5 | 原文链接:https://www.stats.ox.ac.uk/~snijders/siena/ 6 | 7 | ## 简介 8 | 9 | 本文档概述了R语言中RSIENA库的用法,包括基本原理、数据准备、模型设定、结果分析等内容,旨在帮助国内R用户更好地使用RSIENA库进行网络分析。 10 | 11 | RSIENA实现了随机行为者导向模型(Stochastic Actor Oriented Models,SAOM),这是一类网络演化模型,由Tom Snijders等人在上世纪90年代提出。SAOM从行动者视角出发,模型化网络演化过程中行动者进行连结改变的概率。 12 | 13 | 文档当前还在更新中,拟添加参数检验相关内容,欢迎有兴趣的用户参与完善。 14 | 15 | ## 文档结构 16 | 17 | - 模型基本原理 18 | - SAOM模型简介 19 | - RSIENA模型类型 20 | - 研究工具准备 21 | - 数据准备 22 | - 模型设定 23 | - 基础效应 24 | - 数学规范 25 | - 效应设定 26 | - 模型估计 27 | - 估计过程概述 28 | - 估计算法 29 | - 估计结果 30 | - 模型评估 31 | - 拟合优度 32 | - 多重共线性 33 | ## 示例 34 | 35 | - `example1.ipynb`:一步步演示使用 RSIENA 分析网络与行为协同演化的示例,可以帮助读者快速上手。 36 | - `data1` 目录中包含了example1.ipynb使用 RSIENA 的数据及代码脚本,方便读者获取数据,原数据在“https://www.stats.ox.ac.uk/~snijders/siena/ 37 | ”中也能获取。 38 | 39 | 示例基于 RSienaTest 包实现,需要先安装该包。 40 | 41 | ## 许可协议 42 | 43 | 除特别注明外,本仓库中的文档使用 CC0 1.0 通用协议许可。 44 | 协议全文请见 LICENSE 文件。 45 | 46 | ## 参与指南 47 | 48 | 欢迎通过Issue和Pull Request参与文档的修改和完善。 49 | 50 | 具体要求: 51 | 52 | 1. 使用 Markdown 格式 53 | 2. 注明内容来源 54 | 3. 保持格式和结构一致 55 | 56 | 交流方式: 57 | * QQ群聊: 417131756 58 | -------------------------------------------------------------------------------- /data1/Kapf1.dat: -------------------------------------------------------------------------------- 1 | 0 0 3 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 1 1 0 0 0 0 0 0 3 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 3 1 0 1 0 3 1 1 3 0 3 3 3 0 3 3 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 3 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 1 0 1 0 3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 3 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 1 0 1 2 0 0 1 0 3 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 8 | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 1 0 3 0 1 0 1 0 0 0 3 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 1 3 3 3 3 1 3 0 3 0 0 3 1 1 0 3 0 0 3 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 12 | 0 3 3 3 1 1 0 0 2 1 3 0 1 0 0 3 0 1 1 0 1 0 0 0 0 0 0 0 2 0 1 0 0 0 0 1 0 0 0 13 | 0 0 3 1 1 1 0 0 2 0 1 1 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 14 | 2 0 0 3 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 2 0 0 0 1 0 0 0 3 0 0 3 0 0 0 0 0 0 0 0 15 | 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 3 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 16 | 0 1 1 1 0 1 3 1 3 0 3 3 3 2 1 0 3 0 1 0 1 0 0 3 1 1 0 0 1 3 1 3 0 1 0 2 3 1 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 19 | 0 0 3 1 0 1 0 0 0 0 3 3 0 3 3 3 0 1 0 0 1 0 3 3 0 0 0 2 1 1 2 1 3 1 0 0 2 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 3 0 0 0 0 3 0 0 1 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 0 0 0 0 2 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 3 0 3 0 0 0 0 3 0 0 1 3 0 1 0 0 0 0 0 25 | 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 2 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 3 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 3 0 0 0 1 0 0 0 0 0 0 0 1 0 2 3 0 1 1 30 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 3 0 3 0 1 3 1 1 31 | 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 32 | 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 3 0 0 0 3 1 1 3 3 3 33 | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 3 34 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 3 0 0 3 1 3 1 0 3 1 1 1 1 35 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 3 0 1 0 1 0 36 | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 1 1 1 1 0 1 1 0 37 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 3 0 3 0 1 0 1 0 1 0 38 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 3 0 1 1 1 1 0 0 39 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 3 3 1 0 0 0 0 0 40 | -------------------------------------------------------------------------------- /data1/Kapf2.dat: -------------------------------------------------------------------------------- 1 | 0 3 3 0 3 0 0 0 1 0 3 1 1 1 0 1 0 1 1 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 1 0 1 0 3 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 3 0 0 2 0 0 0 0 0 3 0 1 0 0 0 3 | 3 1 0 0 3 0 3 0 3 1 3 1 3 3 0 3 0 0 1 0 3 0 0 1 1 1 0 2 0 0 0 0 0 1 0 0 0 0 0 4 | 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 5 | 1 3 3 0 0 0 3 0 1 1 3 3 1 0 0 2 3 0 0 2 0 0 0 1 1 0 0 0 2 1 0 0 0 1 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 1 0 0 0 0 7 | 0 0 3 0 3 0 0 0 1 3 3 3 1 3 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 2 0 0 0 0 0 8 | 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 1 3 3 1 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 1 0 3 0 1 0 1 0 0 0 3 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 1 0 1 0 3 0 0 0 3 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 3 1 3 0 3 1 3 0 3 3 0 3 3 3 0 0 0 1 3 2 1 2 1 3 0 1 0 2 2 3 1 2 0 2 0 2 2 2 0 12 | 1 3 1 0 3 0 3 0 1 0 3 0 0 0 0 1 0 1 1 0 1 0 0 3 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 13 | 1 1 3 0 1 0 1 0 0 1 3 0 0 2 0 1 0 0 3 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 2 0 0 14 | 1 1 3 0 0 0 3 0 0 0 3 0 0 0 0 0 1 0 1 0 0 0 0 3 3 0 0 1 0 1 0 0 0 0 0 1 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 3 0 1 0 0 0 3 0 0 0 1 0 0 1 0 0 0 16 | 1 3 3 1 2 0 1 1 3 0 0 1 1 0 0 0 3 0 1 0 3 0 0 3 1 0 0 0 3 3 1 1 1 0 1 1 3 0 0 17 | 0 0 0 0 3 0 0 3 0 0 0 0 0 1 0 1 0 3 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 18 | 1 0 0 0 0 0 0 3 0 0 1 1 0 0 0 0 3 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 19 | 1 1 3 0 0 0 3 1 0 0 3 1 3 1 1 1 1 0 0 0 1 1 0 3 1 1 1 3 3 1 0 1 1 1 0 0 0 0 1 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 21 | 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 3 0 1 1 0 0 0 0 1 1 0 1 0 3 1 1 1 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 1 1 0 1 0 3 0 0 0 0 0 0 3 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 24 | 1 0 1 0 1 0 0 1 1 0 3 1 1 3 0 3 1 1 1 1 1 0 0 0 1 0 0 0 0 3 0 3 0 3 0 0 1 1 0 25 | 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 3 0 1 0 0 1 0 1 0 0 2 1 2 1 0 1 2 2 2 0 1 26 | 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 2 3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 1 0 0 1 0 3 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 30 | 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 3 0 3 1 0 1 1 0 31 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 3 0 0 0 32 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 3 1 1 0 0 1 3 0 0 0 3 0 1 3 1 0 33 | 0 0 0 0 0 2 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 3 34 | 0 1 1 0 1 0 2 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 3 1 1 0 0 1 3 1 3 1 0 3 1 1 1 0 35 | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 3 0 1 0 1 1 36 | 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 1 1 0 0 1 1 37 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 1 0 0 0 0 0 1 0 3 0 1 0 0 0 1 0 38 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 39 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 3 0 1 1 0 0 0 40 | -------------------------------------------------------------------------------- /data1/Kapferer.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | ----------------------------------- 4 | New Analysis started. 5 | Date and time: 30/07/2023 16:57:29 6 | New results follow. 7 | ----------------------------------- 8 | 9 | RSiena version 1.3.14.4 (08 7月 23) 10 | 11 | 12 | @1 13 | Estimation by stochastic approximation algorithm. 14 | ================================================= 15 | 16 | Random initialization of random number stream. 17 | Current random number seed is 186111. 18 | Effects object used: eff 19 | Model Type: 20 | Standard actor-oriented model 21 | Estimation method: conditional moment estimation 22 | . 23 | Conditioning variable is the total number of observed changes ("distance") 24 | in the network variable. 25 | Distances for simulations are 26 | period : 1 2 3 27 | distance : 350 407 166. 28 | Standard errors are estimated with the likelihood ratio method. 29 | Dolby method (regression on scores) is used. 30 | Initial value of gain parameter is 0.2000000. 31 | Reduction factor for gain parameter is 0.5000000. 32 | Number of subphases in Phase 2 is 4. 33 | 34 | Initial parameter values are 35 | 0.1 Rate parameter 18.4139 36 | 0.2 Rate parameter 21.4119 37 | 0.3 Rate parameter 8.7362 38 | 1. eval: outdegree (density) -0.7304 39 | 2. eval: reciprocity 0.0000 40 | 3. eval: transitive triplets 0.0000 41 | 42 | 43 | Observed values of target statistics are 44 | 1. Number of ties 702.0000 45 | 2. Number of reciprocated ties 616.0000 46 | 3. Number of transitive triplets 3037.0000 47 | 48 | 3 parameters, 3 statistics 49 | 50 | Estimation of derivatives by the LR method (type 1). 51 | 52 | 53 | @2 54 | End of stochastic approximation algorithm, phase 3. 55 | --------------------------------------------------- 56 | 57 | Total of 1749 iterations. 58 | Parameter estimates based on 749 iterations, 59 | basic rate parameters as well as 60 | convergence diagnostics, covariance and derivative matrices based on 1000 iterations. 61 | 62 | Information for convergence diagnosis. 63 | Averages, standard deviations, and t-ratios for deviations from targets: 64 | 1. 6.2960 86.9172 0.0724 65 | 2. 5.8420 86.6350 0.0674 66 | 3. 138.2320 1499.5152 0.0922 67 | 68 | Good convergence is indicated by the t-ratios being close to zero. 69 | 70 | Overall maximum convergence ratio = 0.1154 . 71 | 72 | 73 | 74 | @2 75 | Estimation Results. 76 | ------------------- 77 | 78 | Regular end of estimation algorithm. 79 | Total of 1749 iteration steps. 80 | 81 | 82 | @3 83 | Estimates and standard errors 84 | 85 | Rate parameters: 86 | 0.1 Rate parameter period 1 46.3025 ( 6.6913) 87 | 0.2 Rate parameter period 2 48.7911 ( 7.2287) 88 | 0.3 Rate parameter period 3 19.2577 ( 3.7284) 89 | 90 | Other parameters: 91 | 1. eval: outdegree (density) -2.4249 ( 0.0978) 92 | 2. eval: reciprocity 3.1195 ( 0.1681) 93 | 3. eval: transitive triplets 0.0641 ( 0.0049) 94 | 95 | 96 | @3 97 | Covariance matrices 98 | 99 | Covariance matrix of estimates (correlations below diagonal): 100 | 0.010 -0.015 0.000 101 | -0.937 0.028 0.000 102 | -0.441 0.200 0.000 103 | 104 | Derivative matrix of expected statistics X by parameters and 105 | covariance/correlation matrix of X can be found using 106 | summary(ans) within R, or by using the 'verbose' option in Siena07. 107 | 108 | Total computation time 42.05 seconds. 109 | 110 | 111 | ----------------------------------- 112 | New Analysis started. 113 | Date and time: 30/07/2023 21:33:25 114 | New results follow. 115 | ----------------------------------- 116 | 117 | RSiena version 1.3.14.4 (08 7月 23) 118 | 119 | 120 | @1 121 | Estimation by stochastic approximation algorithm. 122 | ================================================= 123 | 124 | Random initialization of random number stream. 125 | Current random number seed is 209611. 126 | Effects object used: eff 127 | Model Type: 128 | Standard actor-oriented model 129 | Estimation method: conditional moment estimation 130 | . 131 | Conditioning variable is the total number of observed changes ("distance") 132 | in the network variable. 133 | Distances for simulations are 134 | period : 1 2 3 135 | distance : 350 407 166. 136 | Standard errors are estimated with the likelihood ratio method. 137 | Dolby method (regression on scores) is used. 138 | Initial value of gain parameter is 0.2000000. 139 | Reduction factor for gain parameter is 0.5000000. 140 | Number of subphases in Phase 2 is 4. 141 | 142 | Initial parameter values are 143 | 0.1 Rate parameter 18.4139 144 | 0.2 Rate parameter 21.4119 145 | 0.3 Rate parameter 8.7362 146 | 1. eval: outdegree (density) -0.7304 147 | 2. eval: reciprocity 0.0000 148 | 3. eval: transitive triplets 0.0000 149 | 150 | 151 | Observed values of target statistics are 152 | 1. Number of ties 702.0000 153 | 2. Number of reciprocated ties 616.0000 154 | 3. Number of transitive triplets 3037.0000 155 | 156 | 3 parameters, 3 statistics 157 | 158 | Estimation of derivatives by the LR method (type 1). 159 | 160 | 161 | @2 162 | End of stochastic approximation algorithm, phase 3. 163 | --------------------------------------------------- 164 | 165 | Total of 1757 iterations. 166 | Parameter estimates based on 757 iterations, 167 | basic rate parameters as well as 168 | convergence diagnostics, covariance and derivative matrices based on 1000 iterations. 169 | 170 | Information for convergence diagnosis. 171 | Averages, standard deviations, and t-ratios for deviations from targets: 172 | 1. 5.1280 86.8058 0.0591 173 | 2. 2.9600 86.0182 0.0344 174 | 3. 158.9970 1519.9522 0.1046 175 | 176 | Good convergence is indicated by the t-ratios being close to zero. 177 | 178 | Overall maximum convergence ratio = 0.313 . 179 | 180 | 181 | 182 | @2 183 | Estimation Results. 184 | ------------------- 185 | 186 | Regular end of estimation algorithm. 187 | Total of 1757 iteration steps. 188 | 189 | 190 | @3 191 | Estimates and standard errors 192 | 193 | Rate parameters: 194 | 0.1 Rate parameter period 1 46.4869 ( 7.1297) 195 | 0.2 Rate parameter period 2 48.8024 ( 7.3712) 196 | 0.3 Rate parameter period 3 19.2995 ( 3.5898) 197 | 198 | Other parameters: 199 | 1. eval: outdegree (density) -2.4012 ( 0.0923) 200 | 2. eval: reciprocity 3.0735 ( 0.1571) 201 | 3. eval: transitive triplets 0.0638 ( 0.0050) 202 | 203 | 204 | @3 205 | Covariance matrices 206 | 207 | Covariance matrix of estimates (correlations below diagonal): 208 | 0.009 -0.013 0.000 209 | -0.919 0.025 0.000 210 | -0.377 0.086 0.000 211 | 212 | Derivative matrix of expected statistics X by parameters and 213 | covariance/correlation matrix of X can be found using 214 | summary(ans) within R, or by using the 'verbose' option in Siena07. 215 | 216 | Total computation time 41.24 seconds. 217 | 218 | 219 | ----------------------------------- 220 | New Analysis started. 221 | Date and time: 30/07/2023 21:50:55 222 | New results follow. 223 | ----------------------------------- 224 | 225 | RSiena version 1.3.14.4 (08 7月 23) 226 | 227 | 228 | @1 229 | Estimation by stochastic approximation algorithm. 230 | ================================================= 231 | 232 | Random initialization of random number stream. 233 | Current random number seed is 764169. 234 | Effects object used: eff 235 | Model Type: 236 | Standard actor-oriented model 237 | Estimation method: conditional moment estimation 238 | . 239 | Conditioning variable is the total number of observed changes ("distance") 240 | in the network variable. 241 | Distances for simulations are 242 | period : 1 2 3 243 | distance : 350 407 166. 244 | Standard errors are estimated with the likelihood ratio method. 245 | Dolby method (regression on scores) is used. 246 | Initial value of gain parameter is 0.2000000. 247 | Reduction factor for gain parameter is 0.5000000. 248 | Number of subphases in Phase 2 is 4. 249 | 250 | Initial parameter values are 251 | 0.1 Rate parameter 18.4139 252 | 0.2 Rate parameter 21.4119 253 | 0.3 Rate parameter 8.7362 254 | 1. eval: outdegree (density) -0.7304 255 | 2. eval: reciprocity 0.0000 256 | 3. eval: transitive triplets 0.0000 257 | 258 | 259 | Observed values of target statistics are 260 | 1. Number of ties 702.0000 261 | 2. Number of reciprocated ties 616.0000 262 | 3. Number of transitive triplets 3037.0000 263 | 264 | 3 parameters, 3 statistics 265 | 266 | Estimation of derivatives by the LR method (type 1). 267 | 268 | 269 | @2 270 | End of stochastic approximation algorithm, phase 3. 271 | --------------------------------------------------- 272 | 273 | Total of 1807 iterations. 274 | Parameter estimates based on 807 iterations, 275 | basic rate parameters as well as 276 | convergence diagnostics, covariance and derivative matrices based on 1000 iterations. 277 | 278 | Information for convergence diagnosis. 279 | Averages, standard deviations, and t-ratios for deviations from targets: 280 | 1. 5.5760 86.6320 0.0644 281 | 2. 6.4680 86.1185 0.0751 282 | 3. 202.3120 1513.9878 0.1336 283 | 284 | Good convergence is indicated by the t-ratios being close to zero. 285 | 286 | Overall maximum convergence ratio = 0.2113 . 287 | 288 | 289 | 290 | @2 291 | Estimation Results. 292 | ------------------- 293 | 294 | Regular end of estimation algorithm. 295 | Total of 1807 iteration steps. 296 | 297 | 298 | @3 299 | Estimates and standard errors 300 | 301 | Rate parameters: 302 | 0.1 Rate parameter period 1 46.7198 ( 6.8852) 303 | 0.2 Rate parameter period 2 49.1448 ( 7.0656) 304 | 0.3 Rate parameter period 3 19.3736 ( 3.6543) 305 | 306 | Other parameters: 307 | 1. eval: outdegree (density) -2.4410 ( 0.0999) 308 | 2. eval: reciprocity 3.1411 ( 0.1653) 309 | 3. eval: transitive triplets 0.0645 ( 0.0049) 310 | 311 | 312 | @3 313 | Covariance matrices 314 | 315 | Covariance matrix of estimates (correlations below diagonal): 316 | 0.010 -0.015 0.000 317 | -0.927 0.027 0.000 318 | -0.422 0.152 0.000 319 | 320 | Derivative matrix of expected statistics X by parameters and 321 | covariance/correlation matrix of X can be found using 322 | summary(ans) within R, or by using the 'verbose' option in Siena07. 323 | 324 | Total computation time 42.41 seconds. 325 | -------------------------------------------------------------------------------- /data1/Siena.txt: -------------------------------------------------------------------------------- 1 | ************************ 2 | Siena.txt 3 | ************************ 4 | 5 | Filename is Siena.txt. 6 | 7 | This file contains primary output for SIENA project <>. 8 | 9 | Date and time: 30/07/2023 21:51:37 10 | 11 | RSiena version 1.3.14.4 (08 07 2023) 12 | 13 | 14 | @1 15 | Data input. 16 | =========== 17 | 18 | 4 observations, 19 | 39 actors, 20 | 1 dependent network variables, 21 | 0 dependent bipartite variables, 22 | 0 dependent discrete behavior variables, 23 | 0 dependent continuous behavior variables, 24 | 2 constant actor covariates, 25 | 0 exogenous changing actor covariates, 26 | 0 constant dyadic covariates, 27 | 0 exogenous changing dyadic covariates, 28 | 0 no files with times of composition change. 29 | 30 | 31 | @2 32 | Reading network variables. 33 | -------------------------- 34 | 35 | Name of network variable: net. 36 | oneMode network. 37 | For observation moment 1, degree distributions are as follows: 38 | Nodes 39 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 | out-degrees 42 | 4 5 13 9 5 6 6 3 9 1 15 14 10 8 5 24 2 7 17 1 43 | 8 1 7 11 4 2 5 9 9 10 10 14 10 14 8 10 6 9 5 44 | in-degrees 45 | 4 5 13 9 5 6 6 3 9 1 15 14 10 8 5 24 2 7 17 1 46 | 8 1 7 11 4 2 5 9 9 10 10 14 10 14 8 10 6 9 5 47 | 48 | No missing data for observation 1. 49 | 50 | For observation moment 2, degree distributions are as follows: 51 | Nodes 52 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 53 | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 54 | out-degrees 55 | 12 12 17 3 14 2 14 6 9 7 19 14 18 12 8 22 8 9 25 2 56 | 16 7 7 21 18 10 4 11 13 16 10 12 10 16 9 12 6 9 6 57 | in-degrees 58 | 12 12 17 3 14 2 14 6 9 7 19 14 18 12 8 22 8 9 25 2 59 | 16 7 7 21 18 10 4 11 13 16 10 12 10 16 9 12 6 9 6 60 | 61 | No missing data for observation 2. 62 | 63 | For observation moment 3, degree distributions are as follows: 64 | Nodes 65 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 66 | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 67 | out-degrees 68 | 1 1 8 1 1 1 4 0 2 0 9 7 3 5 3 12 1 0 12 1 69 | 2 2 1 4 2 0 1 1 3 3 0 5 1 4 1 1 3 1 2 70 | in-degrees 71 | 3 2 9 3 1 2 2 0 5 0 8 4 2 2 3 6 1 0 2 2 72 | 2 0 3 5 0 0 3 4 4 4 2 7 2 4 3 2 4 1 2 73 | 74 | No missing data for observation 3. 75 | 76 | For observation moment 4, degree distributions are as follows: 77 | Nodes 78 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 79 | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 80 | out-degrees 81 | 5 4 10 2 9 1 7 4 2 2 21 5 5 5 2 10 3 2 7 1 82 | 2 0 2 6 6 0 0 2 2 2 1 4 2 6 1 1 2 0 1 83 | in-degrees 84 | 2 4 10 2 8 1 8 3 3 2 12 3 3 5 2 4 4 2 3 3 85 | 4 2 1 8 2 0 0 5 7 5 2 5 2 7 2 3 6 1 1 86 | 87 | No missing data for observation 4. 88 | 89 | 90 | 91 | 92 | @2 93 | Reading constant actor covariates. 94 | ---------------------------------- 95 | 96 | 2 variables, named: 97 | job_status 98 | centrality 99 | 100 | A total of 2 non-changing individual covariates. 101 | 102 | Number of missing cases: 103 | job_status 0 ( 0.0 %) 104 | centrality 0 ( 0.0 %) 105 | 106 | Information about covariates: 107 | minimum maximum mean centered 108 | job_status 1.0 8.0 4.897 Y 109 | centrality 0.0 1.0 0.026 Y 110 | The mean values are subtracted from the covariates. 111 | 112 | 113 | 114 | The mean structural dissimilarity value subtracted in the 115 | balance calculations is 0.2786. 116 | 117 | For the similarity variable calculated from each actor covariate, 118 | the mean is subtracted. 119 | These means are: 120 | Similarity job_status : 0.6780 121 | Similarity centrality : 0.9487 122 | 123 | 124 | 125 | @1 126 | Initial data description. 127 | ========================= 128 | 129 | 130 | @2 131 | Change in networks: 132 | ------------------- 133 | 134 | For the following statistics, missing values (if any) are not counted. 135 | 136 | Network density indicators: 137 | observation time 1 2 3 4 138 | density 0.213 0.301 0.074 0.099 139 | average degree 8.103 11.436 2.795 3.769 140 | number of ties 316 446 109 147 141 | missing fraction 0.000 0.000 0.000 0.000 142 | 143 | The average degree is 6.526 144 | 145 | 146 | Tie changes between subsequent observations: 147 | periods 0 => 0 0 => 1 1 => 0 1 => 1 Distance Jaccard Missing 148 | 1 ==> 2 926 240 110 206 350 0.371 0 (0%) 149 | 2 ==> 3 1001 35 372 74 407 0.154 0 (0%) 150 | 3 ==> 4 1271 102 64 45 166 0.213 0 (0%) 151 | 152 | Directed dyad Counts: 153 | observation total mutual asymm. null 154 | 1. 1482 316 0 1166 155 | 2. 1482 446 0 1036 156 | 3. 1482 66 86 1330 157 | 4. 1482 104 86 1292 158 | 159 | Standard values for initial parameter values 160 | ------------------------------------------------- 161 | 162 | constant net rate (period 1) 18.4139 163 | constant net rate (period 2) 21.4119 164 | constant net rate (period 3) 8.7362 165 | outdegree (density) -0.7304 166 | 167 | Initialisation of project <> executed succesfully. 168 | -------------------------------------------------------------------------------- /data1/kapfa_stat.dat: -------------------------------------------------------------------------------- 1 | 3 2 | 3 3 | 3 4 | 8 5 | 3 6 | 3 7 | 3 8 | 5 9 | 3 10 | 8 11 | 3 12 | 3 13 | 3 14 | 3 15 | 5 16 | 2 17 | 8 18 | 8 19 | 1 20 | 5 21 | 3 22 | 5 23 | 5 24 | 3 25 | 4 26 | 4 27 | 5 28 | 5 29 | 6 30 | 7 31 | 7 32 | 7 33 | 6 34 | 7 35 | 7 36 | 7 37 | 7 38 | 7 39 | 6 -------------------------------------------------------------------------------- /data1/kapfat.dat: -------------------------------------------------------------------------------- 1 | 0 1 2 | 0 1 3 | 0 1 4 | 0 0 5 | 0 1 6 | 0 1 7 | 0 1 8 | 0 0 9 | 0 1 10 | 0 0 11 | 0 1 12 | 0 1 13 | 0 1 14 | 0 1 15 | 0 0 16 | 0 1 17 | 0 0 18 | 0 0 19 | 1 1 20 | 0 0 21 | 0 0 22 | 0 0 23 | 0 0 24 | 0 0 25 | 0 1 26 | 0 1 27 | 0 0 28 | 0 0 29 | 0 0 30 | 0 0 31 | 0 0 32 | 0 0 33 | 0 0 34 | 0 0 35 | 0 0 36 | 0 0 37 | 0 0 38 | 0 0 39 | 0 0 40 | -------------------------------------------------------------------------------- /data1/kapfti1.dat: -------------------------------------------------------------------------------- 1 | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 1 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 13 | 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 | 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 15 | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 16 | 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 25 | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 30 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 31 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 33 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 34 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 35 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 36 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 37 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 38 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 39 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 40 | 41 | 42 | -------------------------------------------------------------------------------- /data1/kapfti2.dat: -------------------------------------------------------------------------------- 1 | 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 3 | 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 5 | 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 7 | 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 8 | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 12 | 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 | 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 14 | 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 16 | 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 17 | 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 21 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 31 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 32 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 33 | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 34 | 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 35 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 36 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 37 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 38 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 40 | 41 | -------------------------------------------------------------------------------- /data1/kapfts1.dat: -------------------------------------------------------------------------------- 1 | 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 8 | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 12 | 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 13 | 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 14 | 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 15 | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 16 | 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 17 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 19 | 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 21 | 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 28 | 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 30 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 31 | 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 32 | 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 33 | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 34 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 35 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 36 | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 37 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 38 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 39 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 40 | -------------------------------------------------------------------------------- /data1/kapfts2.dat: -------------------------------------------------------------------------------- 1 | 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 3 | 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 4 | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 5 | 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 7 | 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 8 | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 1 0 1 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 12 | 1 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 13 | 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 14 | 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 15 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 16 | 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 17 | 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 18 | 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 19 | 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 21 | 0 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 22 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 23 | 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 24 | 1 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 25 | 0 1 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 26 | 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 28 | 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 29 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 30 | 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0 1 1 0 31 | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 32 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 33 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 34 | 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 35 | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 36 | 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 37 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 38 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 39 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 40 | -------------------------------------------------------------------------------- /data1/program.R: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LJK0719/Intro_RSiena/fff9a7f2e52c4f51fd5e83f28afb24e9939cb0fa/data1/program.R -------------------------------------------------------------------------------- /example1.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "826c3bef", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "library(RSiena)\n", 11 | "setwd(\"./data1\") " 12 | ] 13 | }, 14 | { 15 | "cell_type": "markdown", 16 | "id": "bd19becc", 17 | "metadata": {}, 18 | "source": [ 19 | "# 数据介绍\n", 20 | "## 网络矩阵\n", 21 | "Kapferer的原始数据集包含4个39x39的网络矩阵,分别记录了两个不同时间点(相隔七个月)的“工具性互动”和“结社性互动”:\n", 22 | "\n", 23 | "- 4个39x39的网络矩阵,分别记录了两个时间点的“工具性互动”和“结社性互动”。\n", 24 | " - 工具性互动:工作相关的互动\n", 25 | " - 结社性互动:友谊相关的互动\n", 26 | "- 2个节点属性文件,记录了员工的职业类别等属性信息\n", 27 | "\n", 28 | "每个矩阵的39行和39列分别代表39个员工,矩阵的元素表示相应员工之间的互动存在(1)或不存在(0)。这些矩阵可以用来观察员工之间的互动模式如何随着时间的推移而改变。\n", 29 | "\n", 30 | "## 节点属性文件\n", 31 | "数据集还包括两个节点属性文件,记录了每个员工的属性:\n", 32 | "* kapfa_stat.dat:记录员工的职业类别(例如裁剪师、铁匠等)。\n", 33 | "* kapfat.dat:第一个变量表示是否是最核心的员工(Lyashi),第二个变量表示是否在高职位工作。\n", 34 | "这些属性可以作为协变量,有助于解释网络互动变化的原因。\n", 35 | "\n", 36 | "# 变量设定\n", 37 | "## 读取网络数据\n", 38 | "首先,我们读取了四个网络数据文件,并将它们转换为矩阵形式。" 39 | ] 40 | }, 41 | { 42 | "cell_type": "code", 43 | "execution_count": 2, 44 | "id": "1f4de56b", 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "net1 <- as.matrix(read.table(\"kapfts1.dat\"))\n", 49 | "net2 <- as.matrix(read.table(\"kapfts2.dat\"))\n", 50 | "net3 <- as.matrix(read.table(\"kapfti1.dat\")) \n", 51 | "net4 <- as.matrix(read.table(\"kapfti2.dat\"))" 52 | ] 53 | }, 54 | { 55 | "cell_type": "markdown", 56 | "id": "62d9dac3", 57 | "metadata": {}, 58 | "source": [ 59 | "接下来,我们将四个矩阵合并为一个三维数组,其中每个维度代表一个不同的时间点和互动类型。这样的结构有助于在Siena模型中分析动态网络变化。" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": 3, 65 | "id": "06ee1396", 66 | "metadata": {}, 67 | "outputs": [], 68 | "source": [ 69 | "network <- array(c(net1, net2, net3, net4), dim = c(39, 39, 4))\n", 70 | "net <- sienaDependent(network, type=\"oneMode\")" 71 | ] 72 | }, 73 | { 74 | "cell_type": "markdown", 75 | "id": "170794b8", 76 | "metadata": {}, 77 | "source": [ 78 | "读取两个属性文件,并将它们转换为协变量,以条件化员工的职业状态和中心性对网络互动的影响。" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": 4, 84 | "id": "c2e5a06e", 85 | "metadata": {}, 86 | "outputs": [], 87 | "source": [ 88 | "attr1 <- as.matrix(read.table(\"kapfa_stat.dat\"))\n", 89 | "attr2 <- as.matrix(read.table(\"kapfat.dat\"))\n", 90 | "\n", 91 | "job_status <- coCovar(attr1[,1])\n", 92 | "centrality <- coCovar(attr2[,1]) " 93 | ] 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "id": "bae02938", 98 | "metadata": {}, 99 | "source": [ 100 | "使用所有这些组件构建了一个完整的Siena数据对象,用于后续分析。\n", 101 | "\n", 102 | "模型设定" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "execution_count": 5, 108 | "id": "8951ce8a", 109 | "metadata": {}, 110 | "outputs": [], 111 | "source": [ 112 | "data <- sienaDataCreate(net, job_status, centrality)" 113 | ] 114 | }, 115 | { 116 | "cell_type": "markdown", 117 | "id": "b7683969", 118 | "metadata": {}, 119 | "source": [ 120 | "\n", 121 | "## 模型设定\n", 122 | "\n", 123 | "在模型设定阶段,选择了影响网络变化的效应。这些效应反映了网络结构和协变量对网络动态的影响:\n", 124 | "\n", 125 | "* 密度效应:反映了网络中的总体连接程度。\n", 126 | "* 互惠效应:衡量了网络中双向连接的倾向。\n", 127 | "* 传递闭包效应:描述了朋友的朋友成为朋友的倾向。\n", 128 | "* 协变量的自我效应:例如,工作状态可能影响个体的连接倾向。\n", 129 | "\n", 130 | "我们首先用`getEffects()`获得所有默认效应。然后使用`includeEffects()`选择感兴趣的效应加入模型,包括密度效应、互惠效应、传递闭包效应和协变量的自我效应。最后用`sienaModelCreate()` función创建模型对象。\n", 131 | "\n", 132 | "获得所有默认效应:" 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "execution_count": 6, 138 | "id": "b0c15857", 139 | "metadata": {}, 140 | "outputs": [], 141 | "source": [ 142 | "eff <- getEffects(data)" 143 | ] 144 | }, 145 | { 146 | "cell_type": "markdown", 147 | "id": "392b33f4", 148 | "metadata": {}, 149 | "source": [ 150 | "选择如下效应:" 151 | ] 152 | }, 153 | { 154 | "cell_type": "code", 155 | "execution_count": 7, 156 | "id": "6bc8438f", 157 | "metadata": {}, 158 | "outputs": [ 159 | { 160 | "name": "stdout", 161 | "output_type": "stream", 162 | "text": [ 163 | " effectName include fix test initialValue parm\n", 164 | "1 outdegree (density) TRUE FALSE FALSE -0.73042 0 \n", 165 | "2 reciprocity TRUE FALSE FALSE 0.00000 0 \n", 166 | "3 transitive triplets TRUE FALSE FALSE 0.00000 0 \n" 167 | ] 168 | } 169 | ], 170 | "source": [ 171 | "eff <- includeEffects(eff, density, recip, transTrip, inPop_job_status)" 172 | ] 173 | }, 174 | { 175 | "cell_type": "markdown", 176 | "id": "7e6c4961", 177 | "metadata": {}, 178 | "source": [ 179 | "创建模型:" 180 | ] 181 | }, 182 | { 183 | "cell_type": "code", 184 | "execution_count": 8, 185 | "id": "6222705c", 186 | "metadata": {}, 187 | "outputs": [ 188 | { 189 | "name": "stdout", 190 | "output_type": "stream", 191 | "text": [ 192 | "If you use this algorithm object, siena07 will create/use an output file Kapferer.txt .\n" 193 | ] 194 | } 195 | ], 196 | "source": [ 197 | "model <- sienaModelCreate(data, eff, projname=\"Kapferer\")" 198 | ] 199 | }, 200 | { 201 | "cell_type": "markdown", 202 | "id": "baaea037", 203 | "metadata": {}, 204 | "source": [ 205 | "\n", 206 | "## 模型估计\n", 207 | "\n", 208 | "我们使用`sienaAlgorithmCreate()`函数创建算法对象,然后用`siena07()`函数进行模型估计。\n", 209 | "\n", 210 | "`sienaAlgorithmCreate()`允许设定估计的参数。`siena07()`将数据、效应和算法作为输入,经过迭代计算后输出模型结果。\n", 211 | "\n", 212 | "创建算法对象:" 213 | ] 214 | }, 215 | { 216 | "cell_type": "code", 217 | "execution_count": 9, 218 | "id": "d70e114b", 219 | "metadata": {}, 220 | "outputs": [ 221 | { 222 | "name": "stdout", 223 | "output_type": "stream", 224 | "text": [ 225 | "If you use this algorithm object, siena07 will create/use an output file Kapferer.txt .\n" 226 | ] 227 | } 228 | ], 229 | "source": [ 230 | "alg <- sienaAlgorithmCreate(projname=\"Kapferer\")" 231 | ] 232 | }, 233 | { 234 | "cell_type": "markdown", 235 | "id": "62402661", 236 | "metadata": {}, 237 | "source": [ 238 | "进行模型估计:" 239 | ] 240 | }, 241 | { 242 | "cell_type": "code", 243 | "execution_count": 10, 244 | "id": "da1237e9", 245 | "metadata": {}, 246 | "outputs": [], 247 | "source": [ 248 | "est.results <- siena07(alg, data=data, effects=eff)" 249 | ] 250 | }, 251 | { 252 | "cell_type": "markdown", 253 | "id": "7b0ee81b", 254 | "metadata": {}, 255 | "source": [ 256 | "## 结果输出\n", 257 | "\n", 258 | "这些结果可以用来解释网络结构和动态的关键驱动因素,以及每个效应对网络变化的具体影响。\n", 259 | "\n", 260 | "基础报告:提供了关于数据和模型的基本信息。" 261 | ] 262 | }, 263 | { 264 | "cell_type": "code", 265 | "execution_count": 11, 266 | "id": "654e41ea", 267 | "metadata": {}, 268 | "outputs": [], 269 | "source": [ 270 | "print01Report(data)" 271 | ] 272 | }, 273 | { 274 | "cell_type": "markdown", 275 | "id": "c81c26bc", 276 | "metadata": {}, 277 | "source": [ 278 | "模型估计结果:提供了关于所选效应的估计值、标准误差等的详细信息。" 279 | ] 280 | }, 281 | { 282 | "cell_type": "code", 283 | "execution_count": 12, 284 | "id": "d13884c3", 285 | "metadata": {}, 286 | "outputs": [ 287 | { 288 | "data": { 289 | "text/plain": [ 290 | "Estimates, standard errors and convergence t-ratios\n", 291 | "\n", 292 | " Estimate Standard Convergence \n", 293 | " Error t-ratio \n", 294 | "\n", 295 | "Rate parameters: \n", 296 | " 0.1 Rate parameter period 1 46.7198 ( 6.8852 ) \n", 297 | " 0.2 Rate parameter period 2 49.1448 ( 7.0656 ) \n", 298 | " 0.3 Rate parameter period 3 19.3736 ( 3.6543 ) \n", 299 | "\n", 300 | "Other parameters: \n", 301 | " 1. eval outdegree (density) -2.4410 ( 0.0999 ) 0.0644 \n", 302 | " 2. eval reciprocity 3.1411 ( 0.1653 ) 0.0751 \n", 303 | " 3. eval transitive triplets 0.0645 ( 0.0049 ) 0.1336 \n", 304 | "\n", 305 | "Overall maximum convergence ratio: 0.2113 \n", 306 | "\n", 307 | "\n", 308 | "Total of 1807 iteration steps.\n", 309 | "\n", 310 | "Covariance matrix of estimates (correlations below diagonal)\n", 311 | "\n", 312 | " 0.010 -0.015 0.000\n", 313 | " -0.927 0.027 0.000\n", 314 | " -0.422 0.152 0.000\n", 315 | "\n", 316 | "Derivative matrix of expected statistics X by parameters:\n", 317 | "\n", 318 | " 3144.435 3079.791 38811.484\n", 319 | " 1647.118 1660.231 19743.129\n", 320 | " 26336.440 26148.386 466422.476\n", 321 | "\n", 322 | "Covariance matrix of X (correlations below diagonal):\n", 323 | "\n", 324 | " 7505.101 7426.981 119821.428\n", 325 | " 0.995 7416.389 119566.763\n", 326 | " 0.914 0.917 2292159.194" 327 | ] 328 | }, 329 | "metadata": {}, 330 | "output_type": "display_data" 331 | } 332 | ], 333 | "source": [ 334 | "summary(est.results)" 335 | ] 336 | }, 337 | { 338 | "cell_type": "code", 339 | "execution_count": null, 340 | "id": "803661fc", 341 | "metadata": {}, 342 | "outputs": [], 343 | "source": [] 344 | } 345 | ], 346 | "metadata": { 347 | "kernelspec": { 348 | "display_name": "R", 349 | "language": "R", 350 | "name": "ir" 351 | }, 352 | "language_info": { 353 | "codemirror_mode": "r", 354 | "file_extension": ".r", 355 | "mimetype": "text/x-r-source", 356 | "name": "R", 357 | "pygments_lexer": "r", 358 | "version": "4.3.1" 359 | } 360 | }, 361 | "nbformat": 4, 362 | "nbformat_minor": 5 363 | } 364 | -------------------------------------------------------------------------------- /picture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LJK0719/Intro_RSiena/fff9a7f2e52c4f51fd5e83f28afb24e9939cb0fa/picture1.png --------------------------------------------------------------------------------