精华内容
下载资源
问答
  • 6-交互作用图

    千次阅读 2016-12-18 20:08:18
    6-交互作用图6.0 交互作用图 包括顺序和通信,为系统的动态方面建模。交互作用图描述了对象间的交互作用,由对象、对象间的关系组成 顺序和通信以不同的方式表达了类似的信息。顺序描述消息的时间顺序...

    6-交互作用图

    6.0 交互作用图

    包括顺序图和通信图,为系统的动态方面建模。交互作用图描述了对象间的交互作用,由对象、对象间的关系组成

    顺序图和通信图以不同的方式表达了类似的信息。顺序图描述消息的时间顺序,适合于描述实时系统和复杂的脚本;通信图描述对象间的关系。两者在语义上相当,彼此转换而不损失信息

    6.0.1交互作用图主要组成元素

    1. 对象
    2. 连接
    3. 消息
    4. 包含注释和约束

    6.0.1交互图示例

    顺序图

    image

    通信图

    image

    6.1 顺序图

    存在两个轴,水平轴表示不同的对象,垂直轴表示时间。

    顺序图标识元素

    顺序图的五要素是:活动者、对象、生命线、控制焦点、消息

    1. 对象:带垂直虚线的矩形框
    2. 垂直虚线:对象的生命线
    3. 对象间通信:对象的生命线间画消息

    消息(重要)

    可以是信号、操作调用等。当收到消息,接收对象执行相应的活动,对象生命线上细长矩形框表示对象激活。

    消息以带标签的箭头表示,省去序列号,可带条件表达式,即互斥的分支。

    image

    • 简单消息是从一个对象到另一个对象的控制流的转移。
    • 同步消息是消息发出了以后,发送对象必须等到接收对象的应答,才能继续自己的操作。
    • 异步消息是消息发出了以后,发送对象不必等到接收对象的应答,就可以继续自己的操作。

    对象生命线

    垂直的虚线,对象生命线代表对象创建直到结束的生命周期,生命线的终端标一个“X”。

    有控制中心(激活)(重要)

    细长的矩形,表示对象直接或通过子过程执行一个动作的时间段。矩形的顶端和动作的开始对齐,矩形的底部和动作的完成对齐(可以用返回消息来标记)。

    顺序图实例

    image

    模拟一下三国演义的赤壁之战的时序图
    image

    6.2 顺序图应用

    客户端发消息给PrintService,Service接着发消息给Image创建工资单,在建立工资单的打印图象时,需要雇员的信息,及工资数,而后建立打印图象。最后,Service发消息到打印接口,打印工资单。

    image

    6.3 通信图

    强调参与交互作用的对象的组织。描述了交互作用的对象的静态结构(上下文),对象间交换的消息的时间顺序(交互作用) 。

    区别于顺序图的特点(重要)

    1. 有路径:表示对象间如何连接
    2. 有序列号:表示消息的时间顺序,如1、1.1、2、3.4,可以是任意深度的嵌套。

    通信图示例

    image

    语义等价

    顺序图与通信图在语义上是等价的,因而它们可以相互转换而不损失信息。但它们显式地可视化描述了不同的信息,通信图显式描述对象间如何连接,顺序图显式描述对象间交互消息的时间顺序。

    前面描述打印工资单的顺序图和通信图是等价的,可以相互转换而不损失信息。

    6.6 交互作用图应用

    为系统的动态方面建模,上下文(建模环境)可以是整个系统、一个子系统、一个操作或一个类,还可为用例的一个脚本建模。

    按时间顺序为控制流建模

    1. 确定交互作用的上下文
    2. 确定参与交互作用的对象,按重要性从左至右放在时序图中
    3. 确定每个对象的生命线
    4. 按消息发生的时间从上到下放置在生命线间
    5. 如需规定时间或空间约束,可为消息附加适当的时间或空间约束
    6. 如想更正式地描述这个控制流,可为每个消息添加前置条件和后置条件

    按组织结构为控制流建模

    1. 确定交互作用的上下文
    2. 确定参与交互作用的对象,按重要性由中间到四周放在协作图中
    3. 确定每个对象的初始特性,显示对象在交互作用期间发生的变化,用复制对象表示变化后的对象以区别于原对象(体现对象随时间的变化)
    4. 确定对象间的连接
      (i) 先布置关联连接
      (ii) 再布置其他的连接:按消息发生的时间顺序确定消息序列号,可为消息附加适当的时间或空间约束,可为消息添加前置条件和后置条件。

    单个顺序图只描述一个控制流。通常,采用多个交互作用图来描述系统的动态特性,一部分描述主要过程,其它的描述备选过程或例外过程。

    随堂测试

    示例简介 : 
    -- 使用场景 : 汽车租赁公司;
    -- 使用的对象 : Customer (客户), Worker (工作人员), 
                Order (请求), Record (记录), Car (汽车);
    -- 工作流程 :   ① 客户 向 工人 提出租车要求, 
                    ② 工人 检查 请求, 
                    ③ 客户 付款,
                    ④ 工人 填写 记录,
                    ⑤ 工人 取车;
    绘制相应的时序图?  并将所绘制的时序图转换为协作图?
    

    image
    image

    展开全文
  • % 示例:绘制3(A: A1, A2, A3)*3(B: B1, B2, B3)交互作用图 % 准备数据:行是自变量A的数据,列是自变量B的数据 mean = [487.111, 515.761, 638.639; 479.261, 503.000, 546.315; 583.183, 387.921, 421.831]; % 因...

    分享一下画图的脚本,主要是留个备份,以后自己画图时方便查找~

    该脚本主要使用了MATLAB绘图的一些基础知识,比较麻烦的是error bar的绘制,个人感觉本文使用这个方法是比较好用的(我也试过下载别人的function来画error bar,但没有找到合适的)。

    以下是代码,语句都比较容易理解,且做了注释,所以就不一一阐述了。

    clc;

    clear;

    close all;

    % 示例:绘制3(A: A1, A2, A3)*3(B: B1, B2, B3)交互作用图

    % 准备数据:行是自变量A的数据,列是自变量B的数据

    mean = [487.111, 515.761, 638.639; 479.261, 503.000, 546.315; 583.183, 387.921, 421.831]; % 因变量均值

    se = [22.318, 37.683, 28.271; 27.391, 53.286, 46.012; 42.371, 53.146, 38.917]; % 因变量标准误

    % 绘图

    figure = bar(mean); % 使用bar函数绘制直方图,如果想绘制线形图,则使用plot函数

    hold on; % 在同一个图中绘制多个数据时需要用“hold on”函数

    % 在同一个图中,绘制出误差棒

    % (1)在这个例子中,如果我们直接用errorbar(mean, se)绘制误差棒

    % (2)会导致误差棒重叠在横坐标为1、2、3的三个位置上

    % (3)所以我们需要定义一个数组,指定每个误差棒的横坐标

    x = [0.775 1 1.225; 1.775 2 2.225; 2.775 3 3.225]; % 与mean中的元素一一对应

    for i = 1:3 % 依次绘制出mean中每一行的误差棒

    errorbar(x(:,i), mean(:,i), se(:,i), 'k', 'Linestyle', 'None'); % 绘制黑色的误差棒,不画线条

    end

    box off; % 去掉上方和右边的框线

    % 设置轴的名称

    xlabel('A'); % x轴名称

    ylabel('Reaction time (ms)'); % y轴名称

    % 设置轴的刻度值和区间

    set(gca, 'XTickLabel', {'A1', 'A2', 'A3'}); % x轴的刻度值

    set(gca, 'XLim', [0.5, 3.5]); % x轴区间

    set(gca,'YLim', [0, 700]); % y轴区间

    % 更改颜色

    set(figure(1),'FaceColor','#a2a2a2');

    set(figure(2),'FaceColor','#c6c6c6');

    set(figure(3),'FaceColor','#ececec');

    % 设置字体、字号

    set(gca, 'Fontname', 'Times New Roman'); % 字体

    set(gca,'Fontsize', 12); % 字号

    % 添加图例

    % (1)前面几个参数('B1'、'B2'、'B3')是图例中各数据的名称

    % (2)如果默认的位置不太好看,我们可以通过'Location'参数指定图例的位置

    % (3)"上下左右"分别对应"东南西北",例如"右上角"对应'northeast'

    legend('B1', 'B2', 'B3', 'Location', 'northeast');

    % 添加标题

    title('The interaction between A & B');

    最终效果图如下。

    dae6415b4428

    关于导出

    (1)如果是用于组会汇报、期刊投稿,一般而言300dpi的位图就足够了(当然投稿的话,具体还是要根据期刊的要求),在绘图窗口中,选择“文件”——“导出设置”,在“渲染”页面中将“分辨率(dpi)”一栏的参数更改为“300”,便可将导出图像的大小更改为300dpi。

    (2)如果是要打印成poster,推荐导出为矢量图格式,例如svg。

    关于配色

    可以在encycolorpedia这个网站上寻找,例如我们可以搜索“grey”,然后点击第一个条目。

    dae6415b4428

    在“阴影色调和暗色泽”一栏,便可以找到配色方案。

    dae6415b4428

    然后便可以在相应的代码中选择想要使用的颜色,“FaceColor”指的就是直方图中柱子的颜色,此外“EdgeColor”可以修改柱子框线的颜色,例如:

    % 更改颜色

    set(figure(1),'FaceColor','#a2a2a2', 'EdgeColor','#a2a2a2');

    set(figure(2),'FaceColor','#c6c6c6', 'EdgeColor','#c6c6c6');

    set(figure(3),'FaceColor','#ececec', 'EdgeColor','#ececec');

    修改之后的效果如下。

    dae6415b4428

    展开全文
  • 多元统计分析 中,交互作用是指某因素作用随其他因素水平的不同而不同,两因素同时存在是的作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。通俗来讲就是,当两个或多个因素同时作用于一个结局时...

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

    原文出处:拓端数据部落公众号

    引言

    多元统计分析 中,交互作用是指某因素作用随其他因素水平的不同而不同,两因素同时存在是的作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。通俗来讲就是,当两个或多个因素同时作用于一个结局时,就可能产生交互作用,又称为效应修饰作用(effect modification)。当两个因素同时存在时,所导致的效应(A)不等于它们单独效应相加(B+C)时,则称因素之间存在交互作用。当A=B+C时称不存在交互效应;当A>B+C时称存在正交互作用,又称协同作用(Synergy)。
    在一个回归模型中,我们想写的是

    当我们限制为线性模型时,我们写

    或者

    但是我们怀疑是否缺少某些因素……比如,我们错过所有可能的交互影响。我们可以交互变量,并假设

    可以进一步扩展,达到3阶

    甚至更多。

    假设我们的变量  在这里是定性的,更确切地说是二元的。

    信贷数据

    让我们举一个简单的例子,使用信贷数据集。

    Credit数据是根据个人的银行贷款信息和申请客户贷款逾期发生情况来预测贷款违约倾向的数据集,数据集包含24个维度的,1000条数据。

    该数据集将通过一组属性描述的人员分类为良好或不良信用风险。
    数据集将通过一组属性描述的人员分类为良好或不良信用风险。

    建立模型

    我们读取数据

    db=Credit

    我们从三个解释变量开始,

    
    reg=glm(Y~X1+X2+X3,data=db,family=binomial)
    summary(reg)

    没有交互的回归长这样

    这里有几种可能的交互作用(限制为成对的)。进行回归时观察到:

    交互关系可视化

    我们可以画一幅图来可视化交互:我们有三个顶点(我们的三个变量),并且可视化了交互关系

    
    plot(sommetX,sommetY,cex=1,axes=FALSE,xlab="",ylab="",
    
    for(i in 1:nrow(indices)){
    segments(sommetX[indices[i,2]],sommetY[indices[i,2]],
    text(mean(sommetX[indices[i,2:3]]),mean(sommetY[indices[i,2:3]]),
    }
    
    text(sommetX,sommetY,1:k)

    这给出了我们的三个变量

    这个模型似乎是不完整的,因为我们仅成对地看待变量之间的相互作用。实际上,这是因为(在视觉上)缺少未交互的变量。我们可以根据需要添加它们

    
    reg=glm(Y~X1+X2+X3+X1:X2+X1:X3+X2:X3,data=db,family=binomial)
    k=3
    theta=pi/2+2*pi*(0:(k-1))/k
    plot(X,Y
    for(i in 1:nrow(indices)){
    segments(X[indices[i,2]],Y[indices[i,2]],
    for(i in 1:k){
    cercle(c(cos(theta)[i]*1.18,sin(theta)[i]*1.18),.18)
    text(cos(theta)[i]*1.35,sin(theta)[i]*1.35,
    points(X,Y,cex=6,pch=1)
    

    这里得到

    如果我们更改变量的“含义”(通过重新编码,通过排列真值和假值),将获得下图

    
    glm(Y~X1+X2+X3+X1:X2+X1:X3+X2:X3,data=dbinv,family=binomial)
    plot(sommetX,sommetY,cex=1
    for(i in 1:nrow(indices)){
    segments(sommetX[indices[i,2]]
    for(i in 1:k){
    cercle(c(cos(theta)[i]*1.18,sin(theta)[i]*1.18)
    
    points(sommetX,sommetY,cex=6,pch=19)
    

    然后可以将其与上一张图进行比较

    使用5个变量,我们增加了可能的交互作用。

    然后,我们修改前面的代码

    
    formule="Y~1"
    for(i in 1:k) formule=paste(formule,"+X",i,sep="")
    for(i in 1:nrow(indices)) formule=paste(formule,"+X",indices[i,2],":X",indices[i,3],sep="")
    reg=glm(formule,data=db,family=binomial)
    plot(sommetX,sommetY,cex=1
    for(i in 1:nrow(indices)){
    segments(sommetX[indices[i,2]],sommetY[indices[i,2]],
    for(i in 1:k){
    cercle(c(cos(theta)[i]*1.18,sin(theta)[i]*1.18)
    points(sommetX,sommetY,cex=6
    

    给出了更复杂的图,

    我们也可以只采用2个变量,分别取3和4种指标。为第一个提取两个指标变量(其余形式为参考形式),为第二个提取三个指标变量,

    formule="Y~1"
    for(i in 1:k) formule=paste(formule,"+X",i,sep="")
    for(i in 1:nrow(indices)formule=paste(formule,"+X",indices[i,2],":X",indices[i,3],sep="")
    reg=glm(formule,data=db,family=binomial)
    for(i in 1:nrow(indices){
    if(!is.na(coefficients(reg)[1+k+i])){
    segments(X[indices[i,2]],Y[indices[i,2]],
    }
    for(i in 1:k){
    cercle(c(cos(theta)[i]*1.18,sin(theta)[i]*1.18),.18)
    text(cos(theta)[i]*1.35,sin(theta)[i]*1.35,
    }
    

    我们看到,在左边的部分(相同变量的三种指标)和右边的部分不再有可能发生交互作用。

    我们还可以通过仅可视化显著交互来简化图形。

    
    for(i in 1:nrow(indices)){
    if(!is.na(coefficients(reg)[1+k+i])){
    if(summary(reg)$coefficients[1+k+i,4]<.1){
    
    

    在这里,只有一个交互作用是显著的,几乎所有的变量都是显著的。如果我们用5个因子重新建立模型,

    
    for(i in 1:nrow(indices))
    formule=paste(formule,"+X",indices[i,2],":X",indices[i,3],sep="")
    reg=glm(formule,data=db,family=binomial)
    
    for(i in 1:nrow(indices){
    if(!is.na(coefficients(reg)[1+k+i])){
    if(summary(reg)$coefficients[1+k+i,4]<.1){
    
    

    我们得到


    最受欢迎的见解

    1.R语言多元Logistic逻辑回归 应用案例

    2.面板平滑转移回归(PSTR)分析案例实现

    3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

    4.R语言泊松Poisson回归模型分析案例

    5.R语言回归中的Hosmer-Lemeshow拟合优度检验

    6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

    7.在R语言中实现Logistic逻辑回归

    8.python用线性回归预测股票价格

    9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

    展开全文
  • 交互作用就是看二者合在一起的效应,与二者单独效应之和(相加)/之乘(相乘),相等还是不相等。不相等,那就是有交互。Mediation是解释暴露因素how导致的结局,而interaction是说明who是高风险目标人群。

    1. 交互作用概述

    (1) 概念
    某一因素的真实效应(单独效应)随着另一因素水平的改变而改变。当两种或两种以上暴露因素同时存在时所致的效应不等于它们单个作用相联合的效应时,则称因素之间存在交互作用。
    ① 因素A的效应在因素B的不同水平上存在差异,则认为因素A、B之间存在交互作用。
    ② 因素A、B的联合效应不等于两因素独立效应之和或之积。

    (2) 识别
    ①统计表:所有可能交叉组合情况下的结局指标;
    ②统计图:观察另一因素各水平下,某因素与结局指标关系图是否平行(Addictive interation)。

    (3) 理解交互作用
    在不同B因素水平,A因素的效应有统计学差异;同理,在不同A因素水平,B因素的效应也有差异。交互作用就是看二者合在一起的效应,与二者单独效应之和(相加)/之乘(相乘),相等还是不相等。不相等,那就是有交互。Mediation是解释暴露因素how导致的结局,而interaction是说明who是高风险目标人群。
    首先需明确,“交互作用”是指统计学上的交互作用,不能直接说它们具有生物学意义上的交互作用。因为统计模型不止一种,你会看到有些研究中,相乘模型有统计学意义,相加模型没有统计学意义,或者相乘模型为拮抗作用,相加模型为协同作用;所以,这才有了谁更合理的争论。根据“A因素和B因素在相加尺度上具有交互作用”,可以推测有生物学交互,而不能直接写“具有生物交互作用”。同样,没检测到统计学上的交互作用,也不能说明没有生物学交互作用。⚠️注意:有无统计学交互作用很大程度上取决于所选择的模型,所以在报告有无交互作用时,需要说明分析所用的模型。

    (4) 相加交互与相乘交互的差异
    统计建模中一般线性模型交互项反映的是因素间相加交互作用(additive interactions,INTA),而logistic和Cox等广义线性模型则反映因素间统计学上相乘交互作用(multiplicative interaction,INTM),即logistic乘积项仅反映统计学上的交互,而只有在生物学机制上病因因素间存在相加交互作用才可解释为相加交互作用。

    (5) 评价交互作用的目的和意义
    ①在资源有限的情况下,识别对某干预受益最大的人群(亚组)。
    ②在某一主要暴露因素不容易施加干预的情况下,识别最有可能施加干预的互作协变量以降低主要暴露因素的效应。
    ③揭示暴露影响疾病发生的机制。
    ④提高评价某暴露因素对结局影响总效应的把握度。
    ⑤仅从统计学角度考虑,通常包含交互作用项的模型拟合数据更好。

    2. 二分类解释变量交互作用

    2.1 相乘交互作用

    (1) 相乘交互作用的定义:假设研究多风险因素中交互作用的两暴露因素为AB,则OR00表示AB均无暴露,即OR00=1;OR10表示A暴露、B无暴露,OR01表示A无暴露、B暴露,OR11表示A、B均暴露。则相乘交互作用INTM=ORA×B=OR11/(OR10×OR01)。

    (2) 相乘交互作用的判定:logistic 等回归乘积项95%CI不包含1,表明有相乘交互作用。交互项得到的OR值<1,拮抗作用;交互项 OR>1,协同作用。

    2.2 相加交互作用

    (1) 定量评价流行病学研究中暴露因素间及暴露因素与基因间相加交互作用需要3项指标:交互对比度(interaction contrast ratio,ICR)又称交互作用超额相对危险度(relative excess risk due to interaction,RERI),交互作用归因比(attributable proportion due to interaction,AP)和协同指数(the synergy index,S)。

    (2) 相加交互作用3项指标定义为
    RERI = ICR = OR11 - OR10 - OR01 + 1
    AP = ICR/OR11
    S = (OR11 - 1)/(OR10 + OR01)=(OR11 - 1)/(OR11 + 1 - ICR)

    在二分类logistic回归模型中,ln[P/(1-P)] = β0 + β1A + β2B + β3A×B,OR10=exp(β1),OR01=exp(β2),OR11=INTA=exp(β1 + β2 + β3)

    (3) 相加交互作用的判定:如果两因素有相加交互作用,则RERI 95%CI、AP 95%CI应不包含0,S 95%CI应不包含1。超额相对危险度RERI以及归因比AP均>0,且可信区间不包括0, S>1且可信区间不包括1,表示存在交互作用,且为协同作用。RER1以及AP均<0,S<1,表示存在交互作用,且为拮抗作用。

    2.3 计算置信区间CI的方法

    Delta法、Wald法、轮廓似然置信区间(profile likelihood confidence intervals,PL)法、variance recovery method和percentile bootstrapping等。

    3. R 代码示例

    epiR R包可实现将两个二元解释变量作为交互项纳入logistic回归,计算其乘法和加法交互作用(RERIAPS)。置信区间的计算基于Hosmer和Lemeshow(1992)描述的delta方法。

    (1) R 包安装及数据介绍:

    install.packages("epiR")
    library(epiR) 
    ## Data from Rothman and Keller (1972) evaluating the effect of joint exposure to alcohol and tabacco on risk of cancer of the mouth and pharynx (cited in Hosmer and Lemeshow, 1992):
    can <- c(rep(1, times = 231), rep(0, times = 178), rep(1, times = 11), 
             rep(0, times = 38))
    smk <- c(rep(1, times = 225), rep(0, times = 6), rep(1, times = 166), 
             rep(0, times = 12), rep(1, times = 8), rep(0, times = 3), rep(1, times = 18), 
             rep(0, times = 20))
    alc <- c(rep(1, times = 409), rep(0, times = 49))
    dat <- data.frame(alc, smk, can)
    
    #因子化前后,回归分析结果一致
    dat$smk <- factor(dat$smk)
    dat$alc <- factor(dat$alc)
    dat$can <- factor(dat$can)
    summary(dat)
    

    (2) 相乘交互作用及二元Logist回归:

    # 1) 相乘交互作用及二元Logist回归:
    fit <- glm(can ~ alc + smk + alc:smk, family = binomial(link = "logit"), data = dat)
    summary(fit)$coefficients
    coef <- summary(fit)$coefficients[,1]
    se <- summary(fit)$coefficients[,2]
    Results <- cbind(exp(coef),exp(coef-1.96*se),exp(coef+1.96*se))
    exp(confint(fit)) #另外一种形式显示可信区间
    P <- summary(fit)$coefficients[4,4]
    dimnames(Results)[[2]] <- c("OR", "lower","upper")
    Results
    
    #                   OR      lower      upper
    #(Intercept) 0.1500000 0.04457283  0.5047918
    #alc1        3.3333333 0.70058649 15.8597280
    #smk1        2.9629630 0.68002749 12.9099922
    #alc1:smk1   0.9149096 0.15435605  5.4229143
    

    从结果可知,饮酒与吸烟的乘法交互效应为0.91<1,交互P值为0.92,不显著。

    (3) 相加交互作用及二元Logist回归:

    # 2) 相加交互作用及二元Logist回归:
    ## Table 2 of Hosmer and Lemeshow (1992):
    dat.glm01 <- glm(can ~ alc + smk + alc:smk, family = binomial, data = dat)
    summary(dat.glm01) #P interaction= 0.92197
    
    ## What is the measure of effect modification on the additive scale?
    ## RERI
    epi.interaction(model = dat.glm01, param = "product", coef = c(2,3,4), type = "RERI", conf.level = 0.95)
    ## Measure of interaction on the additive scale: RERI 3.73 
    ## (95% CI -1.84 -- 9.32), page 453 of Hosmer and Lemeshow (1992).
    
    #AP 和 S
    epi.interaction(model = dat.glm01, param = "product", coef = c(2,3,4), type = "APAB", conf.level = 0.95)
    #        est       lower     upper
    #1 0.4138765 -0.07306308 0.9008162
    epi.interaction(model = dat.glm01, param = "product", coef = c(2,3,4), type = "S", conf.level = 0.95)
    #     est     lower    upper
    #1 1.870482 0.6460433 5.415585
    

    结果表明,加法交互的3个指标RERI、AP和S均不显著,推测可能不存在生物学交互作用。

    (4) 哑变量实现交互作用:

    # 3) 哑变量实现交互作用
    ## Rothman defines an alternative coding scheme to be employed for parameterising an interaction term. Using this approach, instead of using two risk factors and one product term to represent the interaction (as above) the risk factors are combined into one variable with (in this case)
    ## four levels:
    ## a.neg b.neg: 0 0 0
    ## a.pos b.neg: 1 0 0
    ## a.neg b.pos: 0 1 0
    ## a.pos b.pos: 0 0 1
    
    dat$d <- rep(NA, times = nrow(dat))
    dat$d[dat$alc == 0 & dat$smk == 0] <- 0
    dat$d[dat$alc == 1 & dat$smk == 0] <- 1
    dat$d[dat$alc == 0 & dat$smk == 1] <- 2
    dat$d[dat$alc == 1 & dat$smk == 1] <- 3
    dat$d <- factor(dat$d)
    
    ## Table 3 of Hosmer and Lemeshow (1992):
    dat.glm02 <- glm(can ~ d, family = binomial, data = dat)
    summary(dat.glm02)
    
    # 1> 乘法交互尺度上的效应修饰作用
    ## What is the measure of effect modification on the multiplicative scale?
    ## See VanderWeele and Knol (2014) page 36 and Knol and Vanderweele (2012) for details.
    beta1 <- as.numeric(dat.glm02$coefficients[2])
    beta2 <- as.numeric(dat.glm02$coefficients[3])
    beta3 <- as.numeric(dat.glm02$coefficients[4])
    exp(beta3) / (exp(beta1) * exp(beta2))
    ## Measure of interaction on the multiplicative scale: 0.92.
    
    # 2> 加法交互
    ## What is the measure of effect modification on the additive scale?
    # coef: a vector listing the positions of the coefficients of the interaction terms in the model. 
    epi.interaction(model = dat.glm02, param = "dummy", coef = c(2,3,4), type = "RERI", conf.level = 0.95) #超额相对危险度
    ## Measure of interaction on the additive scale: RERI 3.73 
    ## (95% CI -1.84 -- 9.32), page 455 of Hosmer and Lemeshow (1992).
    
    ## 计算AP、S指标
    epi.interaction(model = dat.glm02, param = "dummy", coef = c(2,3,4), type = "APAB", conf.level = 0.95) #归因比
    epi.interaction(model = dat.glm02, param = "dummy", coef = c(2,3,4), type = "S", conf.level = 0.95) #协同指数
    # Skrondal (2003) advocates for use of the synergy index as a summary measure of additive interaction, showing that when regression models adjust for the effect of confounding variables (as in the majority of cases) RERI and AP may be biased, while S remains unbiased.
    

    (5) 结果可视化

    # 4) 可视化
    # 1> 加法交互效应
    ORalc <- 3.3333333
    ORsmk <- 2.9629630
    RERI <- 3.739848
    bar_d <- matrix(c(1, 1, 1, 1,
                      ORalc-1, 0, ORalc-1, 0,
                      ORsmk-1 ,ORsmk-1, 0, 0,
                      RERI, 0, 0, 0),
                    c(4,4), byrow = T,
                    dimnames = list(c('U','alc','smk1','alc1 & smk1'),c("OR_A1B1","OR_A1B0","OR_A0B1","OR_A0B0")))
    
    plot <- barplot(bar_d, legend=rownames(bar_d))
    
    

    该图直观地显示了相加交互作用的大小:
    在这里插入图片描述

    # 2> 加法交互是否显著
    library(visreg)
    plot(visreg(fit,xvar = "alc",by="smk",plot=F),xlab="alc",ylab="predict",overlay = T,partial = F,rug=F)
    legend("topleft", c("Smoke: No","Smoke: Yes"), lty=c(1,1), col=c("red","blue"), lwd=c(1,1),bty="n")
    

    上述分析显示,RERI、AP的可信区间包含0,S的可信区间包含1,说明加性交互作用不显著。图示如下:
    在这里插入图片描述

    4. 实例分析

    (1) 问题描述及数据:
    以2004-2014年广东省先天性心脏病(先心)监测网数据库病例对照资料为例[10, 11],分析孕母是否被动吸烟(自报围孕期家庭、工作任一环境中接触吸烟平均时长>15 min/d且持续1周以上)与家庭人均月收入有无相乘和相加交互作用(表 1),并比对采用Andersson分析方法的结果。
    在这里插入图片描述
    (2) 结果解释:
    INTM 95%CI>1有相乘交互作用,A暴露(如,孕期被动吸烟)与B暴露(如,家庭人均月收入低)有正向相乘交互作用;Delta法、Wald法、PL法估计 ICR 95%CI>0、AP 95%CI>0,S 95%CI>1,A暴露与B暴露有协同相加交互作用,即同时暴露于A、B者,其结局(如,胎儿患先心)的发生风险显著增加。ICR和S的意义相同,AP表示全部病例中可归因于两因素交互作用的病例所占比例,如,AP=0.324(95%CI:0.153~0.519),说明全部先心病例中归因于被动吸烟与家庭人均月收入低的相加交互作用所引起的病例占32.4%

    (3) 总结:
    统计学交互作用的线性模型一般为加法模型,乘积项表示有无相加交互作用;而广义线性属于乘法模型,乘积项表示有无相乘交互作用。生物学交互作用是多风险因素在发病的生物机制上的定性概念,两因素皆为病因前提下生物学机制的相互联系,包括协同和拮抗,生物学交互不同于统计模型中乘积项的分析。故相乘交互项OR值95%CI<1为负相乘,OR值95%CI>1为正相乘,相加交互项ICR值95%CI>0为协同作用,<0为拮抗作用。有时相乘与相加交互方向相悖,此时更宜运用生物学交互。在置信区间估计方法的选择上,Andersson等使用Delta法估计,结果不够稳健易造成假阴性结果。在风险比不对称时,应采用PL法,因Wald法的结果不稳定。

    参考阅读:
    [1] 聂志强, 欧艳秋, 庄建, 曲艳吉, 麦劲壮, 陈寄梅, 刘小清. 实现logistic与Cox回归相乘相加交互作用的临床实践宏程序. 中华流行病学杂志, 2016, 37(5): 737-740.
    [2] 交互作用: 相加交互,相乘交互
    [3] epiR: Tools for the Analysis of Epidemiological Data. R package version 2.0.19.
    [4] https://max.book118.com/html/2016/1031/60871118.shtm
    [5] https://max.book118.com/html/2017/0216/92080186.shtm

    展开全文
  • 生物学交互作用的评价应该基于是否有相加交互作用, 而流行病学研究中常运用logistic和Cox等广义线性模型, 并纳入乘积项分析因素间交互作用,其是否有意义仅反映相乘交互作用, 并不能反映两因素间相加或生物学交互...
  • 方差分析中的多因子交互作用

    千次阅读 2019-06-06 19:40:26
    多因子方差分析的因子交互作用可以这样理解,比如经常吃的消炎药头孢,通常会认为服用三片要比服用一片效果好,但经过实际验证测试发现,男女之间用药效果并不相同。对于男性而言,吃三片的效果好些,而对女性而言,...
  • 什么是python交互解释器1. python交互解释器python是一门解释型语言,我们编写的代码,必须通过解释器来运行。python的解释器有很多种,分别是基于不同语言开发的,常见的五种python交互解释器有下面5个...
  • 前几天的文章,我们聚焦在回归分析,今天来看看在回归分析中常常要研究的一类难点问题——交互作用的探究。 交互(interaction),字面上不太好理解,但是从数学表达上却很简单。 如果想要研究两个自变量如X1和X2...
  • 相加交互作用2.1 简介2.2 相加交互作用计算2.3 结果输出到Excel总结 前言 一直困惑怎么高效的输出R做回归分析得到的结果,这篇参考了网上各位大神的博客,主要结合我自己的需求进行再次归纳整理。其次就是交互作用...
  • Python交互解释器是初学编程的朋友,必知必会,必须掌握的基础知识,以后的很多操作,如运行Python文件都需要用到解释器或者下载它。Python解释器是什么?交互解释器是什么意思?它其实是一种让源代码程序运行...
  • Logistic回归易解释交互作用的流行病学意义且能很好地分析主效应,但在分析 高阶交互作用时存在局限性; 多因子降维法无需指定特定的遗传模式且对高维数据敏感,但无 法估计主效应. 鉴于这3种方法在分析交互作用时各有...
  • 交互作用的双因素方差分析

    千次阅读 2017-07-26 00:04:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 我们根据与毫米波相互作用的暗粒子重新解释直接搜索暗物质的结果。 该模型再现了DAMA / LIBRA和CoGeNT的积极结果,并且与XENON100,CDMS-II / Ge和LUX检测器中没有信号一致。 暗原子通过光子与暗光子之间的动力学...
  • 欢迎关注”生信修炼手册”!回归分析最为关联分析中最长使用的一种手段,除了可以进行协变量的校正,还可以分析各种因素间的交互作用,比如SNP与表型,SNP与环境之间的交互。具体是如何实现的呢...
  • 欢迎关注”生信修炼手册”!尽管通过GWAS能够识别到一些与疾病存在关联的SNP位点,然而很多复杂疾病的遗传因素并不能被GWAS分析的结果完全解释,这一现象称之为遗传力缺失missing ...
  • 进一步绘图 plot(mgam2,pages=1) 可以通过三维立体来显示变量的影响,下可知ibh,dpg可能存在一定的交互 vis.gam(mgam2) 广义可加模型要求平滑函数效应是可加的,如果两变量间具有交互效应,如果ibh和dpg具有...
  • 1.5交互式绘图

    2019-10-06 18:46:16
    从理解原理入手,使用matplotlib绘制...# matplotlib绘图有两种方式:交互式和阻塞式。 # 阻塞式是我们最常遇到的情况,在所有的数据都已准备完毕、所有的figure对象、axes对象都已经配置完成之后, # 统一使用pyplo...
  • 作于: 2020-12-4 1:51
  • 教师性别和学生性别的相互作用作为影响教师学生焦虑排名的因素 教师性别和学生性别的相互作用作为影响教师学生焦虑排名的因素 唐纳德 J. TREFFINGER 和 RICHARD ...这样的解释似乎没有充分考虑以下因素
  • 对这些区域中的每个区域进行分析,以考虑颜色重新连接和独立的多个parton交互作用的影响。 我们证明了需要结合这些影响来解释质子-质子数据的最新测量结果。 此外,示出了从多重相关性的测量中可能提取出在产生这些...
  • <p><img alt="在这里插入图片描述" src="https://img-blog.csdnimg.cn/20200717193810617.png?x-oss-process=...已知对角线外为交互效应,然鹅对角线外的不会看 求大佬帮助 www</p>  </p>
  • 但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而expect就使用来实现这种功能的工具。  expect是一个免费的编程工具语言,用来实现自动和交互...
  • VR沉浸感和交互作用原理

    千次阅读 2018-06-27 14:22:44
    VR沉浸感和交互作用产生的原理:在之前,我们观看一个虚拟的创造内容是通过平面显示器的,52VR上次发布过一篇文章《一张让你认识VR》,在其中,你会看到很多10年前的虚拟现实装备,他们基本是平面显示器,或者将...
  • 为提高成像测井解释精度以及该类资料的应用水平,需进一步利用...这不但增强了测井解释的可信度,也大大提高了工作效率,同时更凸显了岩芯扫描技术与成像测井资料的交互解释将在油田勘探开发中发挥着越来越重要的作用
  • 多元回归中的交互

    2021-11-23 10:40:59
    当某个解释变量会影响另外一个解释变量对响应变量的影响途径时,我们需要做出调整,在模型中增加一个交互项,可以是两个解释变量的乘积。 例子: 如回归模型: 由于female(性别)影响着married(婚姻情况)对...
  • 既往我们对logistic回归交互项(交互...通常分类和连续变量之间的交互作用可以解释为分类变量斜率的变化, 继续使用我们的不孕症数据(公众号回复:不孕症可以获得该数据)来演示。 先导入数据 library(rms) bc<-re
  • PENBUD是渗透测试的伙伴,它通过使各种重要工具交互作用来帮助您进行渗透测试。 我主要为新手创建了此工具,但每个人都可以使用它。 此工具已实现著名命令行工具的Intractive版本。 如果您不喜欢使用标志,或者...
  • 交互设计的真相

    2021-02-27 00:06:37
    工具型产品的结构层即为“交互设计”,这一部分的产出物主要为任务流程。然而实际上并不存在绝对的工具型产品或是绝对的内容型产品,在每一个层面中,这些要素必须相互作用才能完成该层面的目标。因此也可把产品的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 207,519
精华内容 83,007
关键字:

交互作用图的解释