1

私はしばらくの間、DB アイテムの遷移イベント (この議論の目的のための状態) の MySQL エクスポートを分析できるようにするパッケージを発見Rしました (フォーマットで)。TraMineRTSE

10 個の状態があり、他の状態に遷移できます (つまり、特定の順序はありません)。

これまでのところ、このデータを に変換しSTS、1 時間の基本時間単位を使用してseqtrate関数を使用できるようにしました。これにより、各状態から他の状態への絶対遷移率が得られます (10x10 テーブル)。

私が問題を抱えているのは、遷移率を時間の関数として計算することです。これが再び 10x10 の表として表示されると想像していましたが、各セルの絶対値ではなく、異なる時間 (例: <24h, 24-72h, 72-168h, > 168h)。

time.varyingのオプションがありますがseqtrate、時間単位ごとにレートが計算され、特定の時間枠を定義するオプションが表示されません。

使用することも考えましたが、SPSこれを行うための特定の機能が見つかりませんでした。

これを行うことができる別の機能はありますか?seqtrateまたは、のtime.varyingオプションを使用して手動でコーディングする必要がありますか? 後者の場合は、正しい軌道に乗せていただけますか。どこから始めればよいかわかりません。

更新 (最初の 3 つの州で取得したいものを明確にするための単なる例)

        |               State1                  |               State2                  |               State3                  |
State1  | av(<24),av(24-72),av(72-168),av(168+) | av(<24),av(24-72),av(72-168),av(168+) | av(<24),av(24-72),av(72-168),av(168+) |
State2  | av(<24),av(24-72),av(72-168),av(168+) | av(<24),av(24-72),av(72-168),av(168+) | av(<24),av(24-72),av(72-168),av(168+) |
State3  | av(<24),av(24-72),av(72-168),av(168+) | av(<24),av(24-72),av(72-168),av(168+) | av(<24),av(24-72),av(72-168),av(168+) |
4

1 に答える 1

1

私が理解していることから、データがカレンダー時間に合わせられている間、年齢クラス(プロセスの開始からの時間間隔)で遷移確率を取得したいと考えています。つまり、プロセスの開始からの時間ではなく、発生した時間です。

したがって、最初にシーケンスのアラインメントを変更する必要があります。TraMineRextrasパッケージはそのための機能を提供しますseqstart。これは、パネル データを年齢に合わせたデータに変換する例です。

library(TraMineRextras)
## Example data aligned on calendar years, starting in 2000
paneldata <- matrix(
    c("A" , "A" , "B" , "A" , "A" ,
      "A" , "A" , "B" , "B" , "B" ,
      "A" , "A" , "B" , "B" , "B" ,
      "B" , "A" , "A" , "B" , "B" ,
      "A" , "B" , "A" , "A" , "B"), byrow=TRUE, ncol=5)
colnames(paneldata) <- 2000:2004

## original sequences aligned on years 
(s.panel <- seqdef(paneldata))  

## Sequence         
## 1 A-A-B-A-A
## 2 A-A-B-B-B  
## 3 A-A-B-B-B    
## 4 B-A-A-B-B      
## 5 A-A-A-A-B

## Change from calendar date to age alignment
startyear <- 2000
birthyear <- 1995:1999 ## just to illustrate
agedata <- seqstart(paneldata, data.start=startyear, new.start=birthyear)
colnames(agedata) <- 1:ncol(agedata)

## sequences aligned on ages
(s.age <- seqdef(agedata))  

## Sequence         
## 1 *-*-*-*-A-A-B-A-A
## 2 *-*-*-A-A-B-B-B  
## 3 *-*-A-A-B-B-B    
## 4 *-B-A-A-B-B      
## 5 A-A-A-A-B

シーケンスを正しく整列させたら、時間間隔 (ここでは年齢クラス 1 ~ 5 および 6 ~ 9) で遷移確率を計算するだけです。

seqtrate(s.age[,1:5])

##        [-> A]    [-> B]
## [A ->] 0.6363636 0.3636364
## [B ->] 0.3333333 0.6666667

seqtrate(s.age[,6:9])

##          [-> A] [-> B]
## [A ->]   0.50   0.50
## [B ->]   0.25   0.75

お役に立てれば。

于 2015-11-27T10:17:20.240 に答える