R语言基于Logistic回归绘制限制性立方样条图(Restricted Cubic Spline)

图片

  • 相关介绍:

在病因推断、剂量效应研究中,时常要分析自变量和因变量的数量关系。广义线性模型,如Logistic回归、Possion回归等是应用比较广泛的方法。它的一个重要假设是通过选择合适的链接函数,因变量与自变量的关系呈线性。这个假设在某些情况下并不成立。

此时一个常见的处理是采用百分位数等方法将连续性变量分段(P value for trend)。但是分段往往主观,而且损失信息,并有可能引入偏倚。本文介绍限制性立方样条拟合自变量和因变量之间的非线性关系。

限制性立方样条中节点的个数(k)和位置可以由研究人员根据研究背景和数据选择。当有较强的背景知识支持,知道自变量和应变量的关系在某些特定节点转折时,可以选择这些特定的节点。但是实际上往往没有足够的背景知识足以确定节点的个数和位置。所幸绝大多数情况下,节点的位置对限制性立方样条的拟合影响不大,相对来说节点的个数是更关键的参数。节点的个数决定曲线的形状,或者说平滑程度。当节点的个数为2时,得到的拟合曲线就是一条直线。当节点个数等于样本量时,相当于将各个点用线段相连,得到的是完全拟合但是不平滑的折线。由于节点个数的选择和自由度有关,所以当样本量比较大的时候可以取较多的节点。但是,一般来说节点个数取3~7就足够了。



  • RCS案例图形:

### R语言中使用限制性立方样条进行Logistic回归分析 在R语言中,可以利用`rms`包中的功能实现带有限制性立方样条Logistic回归分析。以下是具体的操作方法及其代码示例。 #### 加载必要的库 为了执行此操作,需加载`rms`包以及基础统计工具包。如果尚未安装这些包,则需要先完成安装。 ```r if (!requireNamespace("rms", quietly = TRUE)) install.packages("rms") library(rms) ``` #### 数据准备 假设有一个数据集`data`,其中包含自变量`x`和二分类因变量`y`(0/1)。可以通过以下方式创建一个简单的模拟数据集用于演示: ```r set.seed(123) # 设置随机种子以便结果可重复 n <- 500 # 样本数量 x <- rnorm(n, mean = 50, sd = 10) # 自变量服从正态分布 p <- exp(-9 + 0.1 * x - 0.001 * (x - 40)^3) / (1 + exp(-9 + 0.1 * x - 0.001 * (x - 40)^3)) y <- rbinom(n, size = 1, prob = p) # 使用概率生成二分类响应变量 data <- data.frame(x = x, y = y) # 构建数据框 ``` #### 建立Logistic回归模型并加入限制性立方样条 通过调用`lrm()`函数构建逻辑回归模型,并对感兴趣的连续型预测因子`x`施加限制性立方样条变换。在此处指定结点数为默认值或手动设定。 ```r fit <- lrm(y ~ rcs(x, 4), data = data) # 对变量x应用具有四个节点的限制性立方样条 print(fit) # 输出模型摘要信息 ``` 此处定义了四次内部结点位置,默认由算法自动计算最佳分割点[^1]。 #### 可视化结果 绘制实际观测值与拟合曲线之间的对比有助于理解两者间的关系模式。 ```r plot(Predict(fit, x), se = TRUE, conf.int = .95, col.fill = gray(seq(.8, 0, length.out = 100)), main = "Logistic Regression with Restricted Cubic Splines", xlab = "Predictor X Value", ylab = "Probability of Outcome Y=1") points(data$x[data$y == 1], rep(0.7, sum(data$y)), cex = 0.5, pch = "|") # 添加阳性事件标记 points(data$x[data$y == 0], rep(0.3, n - sum(data$y)), cex = 0.5, pch = "_") # 添加阴性事件标记 legend("topleft", legend=c("Fitted Curve","SE Bands"), fill=c("black",gray(0))) ``` 以上命令会生成一张形展示估计的概率随输入特征变化的趋势,同时附带标准误差范围作为不确定性度量指标[^2]。 #### 结果解读 从打印出来的模型对象可以看到系数估值、显著水平以及其他诊断统计数据;而表则直观呈现了非线性的关联形态。这种方法特别适合探索复杂关系结构而不必预先假定特定形式的情况。 ---
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值