生存分析原理简明教程 单因素生存分析 Kaplan-Meier、LogRank 只能针对单一

[复制链接]
查看730 | 回复0 | 2023-8-23 11:41:48 | 显示全部楼层 |阅读模式
一、生存分析
  狭义上来说,生存分析用来分析病人的生存和死亡情况。广义上讲的是事件是否发生。在这里就用是否死亡来代替。一样平常来说,生存的数据一样平常有两个变量,一个事件是否发生,病人是否死亡,死亡为1,未死亡为0,一个是事件发生履历的时间,这里用生存时间来代表。简而言之,数据有两个变量,一个是生存状态(0或1),一个是生存时间。
  二、删失
  删失指的是未观察到时间发生,在这里就是未观察到患者死亡,若患者死亡,则生存状态为1,若在观察时间内不知道患者是否死亡,称为删失,生存状态为0。造成删失有很多种情况,可以是克制到生存时间为止仍然存活,也可以是失访。
  三、Cox比例风险模型
  Cox回归重要探究什么样的患者死亡的更快,什么因素影响了患者死亡的速率。Cox回归分为单因素分析和多因素分析,分别探究的是单个因素对于患者死亡的影响和多个因素对于患者死亡的影响。通常的做法是单个因素的影响比力明显时再将该因素用来多因素分析。Cox回归的公式如下
  
  
  h(t)是风险函数,风险函数是指在时间t时候事件发生的概率,也就是说在t时候之前患者都未死亡。 h0(t) 是基准风险函数。 x1 .... xn是协变量,也就是我们的多因素分析中的每一个因素, β1 .... βn 是变量前的系数,称为回归系数。这里通过极大似然法来估计回归系数。Cox回归的公式雷同于一个广义线性回归。末了可以得到一个函数h(t),反应的是在多少个因素的影响下,t时候患者死亡的概率。
  

生存分析简明教程 生存分析原理

在生物医学研究中,生存分析 黑白常告急和常见的分析方法。本文对 生存分析 中的Kaplan–Meier 模型Cox 比例风险模型举行了扼要而细致的概述,资助大家更好的理解生存分析等干系概念。本文实用于生物医学专业初学者以及对生存分析感兴趣的非专业人士。
生存分析

首先,简朴形貌一下 生存分析 的使用场景,已经熟悉的同学可以选择直接跳过。 生存分析 常常用在癌症等疾病的研究中,比方在对某种抗癌药物做临床试验时,会首先筛选一部门癌症患者随机分为两组,一组服用该试验药物,一组服用对照药物,服药后开始统计每个患者从服药一直到死亡的生存时间,通过观察两组之间的病人在生存时间上是否有统计学差异来判断试验药物是否有效。在这里,死亡是整个实验中重点观测的事件,即 event。对于每个病人,需要记录他们发生该事件的详细时间。因此, 生存分析 可以抽象概述为,研究在差异条件下,特定事件发生与时间的关系是否存在差异。这些详细事件可以是死亡,也可以是肿瘤转移、复发、病人出院、重新入院等任何可以明确辨认的事件,而差异条件即为差异的分组依据,可以是年事、性别、地域、某个基因表达量的高低、某个突变的携带与否等等。下图是钟南山院士在对欧洲呼吸学会针对 Covid-19 的报告中提到的研究结果,他们对湖北省内和省外的病人从开始症状到入院时间做了分析,从发生症状开始,入院则是我们刚才讲的 event 事件,而湖北省表里则是差异的分组条件。图中还提到,他们使用 Cox 模型对地理举行了校正,这也是我们在这篇文章中后续要讲到的内容。对钟南山报告感兴趣的同学可以访问此链接 举行检察。



上面对生存分析的使用场景做了简朴先容,信赖大家已经大概对生存分析有了基本的印象。接下来我们需要提前交待一下关于删失数据的情况,即 censored data. 
删失数据,字面意思是删除丢失的数据,它在生存分析里面实际指的是在实验过程中丢失的、失去跟踪的数据。举例来说,对于肿瘤治疗药物的临床试验,关注事件为从服药到死亡,但是有一部门病人在试验过程中会无法观测到死亡事件的发生,好比无法接洽到、或自动退出、或其他需要告急处置惩罚退出临床试验的情况、以及试验竣事时还未发存亡亡等,这些数据就称作删失数据。思量到这种范例的删失生存了从一开始到删失前的渴望,而丢失了后续的了局,我们将这类删失称作右删失。相对应的,尚有一种范例叫做左删失,好比我们要统计从初次抱病到最终死亡的生存时间的分析,有些病人已知患有疾病且知道其死亡时间,但无法确定初次抱病的时间,如许的删失则成为左删失。对于左删失数据,有一些对应的方法举行处置惩罚,我们这里不做讨论(偶然间的话可以加进来)。本文后续重要对右删失的情况举行思量。
开始之前,我们再明确两个概念。
   1,生存概率,即 Survival probability,指的是研究对象从试验开始直到某个特定时间点仍然存活的概率,可见它是一个对时间t的函数,我们定义之为 S(t)
  
  2,风险概率,即 Hazard probability ,指的是研究对象从试验开始到某个特定时间 t 之前存活,但在 t 时间点发生观测事件如死亡的概率,它也是对时间 t 的函数,定义为 H(t)。接下来要讲的 Kaplan-Meier 方法重要关注 S(t),而反面讲到的 Cox 风险比例模型则关注 H(t)。
  下面进入正题,引入 Kaplan–Meier 方法,该方法是由 Kaplan 和 Meier 与 1958 年共同提出的,为理解方法的细节,我们先看下一张表(原文链接)。本例中我们以死亡作为观测事件,这张表也叫做 life table.
      A 列是从试验开始起,连续的观测时间,星号代表在该时间有删失数据发生;B 列是指在 A 列对应的时间开始之前全部存活的研究对象个数,也可以叫做 at risk 的人数,表示当前具有死亡风险的有效人群,是清除了已经死亡和删失的数据之后剩余的人数;C 列为恰好在 A 列对应的时间死亡的人数,D 列即表明在该时间点删失的个数。第一行则可以解读为,在 0.909 年这个时间点之前,原来有 10 个患者,在 0.909 这个时间点(或其之后的一小段时间区间)死亡了一个人,没有删失数据,意味着还剩 9 人;随后,只要有新增死亡或删失数据,则在表中新建一行,记录时间和人数。
我们先不引入 Kaplan–Meier 公式,大家可以先实验本身去思索下如何盘算每个时间节点的生存概率,即 S(t)。好比在 1.536 年这个时间点,即表中的第五行,病人在该点的生存概率是多少呢?很容易可以想到,要想在 1.536 这个时间点存活,他/她必须在 1.536 之前的所偶然间点存活才行,也就是说在 0.909、1.112、1.322、1.328 这几个时间点,病人都必须存活。那么在 1.536 这个时间点的生存概率 P 实际上就等于在包罗 1.536 在内的全部之前的时间点都不死亡的概率乘积,即:
P(存活至1.536) = P(0.909时不死亡) * P(1.112时不死亡) * P(1.322时不死亡) * P(1.328时不死亡) * P(1.536时不死亡)
对于某个特定时间点不死亡的概率,可以用 1 – 死亡概率 来估算,举个例子:
P(0.909时不死亡) = 1 – P(0.909时死亡) = 1 – (0.909时死亡的人数)/(0.909之前的全部人数) = 1 – 1/10 = 0.9
P(1.112时不死亡) = 1 – P(1.112时死亡) = 1 – (1.112时死亡的人数)/(1.112之前的全部人数) = 1 – 1/9 = 0.89
需要注意的是,删失数据发生时,由于当前时间点没有发存亡亡人数,该时间点对累计的生存概率不产生贡献。但由于总人数淘汰,会对下一个时间点的生存概率产生影响。如:
P(1.322时不死亡) = 1 – P(1.322时死亡) = 1 – (1.322时死亡的人数)/(1.322之前的全部人数) = 1 – 0/9 = 1
当我们盘算出每个时间点不死亡的概率之后,我们就可以通过连续乘积算出每个时间点的生存概率,即存活至该时间点的概率。如下表所示:
     该表中  E 列即不死亡概率,F 列则表示累积的生存概率,可以看到随着时间增长,死亡人数增多,越到后期,生存概率越低,这是符合常理的。别的需要注意,在删失发生时,生存概率时没有变化的。
实在我们刚才的思绪就是 Kaplan–Meier 方法的重要思绪,基于刚才的表格,我们也可以用数学公式来表示。一共有 m 个时间点,每个时间点用下标 i 来表示, i 为从 1 到 m 的整数, 生存概率 S(ti) 可以表示为:
     其中,ti 表示第 i 个时间点,ni 表示在 ti 之前的有效人数,di 表示在 ti 死亡的人数,S(ti-1) 表示在上一个时间点 i-1 的生存概率。
根据这一公式,我们可以绘图来展示生存率的变化情况,即 Kaplan-Meier 生存曲线,如下图所示:


图中横轴即时间轴,纵轴是累积蓄活比例,也就是生存概率,加号表示删失数据。一样平常来说,生存分析是要比力差异组之间的一个生存情况,因此 Kaplan-Meier 生存曲线一样平常不止一条曲线,如下图所示:


图中差异颜色表示差异的两组病人,在时间轴上生存情况的差异体现。该图中,红色和蓝色的线基本上重叠在一起,后期红色线稍微高一点,也就是说红色组的后期生存概率更高,病人死亡的相对慢一点。可以想象,假如某一组的生存情况特别差,那么它的生存曲线应该是一条极速降落的蹊径状。然而我们知道,在统计学中必须要有量化的指标来权衡差异及其明显性,不能仅通过观测来确定两组之间是否存在差异。
最直观的是来统计中位生存时间,即生存率在 50% 时所对应的生存时间,如下图所示:


差异组别对应的中位生存时间差异,可以一定水平上反应出差异组别死亡风险的差异。假如想比力整体生存时间分布是否存在统计学差异,一样平常我们可以采取 Logrank 统计方法来对生存数据举行统计分析。p值明显性盘算方法
Logrank 方法是由 Nathan Mantel 最初提出的,它是一种非参数查验中文翻译为对数秩查验,重要用来比力两组样本的生存时间分布的差异。Logrank 实际盘算情势可能有差异的变体,我们这里先容一种版本,实际上是卡方查验的一种应用场景。Logrank 查验的零假设是指两组的生存时间分布完全同等,当我们通过盘算拒绝零假设时,就可以以为两组的生存时间分布存在统计学差异。我们可以通过以下公式盘算某组病人在某个时间点的盼望死亡人数:
E1t = N1t*(Ot/Nt)
其中 E1t 是指第一组中,在时候 t,盼望死亡人数;N1t 指第一组中 t 时候 at risk的人数,即 t 之前的存活人数;Ot 则指两组(第一组和第二组)总的观测到的实际死亡人数;Nt 指两组总的 at risk 的人数,或 t 时间之前两组的总人数。假如你认真观察了公式,你就会以为它实在浅显易懂,由于两组生存概率分布同等,因此两组总的 at risk 人数和两组总的死亡人数的比例,应该和单组的 at risk 人数和总死亡人数的比例是同等的,这也就是为什么通过两组总的比例和其中一组总的 at risk 的人数,就可以得到这一组盼望死亡的人数,也就是上面公式所讲的内容。
有了每个时间点的死亡盼望值之后,我们构造如下的卡方值:


在该公式中,外层的 Σ 是对差异组的一个叠加,内层的三个 Σ 都是对差异时间点的叠加;j 代表的是第 j 组,好比服药组和对照组就可以分别对应 j=1 和 j=2 ;这里分子上的 ΣOjt 是指在 j 组所偶然间点的观测死亡人数相加之和,是对差异时间点 t 对应的观测值的一个累加,好比 t 分别对应 1 天、2 天、3 天等等;ΣEjt 是指在 j 组所偶然间点盼望死亡人数相加之和。观测人数和盼望人数的差值,就代表了实际情况与我们假设情况是否同等,假如假设是对的,即差异组的生存时间分布是完全同等的,那么观测人数和盼望人数的差值会黑白常小的。由于差值有正有负,以是对它取平方,如许就不会出现抵消的情况。别的,由于 100 和 120 之间相差的 20,和 1000 和 1020 之间相差的 20,情况并不完全一样,100 和 120 之间的 20 占比到达 20%,而 1000 和 1020 之间相差的 20 占比只到达了 2%,为了让这两种情况可比力,再加一个分母即 ΣEjt,相称于转换成百分比;末了把差异组别得到的值加起来,就得到 X2 值。通过查表可根据 X2 值来判断是否需要拒绝零假设。详细的一个手动盘算流程可以参考:链接.
除 Logrank 查验之外,一种生存时间分布的常用查验包罗 Breslow 查验,实在也就是 Wilcoxon 查验,与 Logrank 差异的是,在每个时间点统计观测人数和盼望人数时,他会给它们乘以一个权重因子,即当前时间点的 at risk 的总人数,然后再把所偶然间点加起往复统计卡方值。可以想象随着时间点越靠后,at risk 的总人数会越小,因此权重越少,对 X2 值的贡献就越小。因此 Breslow 查验对试验前期的差异要更加敏感,而相对来说 Logrank 对后期相对更敏感一些,由于它的所偶然间点的权重参数都是1. 在实际使用中,我们可以使用差异的方法从多个角度对数据去举行探究。
说到这里,Kaplan–Meier 的多数知识我们已经覆盖到了。但尚有一个方面可能会引起同学们的注意,如下图所示:


大家可能会问,上图中生存曲线周围的淡色区间是什么?实际上,上图中生存曲线周围的淡色区间即其对应的 95% 置信区间。首先我们需要理解为什么每个节点的生存概率会存在置信区间,由于我们假设每个时间点的生存概率是符合一种特定的分布,那么每次观测到某个时间点的结果就相称于是一次随机抽样,由于我们已经知道了生存概率对于时间 t 的函数 S(t),通过估算标准误,我们就可以估算出某个时间点的误差范围 (Margin of Error) ,从而得到一个特定概率的置信区间。
针对生存概率分布数据的置信区间估计,一种基于 Greenwood 提出的公式为:


其中 S(t) 即为生存概率函数,是我们之前表明过的不死亡概率的累计乘积。Za/2 是 正态分布的 α/2-th 分位数,可以查表得到。
除了上面公式提到的置信区间盘算方法,尚有一种指数型 Greenwood 公式,可以办理之前盘算的置信区间可能不在 (0,1) 区间的题目,两个公式的详细内容和推导都可以参考链接.
到现在为止,我们已经讲了生存分析的基础知识,包罗生存分析应用场景、删失数听说明、生存概率和风险概率、Kaplan–Meier 曲线、LogRank 和 Breslow 查验以及置信区间估计。但我们以上讲解的内容都是只针对单变量的,也就是说 Kaplan-Meier、LogRank 只能针对单一的变量举行分析,要么按性别分组,要么按差异药物分组,但无法同时观察多个因素,或对某些可能有影响的因素举行调解。好比我们要观察新冠病毒在湖北省表里的预后差异,假设我们不知道任何其他信息,但有理由猜疑湖北省和其他省份的生齿成分可能存在差异,好比湖北省老人更多、儿童更多(假设),那我们就不能直接简朴的拿湖北的病例和其他省的病例去比力,必须同时思量年事、性别的影响,也就是说要对年事、性别做出调解,这是之前用 LogRank无法做到的,此时 Cox 比例风险回归模型就要闪亮登场了。

多因素 多因子回归模型
Cox model

下面我们讲解 Cox 比例风险回归模型,英文名叫 Proportional Hazards Regression analysis 或 Cox Proportional-Hazards Model, 是由 Cox 于 1972 年提出的。我们这里简称其为 Cox 模型。
Cox 模型是一种半参数模型,由于它的公式中既包罗参数模型又包罗非参数模型。简朴说下参数模型和非参数模型的雷同与区别。雷同点是它们都是用来形貌某种数据分布情况的;差异点在于,参数模型的参数是有限维度的,即有限个参数就可以表示模型分布,好比正态分布里的均值和标准差;而非参数模型的参数则属于某个无穷维的空间,无法用有限参数来表示,差异的数据会得到差异的分布估计,好比决议树、随机丛林等等,我们无法用有限的参数来表示全部可能的分布情况。来看看 Cox 模型的公式就知道为什么 Cox 模型是一种半参数模型了。


大概写成  回归系数  
 
   1  其中 t 是生存时间
  2   x1, x2 到 xp 指的是具有推测效应的多个变量(即协变量),
  3   b1, b2 到 bp 则是每个变量对应的 effect size 即效应量(parameter estimate),可以理解为结果的影响水平,反面会表明。
  4   h(t) 就是差异时间 t 的 hazard,即风险值。
  5   而 h0(t) 是基准风险函数,也就是说在其他协变量 x1, x2, …, xp(协变量代表其他的影响因素) 都为 0 时,即不起作用时,权衡风险值的函数。
  
  根据公式我们可以看到指数部门是参数模型,由于其参数个数有限,即b1, b2 到 bp,而基准风险函数 h0(t) 由于其未确定性,可根据差异数据来使用差异的分布模型,因此黑白参数模型。以是说, Cox 模型是一种半参数模型。
  一个需要注意的地方在于,并不是全部的生存分析数据都可以用 Cox 模型来分析,它是需要满足一定的假设的,大家可以带着这个疑问继承阅读,我们在文章末了对此会举行讨论。
如今我们知道了风险函数 h(t) 的公式,先解读一下这个公式。h(t) 首先是基于时间变化的,t 是自变量;对于某个病人,差异时间的死亡风险是不一样的,这非常好理解,肿瘤病人肯定是随着病程的渴望,复发率、死亡率都会不绝提高。我们可以追念以下之前做 Kaplan-Meier 的谁人表格,在末了的时间点生存率也越来越低,意味着风险越来越高。其次除了时间,差异年事、性别、血压等指征差异的病人,死亡风险也不一样。好比这次的新冠病毒 Covid-19,年纪越大抵死率越高,这也就是为什么 Cox 模型要把诸多可能影响生存率的因素都当作协变量引入到公式中去,在该公式中即 x1, x2, …, xp。我们的重要目标是通过一定方法来找到合适的 h0(t),以及全部协变量的系数 b1, b2, …, bp。实际上cox 模型是需要用到极大似然估计等盘算方法,首先构建特定的似然函数,通过梯度降落等方法来求解模型的参数,使得函数求解值最大。这里不对细节举行解读,感兴趣的读者可以参考以下文章:链接1, 链接2, 链接3.
假设我们已经通过盘算得到了合适的 h0(t) 和协变量系数,如何去解读结果呢?我们可以比力某个协变量 x1 在差异值时对应的差异风险比(hazard ratio),这里比力 x1 和 x1+1,即若 x1 增长 1 个单位,增长前后的风险比是:

上式中,我们对 x1+1 和 x1 这两个差异的值对应的风险比举行了盘算,通过化简可知x1+1 和 x1 对应的风险比实际上等于 exp(b1),也就是 e 的 b1 次方;简朴的讲,假如 x1 指的是年事,那么对于年事 51岁 (x+1) 和年事 50 岁 (x) 的人,可能死亡的风险比为 exp(b1)。假如 b1>0,则 exp(b1)>1,意味着年事 +1,死亡风险增长;假如 b1<0, 则 exp(b1)<1,意味着年事 +1,死亡风险降低;假如 b1=0,exp(b1)=1,意味着年变乱化对死亡风险不起作用。
因此,我们知道,对于每一个协变量(即x1 x2 x3 x4 ..... xp),假如它的系数(b1  b2  b3 ..... bp 即下面表格的parameter estimate)为正,表明对应的变量增长时,会增长病人的死亡风险(或其他事件风险,如复发、转移等);假如它的系数为负,表明对应的变量值增长时,会降低病人的死亡风险。一个详细的盘算例子可以检察链接, 一个使用R举行盘算的例子可以检察:链接。
下面的表格是一个盘算结果: 结果解读 实战 参数估计 统计方法 查验方法 p值
   1     某个协变量的风险因子|风险比   HR (hazard ratio)=exp( bp参数估计系数   乘以  xp协变量 )
  2     参数估计系数大于0则表示风险增长,小于0则表示风险淘汰
  3     HR 大于1则表明风险增长,小于1则表示风险降低
  
     可以看到该表格中,一些风险因子包罗年事、性别、血压(紧缩压)、是否吸烟、血清总胆固醇以及是否患有糖尿病,经过 Cox 模型盘算,得到各个风险因子的参数估计,如年事对应的参数为 0.11691,也就是之前公式中的系数为 0.11691,大于 0 表示年事增长会增长风险,风险比HR (hazard ratio) 为 exp(0.11691) = 1.124 ,即表格末了一列,该数值大于 1,同样表来岁事增长会导致风险增长。对于二分类变量,即只有 0 和 1,好比男性为 1,女性为 0,如许的变量与连续变量在 Cox 模型中的结果解读是同等的,假如性别对应的协变量系数(即parameter estimate)大于 0,表明性别值越高风险越大,也就是说男性的风险高与女性。除了关注系数外,同时需要关注的是 p value,即该参数估计是否具有统计学明显性,常用来统计的方法是 Likelihood ratio test,同时也有使用 Wald test, 和 score logrank statistics。简朴先容一下 Likelihood ratio test,中文名叫似然比查验,焦点思想是:为了判断都某个新变量的引入是否对于模型有效,比力变量参加前和参加后,似然函数最大值的比力,假如没有出现最大值的降低,那么则可能对模型有效,进而统计其明显性。但这三种统计方法感兴趣的可以检察链接. 
我们之前提到过,使用 Cox 模型是需要满足一定的条件的。信赖大家看到这里应该已经有了答案,最告急的一个假设条件是:恣意两人的风险比例是不随事件变化的,这也是为什么 Cox 模型全名叫 Cox 比例风险回归模型。举例来说,假如某个人的死亡风险比另一个人高两倍(假如一直都是高两倍 那么K-M线就不会相交),那么不论什么时间,这个人的死亡风险都是另一个人的两倍。如许的假设我们可以从之前的公式中看到,hazard ratio 推导的结果是不包罗时间 t 的。这是 Cox 模型可用的一个基本假设。实际情况并非一定云云,对吧?因此我们在做 Cox 模型之前,最好对数据举行一个解读,看看是否满足当前假设。既然差异人之间的风险比例固定,那么一个最简朴的例子就是恣意分组情况下,两组的 Kaplan–Meier 曲线不应该相交错,假如曲线相交错,说明两组的生存概率关系随事件发生了变化,亦即风险比随时间发生变化,与假设相悖。然而,在实际应用中,由于样本量较小时,生存曲线会引入较大的误差,因此该判断方法有可能失效。一个更加复杂的方法为 complementary log-log plot,即横轴为 ln(t),纵轴为 ln(-ln(S(t)))。经过推导:

我们可知,差异组中,log(-log(S(t))) 对于 t的曲线,只有 βX 差异,而其与时间 t 无关,以是两条曲线应该近似平行或等距。参考(查抄Cox模型比例风险假定的几种图示法_余红梅,链接).
除了画生存曲线观察数据之外,我们还可以通过 Schoenfeld 残差来查抄风险是否成比例。详细可以参考链接, 以及查验变量与时间的交互来作用来权衡风险比例是否固定( 链接 ),这里不做睁开。对于不符合固定风险比例的数据,可以使用时依协变量或分层Cox模型来盘算(链接).
对于 生存分析 ,除了 Cox 模型外,尚有一些其他可用的参数模型。与 Cox 模型差异,这些参数模型往往给定了可能的风险函数分布,好比 指数分布、Weibull 和 Gompertz 分布,然后进一步去估计对应的模型参数。如下图所示,a 为指数分布,其 hazard ratio 为恒定值,在实际中很少应用;b 为 Weibull 分布,可通过差异的参数调解分布的走向;c 为 Gompertz 分布。相对于 Cox 模型,使用这些模型的优点在于分布曲线可根据参数推断,可得到更多信息,好比:前期死亡率高后期死亡率低,也就是说可以得到更多关于风险分布的信息,而 Cox 模型只能得到有限信息,如风险比及其明显性。使用这些全参数模型的缺点也是明显的,即固定的分布不一定能满足实际的数据情况,可能带来更多的误差。再实际使用情况中,可根据差异情况举行选择。Weibull 模型的简朴先容可参考链接.
     以上, 是对 生存分析 中重要知识的一个大概先容, 信赖大家对于生存分析中的多数概念都有了直观的人数。但由于笔者水平有限,文章可能有表述不清楚、以致错误的地方,渴望读者可以多多提供建议和品评,大概有什么题目可以多多留言讨论,谢谢!


推荐阅读
openpbs centos 7 设置手把手教程
理解 Z-Score 标准分数的含义和用法
PyTorch 简明样例:卵白质序列推测模型构建、数据载入、抽样、练习、评估
wxPython 教程 (译)
Chrome 更新堕落?换个思绪办理题目!

来源:https://blog.csdn.net/qq_52813185/article/details/127090219
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则