精华内容
下载资源
问答
  • 一、模型简介目前,生存分析领域,最常用是Cox比例风险回归模型,该模型具有良好特性,不仅可以分析各种自变量对生存时间影响,而且基准风险分布不作任何要求(半参数模型)。Cox模型使用时要满足一定条件,...

    一、模型简介

    目前,生存分析领域,最常用的是Cox比例风险回归模型,该模型具有良好的特性,不仅可以分析各种自变量对生存时间的影响,而且对基准风险分布不作任何要求(半参数模型)。Cox模型使用时要满足一定的条件,其中最为大家熟知的“PH比例风险”假定,专业点讲,就是在时间t,协变量x作用下,个性风险率相对于基准风险率之比与时间无关,不随时间t的变化而变化;通俗点说,就是生存曲线要平行不能交叉。如果违反“PH假定”Cox模型不再适用,需要其他方法替代。本文介绍一种替代模型Buckley-James模型。该模型是由Buckley James1979年提出,该模型具有线性回归模型的特点,其参数估计方法是最小二乘法的一种校正,通用引用一个伪随机变量,使其满足一般的正则条件下,能够用于具有右删失数据的分析。而且,在1993,Hillis等人证明Buckly-James模型的参数估计要比其他模型的参数估计优越。

    二、 模型适用条件

    因BJ模型是线性回归模型的改进,故其需满足线性回归模型的适用条件(1)线性;

    (2)方差齐。

    检验是否满足上述条件的方法:

    (1)修正残差图判定法;

    (2)样条函数判定法。

    三、模型原理

    该模型假定生存时间T,或者其简单变换与协变量x之间呈线性关系。即:

     60b17b669c729fe0cd049f93a6ce623f.png

    由于生存时间存在右删失,所以数据中只能观测到删失时间,因此上式不再适用,通常的最小二乘也无法估计出模型的参数,为此,Buckly-James引入了一个伪随机变量:

     af3c8b830edd0a8039b5ec55ce3c8869.png

    这里ab9338040a948dafca83eb09c76dbdea.png是指示变量。同时也证明了如下线性关系:

    edbca45279964b58fd8c2d45554bb658.png 

    所以BJ模型实际是一种将因变量Y改进后(考虑删失情况)的线性回归模型,该模型对生存时间分布不作任何要求。线性回归系数估计用到了高斯的最小二乘法,BJ模型系数估计用到的是校正后的最小二乘法。

    有研究显示,连续性自变量对BJ模型估计值的影响可以忽略,而当自变量为分类变量时,BJ估计值的偏倚是比较大的。提示在实际应用时,尤其是单个自变量的情形下,要谨慎考虑分类自变量估计值的准确性,为此可以考虑用Bootstrap法估计参数值并得到可信区间。

    四、模型应用案例基于R软件

    这里以一份口咽癌数据为例:

    ec769e72f8371f2a08d72fc200ad4451.png

     数据包含195条观测13个变量,涉及研究对象性别,年龄、分期等临床指标和患者生存时间和生存状态;

    03e01b2c86bab2435eaf2e8fa51683e9.png

    (1)先读入并打包数据

    1b4e8e6e27618c16fe72fb2ee172094d.png

    (2)建立BJ模型:

    2384db2cef3f2fbd2aae317821f0dc5f.png

    BJ模型的建立和cox模型非常像,也会报告模型各指标系数及是否有意义的变量。

    b73c6b6eee37f34b84b5851de9946674.png

    与线性回归分析一样,对建立的模型做模型是否有意义的假设检验,假设检验会给出ANOVA分析结果,从上述的结果可见模型中只有T分期有意义,年龄和性别无意义。

    e9bdbec3c4f3f08751bd9e8b9e324aca.png

    做模型的summary(f1),可以发现年龄AGE、T分期和生存时间成反比

    5772261fca4c4e91f1da540fc1ccefb2.png

    利用BJ模型结果做出的Nomogram结果与Summary表型出一致的结果。

    五、总结

    BJ模型作为回归模型的一种,自然也有回归模型的基本功能,如因素筛选、预测等等。

    在应用时除了要求线性和方程齐(本篇未展示检验过程)要求外,还需考虑一定的删失比。

    与COX模型相比,选择方案如下:

    4e3e719e4293857888b3b7df967b8c83.png

    当数据不满足COX回归的PH假定(生存曲线相交),BJ模型是Cox模型很好的补充。




    本公众号部分精彩历史文章

    04:如何在R软件中求一致性指数(Harrell'concordance index:C-index)?

    05:Nomogram 绘制原理及R&SAS实现.

    06  :Lasso方法简要介绍及其在回归分析中的应用

    07  : 最优模型选择中的交叉验证(Cross validation)方法

    08  : 用R语言进行分位数回归(Quantile Regression)

    09  : 样本数据中异常值(Outliers)检测方法及SPSS & R实现

    10  : 原始数据中几类缺失值(Missing Data)的SPSS及R处理方法

    11  :  [Survival analysis] Kaplan-Meier法之SPSS实现

    12  :  [Survival analysis] COX比例风险回归模型在SPSS中的实现

    13  :  用R绘制地图:以疾病流行趋势为例

    14  :  数据挖掘方法:聚类分析简要介绍 及SPSS&R实现

    15  :  医学研究中的Logistic回归分析及R实现

    16  :  常用的非参数检验(Nonparametric Tests)总结

    17  :  高中生都能看懂的最小二乘法原理

    18  :  R语言中可实现的常用统计假设检验总结(侧重时间序列)

    19  :  如何根据样本例数、均数、标准差进行T-Test和ANOVA

    20  :  统计学中自由度的理解和应用

    21  :  ROC和AUC介绍以及如何计算AUC

    22  :  支持向量机SVM介绍及R实现

    23  :  SPSS如何做主成分分析?

    24  : Bootstrap再抽样方法简介

    25  :  定量测量结果的一致性评价及 Bland-Altman 法的应用 

    26  :  使用R绘制热图及网络图  

    27  :  几种常用的双坐标轴图形绘制 

    28  :  遗失的艺术—诺谟图(Nomogram) 

    29  :  Nomogram 绘制原理及R&SAS实现(二) 

    30  :  WOE:信用评分卡模型中的变量离散化方法 

    31  :  结构方程模型(SEM)简介及教程下载  

    32  :  重复测量的多因素方差分析SPSS实现操作过程 

    回复文章前代码数字如“04”即可查看或直接查看历史文章。

    公众号:survival-analysis QQ:8243033

    邮箱:8243033 @ qq.com 欢迎关注!



    1ceb6e87e9550e56ce60b1ee5c78405c.png

    展开全文
  • 扫描码是依赖于具体设备的为达到设备无关的要求往往使用与具体设备无关的虚拟码虚拟码是由Windows系统定义的与设备无关的键的标识; 虚拟码是一种与设备无关的键盘编码它的值存放在键盘消息的wParam参数中用以标识...
  • 在本文中,我们庞加莱生成器矩阵元素采用严格无关的分布匹配方法,以得出这些形状因数q→0约束。 与文献相反,我们明确证明异常重力磁矩B(0)消失和条件A(0)= 1彼此独立,并且这些约束与特定...
  • 但是,重点是讲授与语言无关的编程原理,例如带循环自动化和带函数封装,请参阅和 以了解更多信息。 本课中使用示例使用从关节炎一种新疗法试验中收集模拟炎症数据分析了12个文件集合。 向学员展示...
  • 静态语言的好处就是变量强制必须指定类型,这也是编译的要求,所以大部分编译型的语言都会有强制变量类型的要求。而PHP据说也会在PHP8中加入JIT实现编译功能,并且在7.4中就会引入变量声明时的类型指定。下面我们先...

    以下内容来源于网络,与本内容无关。
    学过静态语言开发的朋友对类型转换不会陌生,比如Java、C#、C++等。静态语言的好处就是变量强制必须指定类型,这也是编译的要求,所以大部分编译型的语言都会有强制变量类型的要求。而PHP据说也会在PHP8中加入JIT实现编译功能,并且在7.4中就会引入变量声明时的类型指定。下面我们先看看目前PHP中的参数类型及返回值类型的使用。

    function add(int $a, float $b) : int{
    return (int) $a + KaTeX parse error: Expected 'EOF', got '}' at position 4: b; }̲ 上述代码中,方法参数中定义了…a和一个float类型的$b。然后在方法后面定义了方法的返回值必须是int类型。我们知道,如果计算表达式中出现了float类型,那么计算结果会变成float类型。这个方法需要返回的是一个int类型。因此我们使用了一个强制类型转换(int)。在定义了参数类型和返回值类型后,如果传递或者返回的类型不一致,就会报错。

    参数类型和返回值类型最好在7以上的版本使用。基本类型如int、float等的参数类型声明都是7以后才支持的,详情参见文档:https://www.php.net/manual/zh/functions.arguments.php

    我们通过(int)、(float)、(bool)等就可以实现PHP的类型强制转换,和C基本上一样。文档中关于可以强制转换的包括如下类型:

    (int), (integer) - 转换为整形 integer
    (bool), (boolean) - 转换为布尔类型 boolean
    (float), (double), (real) - 转换为浮点型 float
    (string) - 转换为字符串 string
    (array) - 转换为数组 array
    (object) - 转换为对象 object
    (unset) - 转换为 NULL (PHP 5)
    (binary) 转换和 b 前缀转换支持为 PHP 5.2.1 新增
    (int), (integer)

    如果是布尔值,转换结果为false变成0,true变成1
    如果是float,向下取整,如7.99会转换为7
    如果是字符串,字符串从头开始查找,开头第一个是数字会直接变成该转换结果,如果开头没有数字返回0
    其他类型转换在文档中并没有定义,文档提示为“没有定义从其它类型转换为整型的行为。不要依赖任何现有的行为,因为它会未加通知地改变。”,但我们通过测试,可以发现对于其他类型的转换是通过多次的类型转换达成的,比如数组类型转换为int类型,是根据数组是否包含内容转换为bool类型后再转换为int类型
    // (int)(integer)

    var_dump((int) true); // 1
    var_dump((int) false); // 0

    var_dump((int) 7.99); // 7

    var_dump((int) “35 ok”); // 35
    var_dump((int) “ok 77”); // 0
    var_dump((int) “ok yes”); // 0

    var_dump((int) []); // 0
    var_dump((int) [3,4,5]); // 1
    (bool)(boolean)

    当转换为 boolean 时,以下值被认为是 FALSE:

    布尔值 FALSE 本身
    整型值 0(零)
    浮点型值 0.0(零)
    空字符串,以及字符串 “0”
    不包括任何元素的数组
    特殊类型 NULL(包括尚未赋值的变量)
    从空标记生成的 SimpleXML 对象
    所有其它值都被认为是 TRUE(包括任何资源 和 NAN)

    这里需要注意的是,负数也会是TRUE,只有0是FASLE

    // (bool)(boolean)

    var_dump((bool) 0); // false
    var_dump((bool) 1); // true
    var_dump((bool) -1); // true

    var_dump((bool) 0.0); // false
    var_dump((bool) 1.1); // true
    var_dump((bool) -1.1); // true

    var_dump((bool) “”); // false
    var_dump((bool) “0”); // false
    var_dump((bool) “a”); // true

    var_dump((bool) []); // false
    var_dump((bool) [‘a’]); // true

    $a;
    var_dump((bool) $a); // false
    var_dump((bool) NULL); // false
    (string)

    布尔值,false转换为空字符串"",true转换为"1"
    int或float类型,转换为字符串形式的字面量,如1转换为"1"
    数组和对象分别转换为"Array"和"Object"字面量
    资源类型会被转换为"Resource id #1"形式的字面量
    NULL转换为空字符串""
    直接把 array,object 或 resource 转换成 string 不会得到除了其类型之外的任何有用信息。可以使用函数 print_r() 和 var_dump() 列出这些类型的内容

    注:测试结果,对象类型需要实现__tostring()魔术函数,否则报错无法转换为string类型

    // (string)

    var_dump((string) true); // “1”
    var_dump((string) false); // “”

    var_dump((string) 55); // “55”
    var_dump((string) 12.22); // “12.22”

    var_dump((string) [‘a’]); // “Array”
    class S{
    function __tostring(){
    return “S”;
    }
    }
    var_dump((string) new S()); // “S”

    var_dump((string) NULL); // “”
    (array)

    对于任意 integer,float,string,boolean 和 resource 类型,如果将一个值转换为数组,将得到一个仅有一个元素的数组,其下标为 0,该元素即为此标量的值。换句话说,(array)$scalarValue 与 array($scalarValue) 完全一样

    如果一个 object 类型转换为 array,则结果为一个数组,其单元为该对象的属性。键名将为成员变量名,不过有几点例外:整数属性不可访问;私有变量前会加上类名作前缀;保护变量前会加上一个 ‘*’ 做前缀。这些前缀的前后都各有一个 NULL 字符

    将 NULL 转换为 array 会得到一个空的数组

    // (array)

    var_dump((array) 1);
    var_dump((array) 2.2);

    var_dump((array) “a”);

    var_dump((array) true);

    class Arr{
    public $a = 1;
    private $b = 2.2;
    protected $c = “f”;
    }
    class ChildArr extends Arr{
    public $a = 2;
    private $d = “g”;
    private $e = 1;
    }
    var_dump((array) new Arr());
    var_dump((array) new ChildArr());

    var_dump((array) null);
    (object)

    如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,将会创建一个内置类 stdClass 的实例。如果该值为 NULL,则新的实例为空。 array 转换成 object 将使键名成为属性名并具有相对应的值

    注意:使用 PHP 7.2.0 之前的版本,数字键只能通过迭代访问

    // (object)

    var_dump((object) 1);
    var_dump((object) 1.1);
    var_dump((object) “string”);
    var_dump((object) true);
    var_dump((object) NULL);

    var_dump((object) [1, 2, 3]);
    var_dump((object) [“a” => 1, “b” => 2, “c” => 3]);
    (unset)

    使用 (unset) $var 将一个变量转换为 null 将不会删除该变量或 unset 其值。仅是返回 NULL 值而已

    // (unset)

    var_dump((unset) 1);
    var_dump((unset) 1.1);
    var_dump((unset) “string”);
    var_dump((unset) true);
    var_dump((unset) null);

    var_dump((unset) [1, 2, 3]);
    var_dump((unset) new \stdClass());
    (binary)

    将所有类型转换为二进制字符串。二进制字符串是区别于传统常用的普通php的Unicode字符串。二进制字符串是字节字符串,没有字符集。具体的区别就类似于数据库中的binary和char类型及blob和text类型

    在日常的开发中基本用不到,了解即可

    // (binary)

    var_dump((binary) 1);
    var_dump((binary) 1.1);
    var_dump((binary) “string”);
    var_dump((binary) true);
    var_dump((binary) null);

    var_dump((binary) [1, 2, 3]);
    var_dump((binary) new S());
    以上就是我们的强制类型转换的所有类型,其中有一些类型的转换中提到了资源类型(Resource),但是并没有资源类型的强制转换。因为资源类型大多是一些句柄操作,如数据库链接、文件读写等,将其它类型强制转换为资源类型没有意义。

    本文内容会经常出现在面试题中,而且在实际开发中的很多逻辑判断出现的BUG也常常是由于PHP的自动类型转换所导致的,所以这篇文章好好收藏多拿出来看看绝对会让你有意想不到的收获哦!!

    展开全文
  • 通过将变量从vmin更改为核后坐动量(pR),可以将任何暗物质的实验结果中与光晕无关的全部内容浓缩为一个新的光晕积分变量的函数的单个图,我们称之为 h̃(pR)。 通过简单的轴缩放,直接从单个h̃(pR)图中直接...
  • 也可以通过类实例+“.” + 属性名方式(如以下示例最初使用p.age),但此时需要有一定要求,那就是,该实例没有与类变量同名的变量,因为如果实例含有与类属性同名属性,则用该实例访问属性时,访问是实例中...

    python中类属性与其被定义的类绑定,和任何实例都无关。

    对于类属性的访问,可以通过 类名+“.” + 属性名的方式来访问(如以下示例的Person.age);也可以通过类的实例+“.” + 属性名的方式(如以下示例最初使用的p.age),但此时需要有一定要求,那就是,该实例没有与类变量同名的变量,因为如果实例含有与类属性同名的属性,则用该实例访问属性时,访问的是实例中的属性。

    而对类属性的值的修改,只能通过类名的访问加以实现。(此处存在一点例外,最后会加以说明)

    以下通过一段实例代码加以说明:

    >>> class Person():

    age =10

    >>> p = Person()

    >>> print Person.age , p.age

    10 10

    >>> Person.age +=1

    >>> print Person.age , p.age

    11 11

    >>> p.age += 1

    >>> print Person.age , p.age

    11 12

    在以上的操作中,定义了Person类和age的类属性,对于实例p,当它不存在同名的实例变量age的时候,Person.age和p.age均可访问类变量;

    然而,当p.age += 1 之后,就意味着p这个实例具有了一个属性age,恰恰与Person类的属性age同名。这样,p.age则访问的是p的实例属性,而非Person类的属性。

    进一步的,我们可以通过调用.__dict__,看一看。

    >>> print Person.__dict__ ,p.__dict__

    {'__module__': '__main__', 'age': 11, '__doc__': None} {'age': 12}

    那么实例对象的影响会持续到什么时候?事实上,只要实例对象被del掉,还是可以通过p.age来访问类变量的。

    >>> del p.age

    >>> print Person.age , p.age

    11 11

    >>> print Person.__dict__ ,p.__dict__

    {'__module__': '__main__', 'age': 11, '__doc__': None} {}

    以上说到:而对类属性的值的修改,只能通过类名的访问加以实现,此处存在特殊情况。而特殊情况就是:当类属性是一个可变对象(如字典,序列)时,就可以通过实例来对其加以修改。

    >>> class Person():

    age = {'zhousui':10}

    num = [1,2,3,4]

    >>> p = Person()

    >>> print Person.age['zhousui'] , p.age['zhousui']

    10 10

    >>> print Person.num[0] , p.num[0]

    1 1

    >>> Person.num[0] = 10

    >>> print Person.num[0] , p.num[0]

    10 10

    >>> p.num[0] = 20

    >>> print Person.num[0] , p.num[0]

    20 20

    >>> print Person.num

    [20, 2, 3, 4]

    以上。

    展开全文
  • 这包括分布模型变量的响应和/或参数的数值。 还研究了电流部分的干扰效应。 出于技术目的,引入了加权事件。 即使我们专注于3πντ模式,我们研究的技术方面也与所有进入三个强子的τ衰变模式有关。
  • 也可以通过类实例+“.” + 属性名方式(如以下示例最初使用p.age),但此时需要有一定要求,那就是,该实例没有与类变量同名的变量,因为如果实例含有与类属性同名属性,则用该实例访问属性时,访问是实例...

    python中类属性与其被定义的类绑定,和任何实例都无关。

    对于类属性的访问,可以通过 类名+“.” + 属性名的方式来访问(如以下示例的Person.age);也可以通过类的实例+“.” + 属性名的方式(如以下示例最初使用的p.age),但此时需要有一定要求,那就是,该实例没有与类变量同名的变量,因为如果实例含有与类属性同名的属性,则用该实例访问属性时,访问的是实例中的属性。

    而对类属性的值的修改,只能通过类名的访问加以实现。(此处存在一点例外,最后会加以说明)

    以下通过一段实例代码加以说明:


    >>> class Person():
    	age =10
    
    >>> p = Person()
    >>> print Person.age , p.age
    10 10
    >>> Person.age +=1
    >>> print Person.age , p.age
    11 11
    >>> p.age += 1
    >>> print Person.age , p.age
    11 12



    在以上的操作中,定义了Person类和age的类属性,对于实例p,当它不存在同名的实例变量age的时候,Person.age和p.age均可访问类变量;

    然而,当p.age += 1 之后,就意味着p这个实例具有了一个属性age,恰恰与Person类的属性age同名。这样,p.age则访问的是p的实例属性,而非Person类的属性。

    进一步的,我们可以通过调用.__dict__,看一看。


    >>> print Person.__dict__ ,p.__dict__
    {'__module__': '__main__', 'age': 11, '__doc__': None} {'age': 12}


    那么实例对象的影响会持续到什么时候?事实上,只要实例对象被del掉,还是可以通过p.age来访问类变量的。


    >>> del p.age
    >>> print Person.age , p.age
    11 11
    >>> print Person.__dict__ ,p.__dict__
    {'__module__': '__main__', 'age': 11, '__doc__': None} {}


    以上说到:而对类属性的值的修改,只能通过类名的访问加以实现,此处存在特殊情况。而特殊情况就是:当类属性是一个可变对象(如字典,序列)时,就可以通过实例来对其加以修改。

    >>> class Person():
    	age = {'zhousui':10}
    	num = [1,2,3,4]
    
    	
    >>> p = Person()
    >>> print Person.age['zhousui'] , p.age['zhousui']
    10 10
    >>> print Person.num[0] , p.num[0]
    1 1
    >>> Person.num[0] = 10
    >>> print Person.num[0] , p.num[0]
    10 10
    >>> p.num[0] = 20
    >>> print Person.num[0] , p.num[0]
    20 20
    >>> print Person.num
    [20, 2, 3, 4]



    以上。

    转载于:https://www.cnblogs.com/f8master/p/3826080.html

    展开全文
  • 非平凡扰动在分割超表面上留下全息印记而不会影响另一侧扰动,应视为在物理上无关紧要。 这种考虑,再加上局部性要求,导致了在有限时空域上拉格朗日场论中规范等价概念。 可以时空U中物理观测值...
  • 前者要求我们通过解析连续性或作为复杂模空间中轮廓积分极限来定义S矩阵,而后者则要求我们在中间步骤使用紫外线截止。 相反,弦场理论不会遭受这种分歧。 在本文中,我们展示了字符串场理论如何可用于生成显式...
  • 对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...
  • 搜集国内外 46 组典型岩爆案例数据, 考虑到概率神经网络(PNN)中高斯函数要求各指标变量互不相关,采用主成分分析法(PCA)原 始数据预处理,消除指标间相关性并降维,得到线性无关的 3 个主成分即岩爆综合预测指标 RCI...
  • --定义在方法中的变量就是局部变量 --局部变量使用之前必须赋值 --方法参数是这个方法一个局部变量 --调用参数方法时,参数有要求: ①个数一致 ②类型一致 ③顺序一致 (与参数名称无关) --方法参数可以再方法...
  • 所以Class Helper起到就是这个作用,在Class Helper中可以增加就是与实例无关的内容,所以任何需要增加实例Size活VMT功能不能声明,例如变量、虚方法等,但只占用类空间没关系,如class var。在应用上我们...
  • 在实际问题中,经常需要同时研究多个因素变量的影响情况。希望控制一些无关的因素;希望找到影响最显著的因素,并需要知道起显著作用的因素在什么时候起最好的影响作用。就需要用到多因素的方差...
  • 本实验要求用高级语言,启动多进程并发运行,设计相应代码,显示进程无关并发、进程共享变量并发运行结果。并完成实验报告。 三、实验内容: 分别实现以下四种情况并发: 1.并发进程之间无关,显示进程...

空空如也

空空如也

1 2 3 4 5
收藏数 93
精华内容 37
关键字:

对无关变量的要求