我正在使用lm.br来适应" LL" (线性 - 线性)模型。我想捕获变化点的置信区间,但一直无法弄清楚如何这样做。
使用文档示例,我们有:
肌酐< - c(37.3,47.1,51.5,67.6,75.9,73.3,69.4,61.5,31.8,19.4)
day&lt; - 1:10
sc&lt; - lm.br(肌酐〜天)
SC
哪个收益率,
呼叫: lm.br(公式=肌酸酐〜天,类型=&#34; LL&#34;)
变更点和系数:
theta alpha day < theta day > theta
6.44115 82.52259 8.07143 -17.97000
H0的显着性水平:&#34;无变化点&#34; vs H1:&#34;一个变化点&#34;
SL= 0.000163596 for theta0 = -0.5 by method CLR
变更点的95%置信区间&#39; theta&#39;通过CLR
[ 5.17344, 7.50078 ]
str(sc)显示ci是lm.br的本地函数。输出结果是:
sc $ ci()
变更点的95%置信区间&#39; theta&#39;通过CLR [5.17344,7.50078]
我已尝试过像这样的事情&lt; - sc $ ci(),as.numeric(sc $ ci()),str(sc $ ci())似乎没有任何东西可以产生一个对象可以提取CI限制。我曾尝试查看lm.br源代码,但这超出了我对R的基本理解。
必须有某种方法来提取这些值,以便它们可以用于其他计算;我很高兴学习如何。感谢。
答案 0 :(得分:1)
从文档...&#34;'lm.br'返回一个列表,其中包含一个带有访问器功能的C ++对象&#34;。因此,您必须将输出捕获为字符串...
library("lm.br")
library("stringr")
creatinine <- c(37.3,47.1,51.5,67.6,75.9,73.3,69.4,61.5,31.8,19.4)
day <- 1:10
sc <- lm.br(creatinine ~ day)
ci <- capture.output(sc$ci())
> str_extract_all(ci[2], "\\b[0-9]*.[0-9]*\\b")[[1]]
[1] "5.17344" "7.50078"