二項変数の50%が遷移する時間をどのように推定できますか?


8

4つの被験者のバイナリ状態を4回表す次のデータがあります。各被験者がに遷移することのみ可能であり、1 0には遷移できないことに注意してください。0110

testdata <- data.frame(id = c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4),
                       day = c(1,1,1,1,8,8,8,8,16,16,16,16,24,24,24,24,32,32,32,32),
                       obs = c(0,0,0,0,0,1,0,0,0,1,1,0,0,1,1,1,1,1,1,1))

私はそれをロジスティック回帰でモデル化できます:

testmodel <- glm(formula(obs~day, family=binomial), data=testdata)

> summary(testmodel)


Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.018890   0.148077  -0.128 0.899907    
day          0.032030   0.007555   4.240 0.000493 ***

最初に、モデル内の同じ個人の反復測定をどのように説明できますか?

第2に、被験者の1/2がから移行する日を不確実に見積もるにはどうすればよいですか?01


1
これらのデータに強い依存性があります表示されます。つまり、それは対象のためであればOBS = 1というケースで一日にトンの対象には必ずしもその後、OBS = 1 、私は日にSたびS トン?これがそうである場合、実際には4つのデータ値(各被験者に1つ)しかなく、そのうちの1つは右側で検閲されます。itisst
whuber

@whuberあなたは依存関係について正しいです(少なくとも現在の年内分析では)。データは、4つの複製ツリーのそれぞれについて、観測日より前に「つぼみバースト」が発生したかどうかを表します。しかし、右側で打ち切られているデータ値について、どういう意味かわかりませんか?
David LeBauer、2011

1
要約は次のとおりです。件名2は[1,8]の間隔で遷移しました。つまり、2-> [1,8]です。また、3-> [8,16]、4-> [16,24]、および1-> [24、infinity]です。後者は、被験者1が移行せずに24日間観察されたことを意味します。それは打ち切り値です。これを生存分析問題としてフレーム化し、それに応じて分析できます。ちなみに、この依存性は、ロジスティック回帰のp値が誤解を招くほど低いことを意味します。
whuber

@whuberは洞察に感謝しますが、p値の推定に興味がないので、根本的に欠陥がある場合、これは私のアプローチが意味することですか?また、数週間以内にデータが修正されることはありません。データセットが完成する前に分析を開発しています。私はテストデータを変更して、どの被験者も正しく打ち切られないようにしました。
David LeBauer

3
@ DWin、@ Davidこれは繰り返し測定の状況ではありません。データ形式はそのようにするだけです。各被験者の測定値は、遷移が観察された1つの間隔で構成されます。
whuber

回答:


3

質問へのコメントで明らかになったように、データは発芽までの時間の4つの観察のみで構成されています。(それらを16の独立した値であるかのように分析するのは誤りです。)それらは正確な時間ではなく時間の間隔で構成されます。

[1,8], [8,16], [16,24], [24,32]

いくつかのアプローチがあります。魅力的で非常に一般的なのは、これらの間隔を言葉どおりに使用することです。芽の破裂の実際の時間は、各間隔内の何でもかまいません。したがって、「不確実性」は、サンプリングの不確実性(おそらく今年は種の代表的なサンプルであると考えられます)と観測の不確実性(間隔によって反映されます)の2つの形式で表されます。

サンプリングの不確実性はおなじみの統計手法で処理されます。中央値を推定するように求められ、統計的仮定に応じてさまざまな方法で推定できます。推定値の信頼区間を提供できます。簡単にするために、バーストの発芽までの時間に対称的な分布があると仮定しましょう。これは(おそらく)非負であるため、分散があることを意味し、4つの観測値の平均でもほぼ正規分布している可能性があることを示唆しています。さらに、対称性は、平均を中央値のサロゲートとして使用できることを意味します(元の質問で求められています)。これにより、標準的でシンプルな推定および信頼区間法にアクセスできます。

(1+8+16+24)/410.25(8+16+24+32)18

Mean=[10.25,18].

これは、推定の間隔全体を表しています。間隔入力を使用した計算の適切な結果です!

1αx=(x1,x2,x3,x4)ms

ucl(x,α)=x+tn1(α)s/n.

ucl((1,8,16,24),.025)28.0758ucl((8,11.676,16,24),.025)=25.8674まだ小さいです。観測値と一致するすべての可能な値の組み合わせの中でuclを最大化および最小化することにより、(たとえば)

ucl(data,.025)=[25.8,39.3]

(これは、信頼区間ではなく、区間値のuclを表す数値の区間です!)そして、信頼下限については、

lcl(data,.025)=[0,6.2].

00

言い換えれば、

「これらの観察は、正確に測定された場合、中央値の2.5%信頼限界の上限が39.3日と高くなる可能性がある値と一致していますが、それ以上ではありません。値と一致しています(最初とは異なる場合があります)。これにより、2.5%の信頼限界が0まで下がります。」

これをどうするかは、個々の熟考の問題であり、アプリケーションによって異なります。芽の破裂が40日より前に発生することを合理的に確認したい場合、この結果はある程度の満足感を与えます(芽の破裂の分布と観測値の独立性に関する仮定を条件とする)。芽の爆発を最も近い日に推定したい場合、明らかにより多くのデータが必要です。他の状況では、間隔値の信頼限界に関するこの統計的結論はイライラするかもしれません。 たとえば、芽の破裂が30日前に標本の50%で発生することをどの程度確信できますか 答えは間隔になるので、言うのは難しいです。


この問題を処理する方法は他にもあります。特に、最尤法の使用を推奨します。(ここでそれらを適用するには、間隔カットポイントがどのように確立されたかについてもっと知る必要があります。それらがデータとは無関係に決定されたかどうかが重要です。)この質問は、間隔ベースの方法を導入する良い機会であると思われます。特定の分野(リスクの評価とアルゴリズムの分析)では、一部の人々によって温かく支持されてきたにもかかわらず、それらはよく知られていないようです。


お返事ありがとうございます。サンプリングの日付は、データとは関係なく選択されました(およそ1〜2週間ごとに、そこに行く機会がありました。)
David LeBauer

デイビッドも同じように思いましたが、あなたの観察能力が気象条件や、それ自体が蕾の破裂の時間に影響を与える可能性のあるその他の要因に関連している可能性があることにも気付きました。けれどもそのため、プロセスサンプリングの日付を選択するのは、に依存しないように考えられてきたかもしれプロセス芽バーストの、二人はまだ強い統計的かもしれない依存を。
whuber

2
申し訳ありませんが、間違って話してしまいました。私のサンプリング日は昨年の秋より厳格ではなかった。春には、dt = 13の最初の1秒の観測を除いて、すべての日付が10日離れていましたが、これらの観測の間に変化はありませんでした。しかし秋には、10月から11月はかなり雨が降っていました。葉の老化とサンプリング間隔はどちらも天候に依存していました。(私は葉の老化が生物学からの天候に依存していることを知っています、この情報はデータにはありません)。
David LeBauer

1

以下は、ロジスティック回帰を使用しない単純なアプローチですが、上記の提案を使用しようとしています。要約統計の計算では、おそらく単純に、日付が正規分布であると想定しています。

エレガントでないコードをご容赦ください

  1. 各個人の芽吹きの日を推定する関数を記述します。各個人の最後の観測値0と最初の観測値1の中間の年の日を使用します。

    budburst.day <- function(i){
       data.subset <- subset(testdata, subset =
                             id == i, 
                             na.rm = TRUE)
       y1 <- data.subset$day[max(which(data.subset$obs==0))]
       y2 <- data.subset$day[min(which(data.subset$obs==1))]
       y <- mean(c(y1, y2), na.rm = TRUE)
       if(is.na(y) | y<0 | y > 180) y <- NA
       return(y)
    }
    
  2. 要約統計量を計算する

    #calculate mean
    mean(unlist(lapply(1:4, budburst.day)))
    [1] 16.125  
    
    #calculate SE = sd/sqrt(n)
    sd(unlist(lapply(1:4, budburst.day)))/2
    [1] 5.06777
    

0

t1id=124<t1<32t1timedian(ti)

t = replicate(10000, median(sample(c(runif(1, 24, 32),  # id=1
                                     runif(1,  1,  8),  # id=2
                                     runif(1,  8, 16),  # id=3
                                     runif(1, 16, 24)), # id=4
                                   replace=TRUE)))
c(quantile(t, c(.025, .25, .5, .75, .975)), mean=mean(t), sd=sd(t))

結果(繰り返し):

    2.5%       25%       50%       75%     97.5%      mean        sd 
4.602999 11.428310 16.005289 20.549056 28.378774 16.085808  6.243129 
4.517058 11.717245 16.084075 20.898324 28.031452 16.201022  6.219094 

したがって、この中央値の95%信頼区間の近似値は16(5 – 28)です。

編集:観測数が少ない場合(n = 4自体を含む)のこのメソッドの制限に関するwhuberのコメントを参照してください。


@GaBorgulya入力ミスがあると思います。中央値(95%CI)= 16(5,28)
David LeBauer

区間データへの合理的な分布形式のML近似と、それに続く分布の中央値の推定を使用すると、より適切になります。
whuber

@whuber「合理的な分布」は、それ自体が重要な質問です。
GaBorgulya 2011

1
同意する。カーネルスムージングなど、間隔値データを処理するノンパラメトリックアプローチが必要であると私は思います。
whuber

4
1/24

0

離散時間ハザードモデルをロジスティック回帰に適合させることができます(個人期間データセットを使用)。Applied Longitudinal Data Analysis-software およびBook Chapters 10-12を参照してください。

アリソンも議論します

あなたのデータセットは小さいですが。


1
答えてくれてありがとう サンプルのデータセットは小さいですが、実際のデータセットには6つの日付で測定された100人の被験者がいます
David LeBauer、

-1

同じ構造のより多くのデータがあると仮定すると、保険数理(生命表)法を使用して生存期間の中央値を推定できます。


1
良いアイデア!-しかし、ライフテーブルから中央値のCIを取得する方法を説明できますか?
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.