R语言_rms包_datadist函数_学习笔记

datadist函数的设计目的是对预测函数所基于的原始数据进行统计学上的总结,以避免重复读取原始数据。

Discription

对于给定的一组变量或数据框,确定影响和绘制ting范围的变量摘要、要调整的值,以及Predict, plot.Predict, ggplot.Predict, summary.rms, survplot, 和 nomogram.rms的总体范围。如果datadist在进行数据拟合之前即被调用且所指向的结果对象已用 options(datadist="name") 语句指定,使用 Design() 语句可以将数据特征与拟合方法一起存储。因此,之后使用摘要进行的预测和拟合将不需要再次访问在拟合中使用的原始数据。或者,在使用这3个函数时,您可以指定模型中每个变量的值,或者指定其中一些变量的值,并允许函数从datadist创建的对象中查找其余值(如调整级别)。最好的方法可能是在拟合任何模型之前运行datadist一次,存储所有潜在变量的分布摘要。二进制变量的调整值为0,分类变量的调整值为最频繁出现的一类(或自选的第一个类别级别),有序变量的调整值为中间水平,连续变量的调整值为中位数。请参阅q.display和q.effect的描述,了解如何为连续变量选择显示和效果范围。

Usage

datadist(..., data, q.display, q.effect=c(0.25, 0.75),
    adjto.cat=c(' mode' ,' first' ), n.unique=10)
# 下文必须添加options(datadist="dd")
# 可用于 summary, plot, survplot,  predict
# dd是datadist函数结果的存储变量
Arguments
...

由逗号分隔的变量名称列表、单个数据框或使用Design信息进行的一次拟合。这个列表中的第一个元素也可以是先前调用datadist所创建的对象;之后的变量将会添加到这个datadist对象中。

(直接翻译的原文档,现在我也不太懂啥意思)

data
所需处理的数据框。
q.display
两个百分位数(q分位数和1-q分位数)的集合,用于计算用于显示回归关系的连续变量的范围。默认值是q和1−q,其中q = 10/max(n, 200), n是未丢失的观测数。n<200时,使用5和95百分位数。如果指定q.display,无论是否n<200都按第一种情况来。
q.effect
输入两个百分位数的值,默认为两个四分位数,即0.25和0.75
adjto.cat
default is "mode" , indicating that the modal (most frequent) category for categorical (factor) variables is the adjust-to setting. Specify "first" to use the first level of factor variables as the adjustment values. In the case of many levels having the maximum frequency, the fifirst such level is used for "mode" .
原文贴在这里,这个玩意没搞明白啥意思,希望有大佬解释下。默认值见上图。
n.unique

具有n.unique或更少唯一值的变量被认为是离散变量,因为它们的唯一值存储在值列表中。这将影响列线图等功能。Design确定变量是否离散的。

Value

样例如上图,生成样例的代码如下:

library(openxlsx)
library(rms)

file_location <- "C:/Users/hwr99/Desktop/nomogram.xlsx"
sourcedata <- read.xlsx(file_location, sheet=1)

dd = datadist(sourcedata, q.display = c(0,1), q.effect = c(0.25,0.75))
options(datadist = "dd")

结果分为两个表:limits和values。

values就是值域表:它把所有可能出现的序列和分类变量的取值全部列在其中

limits是对原始数据的总结表:

Low:effect 根据之前函数中q.effect项提供的值计算的较小的那个百分位数

Adjust to 中位数     

High:effect 根据之前函数中q.effect项提供的值计算的较小的那个百分位数 

Low:perdiction 按q.display提供的q和1-q计算出的较小百分位数

High:perdiction 按q.display提供的q和1-q计算出的较小百分位数

Low 极小值

High 极大值

P.S. CSDN文本编译器真难用

### 关于R语言中`rms`的`rcs`函数 #### `rcs`函数简介 `rcs`函数是`rms`中的一个重要工具,主要用于创建限制性立方样条(Restricted Cubic Splines)。这种技术特别适用于处理连续型自变量与因变量之间可能存在非线性关系的情况。通过定义一系列内部结点(knot),可以在这些结点间拟合光滑曲线来更好地捕捉潜在模式。 #### 安装和加载必要的库 为了能够使用`rcs`功能,需要先确保已经安装了`rms`软件,并将其载入当前工作环境中[^1]: ```r if (!requireNamespace("rms", quietly = TRUE)) { install.packages("rms") } library(rms) ``` #### 创建限制性立方样条对象 下面是一个简单的例子展示如何利用`rcs`函数构建一个含四个内节点(knot)位置固定的限制性立方样条表达式[^2]: ```r # 假设dataframe df 中有两列分别为 age 和 time fit <- lrm(time ~ rcs(age, c(25, 40, 55)), data=df) summary(fit) ``` 这里的关键在于指定好合适的节点数目以及它们的具体位置;对于大多数应用场景而言,默认设置通常是合理的起点。如果想要让程序自动决定最佳节点分布,则只需提供期望的数量即可: ```r fit_auto_knots <- lrm(time ~ rcs(age, 4), data=df) ``` #### 可视化结果 当完成模型训练之后,可以通过图形方式直观地查看所得到的关系形态。例如,在绘制散点图基础上叠加由`rcs`产生的预测趋势线[^3]: ```r ggplot(df, aes(x=age, y=time)) + geom_point()+ stat_smooth(method="lm", formula=y~rcs(x,4)) ``` 上述命令会生成一张图表,其中不仅含了原始观测值的位置标记(`geom_point`),还有一条基于四阶多项式的平滑估计路径(`stat_smooth`)。 #### 处理常见错误提示 有时可能会遇到由于输入参数不当而导致的操作失败情况。比如尝试应用内置数据集时发生异常。此时应仔细检查所提供的变量名称是否正确无误,并确认所有必需的数据框都已成功导入到内存当中[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值