lm.br - 如何捕获断点上的置信区间?

时间:2015-03-04 19:02:52

标签: r breakpoints

我正在使用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的基本理解。

必须有某种方法来提取这些值,以便它们可以用于其他计算;我很高兴学习如何。感谢。

1 个答案:

答案 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"