. clear all

. cap noi which tabout
C:\Users\CISS Fondecyt\ado\plus\t\tabout.ado
*! 2.0.8 Ian Watson 15mar2019
*! tabout version 3 (beta) available at: http://tabout.net.au

. if _rc==111 {
.         cap noi ssc install tabout
.         }

. cap noi which pathutil
C:\Users\CISS Fondecyt\ado\plus\p\pathutil.ado
*! version 2.2.0 19nov2020 daniel klein

. if _rc==111 {
.         cap noi net install pathutil, from("http://fmwww.bc.edu/repec/bocode/p/") 
.         }

. cap noi which pathutil
C:\Users\CISS Fondecyt\ado\plus\p\pathutil.ado
*! version 2.2.0 19nov2020 daniel klein

. if _rc==111 {
.         ssc install dirtools    
.         }

. cap noi which project
C:\Users\CISS Fondecyt\ado\plus\p\project.ado
*! version 1.3.1  22dec2013  picard@netbox.com

. if _rc==111 {   
.         ssc install project
.         }

. cap noi which stipw
C:\Users\CISS Fondecyt\ado\plus\s\stipw.ado
*! Version 1.0.0 17Jan2022

. if _rc==111 {   
.         ssc install stipw
.         }

. cap noi which stpm2
C:\Users\CISS Fondecyt\ado\plus\s\stpm2.ado
*! version 1.7.5 May2021

. if _rc==111 {   
.         ssc install stpm2
.         }       

. cap noi which rcsgen
C:\Users\CISS Fondecyt\ado\plus\r\rcsgen.ado
*! version 1.5.9 13FEB2022

. if _rc==111 {   
.         ssc install rcsgen
.         }       

. cap noi which matselrc
C:\Users\CISS Fondecyt\ado\plus\m\matselrc.ado
*! NJC 1.1.0 20 Apr 2000  (STB-56: dm79)

. if _rc==111 {           
. cap noi net install dm79, from(http://www.stata.com/stb/stb56)
.         }

. cap noi which pbalchk
C:\Users\CISS Fondecyt\ado\plus\p\pbalchk.ado
*! Version: 3.0.0
*! Author:  Mark Lunt
*! Date:    October 2, 2017 @ 12:47:35

. if _rc==111 {
.         cap noi net install pbalchk.pkg
.         }

Exercise

Date created: 18:20:15 21 Apr 2023.

Get the folder


C:\Users\CISS Fondecyt\Mi unidad\Alvacast\SISTRAT 2022 (github)


Fecha: 21 Apr 2023, considerando un SO Windows para el usuario: CISS Fondecyt

Path data= ;

Tiempo: 21 Apr 2023, considerando un SO Windows

The file is located and named as: C:\Users\CISS Fondecyt\Mi unidad\Alvacast\SISTRAT 2022 (github)ser_2023_0.dta

=============================================================================

database

=============================================================================

We open the files

. use "ser_2023_1.dta", clear

=============================================================================

Transition probabilities & Lengths of Stay, Parametric Models

=============================================================================

Tables of PRs & LOS at 3 years

Probabilities

Probabilities_First patient

Probabilities_First patient_First transition

. foreach var of varlist fprob_from1a_2_2m fprob_from1a_2_lci_2m fprob_from1a_2_uci_2m fprob_from1b_2_2m fprob_from1b_2_lci_2m fprob_from1b_2_uci_2m {
  2.                                 scalar variable = "`var'"
  3.                                         qui summarize `var' if inrange(timevar0, .30, .40)
  4.                                         scalar e3m_`var' = round(round(r(mean),.001)*100,.1)
  5.                                         qui summarize `var' if inrange(timevar0, .98, 1.02)
  6.                                         scalar e1y_`var' = round(round(r(mean),.001)*100,.1)
  7.                                         qui summarize `var' if inrange(timevar0, 2.98, 3.02)
  8.                                         scalar e2m_`var' = round(round(r(mean),.001)*100,.1)
  9.                                         qui summarize `var' if inrange(timevar0,  4.98, 5.02)
 10.                                         scalar e5y_`var' = round(round(r(mean),.001)*100,.1)
 11.          cap noi matrix ests_`var' = (`=scalar(e3m_`var')'\  `=scalar(e1y_`var')'\ `=scalar(scalar(e2m_`var'))'\ `=scalar(scalar(e5y_`var'))')
 12.          matrix colnames ests_`var' = `var'
 13.          matrix rownames ests_`var' = 3_mths 1_yr 3_yrs 5_yrs
 14.  }

. 
. matrix est_bs12 = (ests_fprob_from1a_2_2m, ests_fprob_from1a_2_lci_2m, ests_fprob_from1a_2_uci_2m, ests_fprob_from1b_2_2m, ests_fprob_from1b_2_lci_2
> m, ests_fprob_from1b_2_uci_2m)

. matrix colnames est_bs12 = NoPoly NoPoly_lci NoPoly_uci Poly Poly_lci Poly_uci

. 
. esttab matrix(est_bs12) using "${pathdata2}pr_1st_trans_ser23.html", replace 
(output written to pr_1st_trans_ser23.html)

The transition probabilities are presented here:


est_bs12
NoPoly NoPoly_lci NoPoly_uci Poly Poly_lci Poly_uci

3_mths .2 .2 .2 .3 .2 .3
1_yr 1.5 1.3 1.7 2 1.9 2.2
3_yrs 2.1 1.9 2.3 2.7 2.5 2.9
5_yrs 1.9 1.7 2.1 2.5 2.3 2.7

Probabilities_First patient_Second_and_Third transition

. foreach var of varlist fprob_from1a_3_2m fprob_from1a_3_lci_2m fprob_from1a_3_uci_2m fprob_from1b_3_2m fprob_from1b_3_lci_2m fprob_from1b_3_uci_2m f
> prob_from2a_3_2m fprob_from2a_3_lci_2m fprob_from2a_3_uci_2m fprob_from2b_3_2m fprob_from2b_3_lci_2m fprob_from2b_3_uci_2m {
  2.                                 scalar variable = "`var'"
  3.                                         qui summarize `var' if inrange(timevar0, .30, .40)
  4.                                         scalar e3m_`var' = round(round(r(mean),.001)*100,.1)
  5.                                         qui summarize `var' if inrange(timevar0, .98, 1.02)
  6.                                         scalar e1y_`var' = round(round(r(mean),.001)*100,.1)
  7.                                         qui summarize `var' if inrange(timevar0, 2.98, 3.02)
  8.                                         scalar e2m_`var' = round(round(r(mean),.001)*100,.1)
  9.                                         qui summarize `var' if inrange(timevar0,  4.98, 5.02)
 10.                                         scalar e5y_`var' = round(round(r(mean),.001)*100,.1)
 11.          cap noi matrix ests_`var' = (`=scalar(e3m_`var')'\  `=scalar(e1y_`var')'\ `=scalar(scalar(e2m_`var'))'\ `=scalar(scalar(e5y_`var'))')
 12.          matrix colnames ests_`var' = `var'
 13.          matrix rownames ests_`var' = 3_mths 1_yr 3_yrs 5_yrs
 14.  }

. 
. matrix est_bs32 = (ests_fprob_from1a_3_2m, ests_fprob_from1a_3_lci_2m, ests_fprob_from1a_3_uci_2m, ests_fprob_from1b_3_2m, ests_fprob_from1b_3_lci_2
> m, ests_fprob_from1b_3_uci_2m, ests_fprob_from2a_3_2m, ests_fprob_from2a_3_lci_2m, ests_fprob_from2a_3_uci_2m, ests_fprob_from2b_3_2m, ests_fprob_fr
> om2b_3_lci_2m, ests_fprob_from2b_3_uci_2m)

. matrix colnames est_bs32 = NoPoly13 NoPoly13_lci NoPoly13_uci Poly13 Poly13_lci Poly13_uci NoPoly23 NoPoly23_lci NoPoly23_uci Poly23 Poly23_lci Poly
> 23_uci

. 
. esttab matrix(est_bs32) using "${pathdata2}pr_3rd_trans_ser23.html", replace 
(output written to pr_3rd_trans_ser23.html)

The transition probabilities are presented here:


est_bs32
NoPoly13NoPoly13_lciNoPoly13_uci Poly13 Poly13_lci Poly13_uci NoPoly23NoPoly23_lciNoPoly23_uci Poly23 Poly23_lci Poly23_uci

3_mths 35.8 35 36.7 23.8 23.2 24.4 2.4 2.2 2.7 4.4 4.1 4.8
1_yr 39.9 39.1 40.7 31.8 31.2 32.3 6.2 5.6 6.9 11.6 10.8 12.4
3_yrs 48 47.2 48.9 46.9 46.3 47.4 14.7 13.4 16 26.5 25 27.9
5_yrs 52.7 51.8 53.6 54.3 53.7 54.9 20.1 18.4 21.9 35.1 33.4 36.9

Lengths of Stay

Lengths of Stay_First patient

Length_of_stay_First patient_Time_in_admission

. foreach var of varlist flos_from1a_1_2m flos_from1a_1_lci_2m flos_from1a_1_uci_2m flos_from1b_1_2m flos_from1b_1_lci_2m flos_from1b_1_uci_2m {
  2.         scalar variable = "`var'"
  3.                                         qui summarize `var' if inrange(timevar0, .30, .40)
  4.                                         scalar e3m_`var' = round(round(r(mean),.001),.01)
  5.                                         qui summarize `var' if inrange(timevar0, .98, 1.02)
  6.                                         scalar e1y_`var' = round(round(r(mean),.001),.01)
  7.                                         qui summarize `var' if inrange(timevar0, 2.98, 3.02)
  8.                                         scalar e2m_`var' = round(round(r(mean),.001),.01)
  9.                                         qui summarize `var' if inrange(timevar0,  4.98, 5.02)
 10.                                         scalar e5y_`var' = round(round(r(mean),.001),.01)
 11.          cap noi matrix ests_`var' = (`=scalar(e3m_`var')'\  `=scalar(e1y_`var')'\ `=scalar(scalar(e2m_`var'))'\ `=scalar(scalar(e5y_`var'))')
 12.          matrix colnames ests_`var' = `var'
 13.          matrix rownames ests_`var' = 3_mths 1_yr 3_yrs 5_yrs
 14.                 }

. 
. matrix est_cs12 = (ests_flos_from1a_1_2m, ests_flos_from1a_1_lci_2m, ests_flos_from1a_1_uci_2m, ests_flos_from1b_1_2m, ests_flos_from1b_1_lci_2m, es
> ts_flos_from1b_1_uci_2m)

. matrix colnames est_cs12 = NoPoly NoPoly_lci NoPoly_uci Poly Poly_lci Poly_uci

. 
. esttab matrix(est_cs12) using "${pathdata2}los_1st_trans_ser23.html", replace 
(output written to los_1st_trans_ser23.html)

The lengths of stay are presented here:


est_cs12
NoPoly NoPoly_lci NoPoly_uci Poly Poly_lci Poly_uci

3_mths .34 .34 .34 .34 .34 .34
1_yr .91 .91 .91 .92 .91 .92
3_yrs 2.07 2.05 2.08 2.11 2.1 2.12
5_yrs 3.02 2.98 3.05 3.04 3.02 3.06

Length_of_stay_First patient_Time_in_completion

. foreach var of varlist flos_from2a_2_2m flos_from2a_2_lci_2m flos_from2a_2_uci_2m flos_from2b_2_2m flos_from2b_2_lci_2m flos_from2b_2_uci_2m {
  2.         scalar variable = "`var'"
  3.                                         qui summarize `var' if inrange(timevar0, .30, .40)
  4.                                         scalar e3m_`var' = round(round(r(mean),.001),.01)
  5.                                         qui summarize `var' if inrange(timevar0, .98, 1.02)
  6.                                         scalar e1y_`var' = round(round(r(mean),.001),.01)
  7.                                         qui summarize `var' if inrange(timevar0, 2.98, 3.02)
  8.                                         scalar e2m_`var' = round(round(r(mean),.001),.01)
  9.                                         qui summarize `var' if inrange(timevar0,  4.98, 5.02)
 10.                                         scalar e5y_`var' = round(round(r(mean),.001),.01)
 11.          cap noi matrix ests_`var' = (`=scalar(e3m_`var')'\  `=scalar(e1y_`var')'\ `=scalar(scalar(e2m_`var'))'\ `=scalar(scalar(e5y_`var'))')
 12.          matrix colnames ests_`var' = `var'
 13.          matrix rownames ests_`var' = 3_mths 1_yr 3_yrs 5_yrs
 14.                 }

. 
. matrix est_cs22 = (ests_flos_from2a_2_2m, ests_flos_from2a_2_lci_2m, ests_flos_from2a_2_uci_2m, ests_flos_from2b_2_2m, ests_flos_from2b_2_lci_2m, es
> ts_flos_from2b_2_uci_2m)

. matrix colnames est_cs22 = "NoPoly2" "NoPoly2_lci" "NoPoly2_uci" "Poly2" "Poly2_lci" "Poly2_uci"

. 
. esttab matrix(est_cs22) using "${pathdata2}los_2nd_trans_ser23.html", replace 
(output written to los_2nd_trans_ser23.html)

The lengths of stay are presented here:


est_cs22
NoPoly2 NoPoly2_lci NoPoly2_uci Poly2 Poly2_lci Poly2_uci

3_mths .34 .34 .34 .34 .34 .34
1_yr .97 .97 .98 .94 .94 .95
3_yrs 2.75 2.73 2.78 2.55 2.52 2.57
5_yrs 4.4 4.34 4.46 3.92 3.86 3.98

Difference_Probabilities

. *list fdiff_prob_from1_2_2m fdiff_prob_from1_2_lci_2m fdiff_prob_from1_2_uci_2m if inrange(timevar0 , .32, .34)|inrange(timevar0 , .999,  1.02)|inra
> nge(timevar0 , 2.99, 3.02)|inrange(timevar0 , 4.999, 5.02)
. 
. foreach var of varlist fdiff_prob_from1_2_2m  fdiff_prob_from1_2_lci_2m  fdiff_prob_from1_2_uci_2m fdiff_prob_from1_3_2m  fdiff_prob_from1_3_lci_2m 
>  fdiff_prob_from1_3_uci_2m fdiff_prob_from2_3_2m fdiff_prob_from2_3_lci_2m fdiff_prob_from2_3_uci_2m {
  2.                                 scalar variable = "`var'"
  3.                                         qui summarize `var' if inrange(timevar0, .30, .40)
  4.                                         scalar e3m_`var' = round(round(r(mean),.001)*100,.01)
  5.                                         qui summarize `var' if inrange(timevar0, .98, 1.02)
  6.                                         scalar e1y_`var' = round(round(r(mean),.001)*100,.01)
  7.                                         qui summarize `var' if inrange(timevar0, 2.98, 3.02)
  8.                                         scalar e2m_`var' = round(round(r(mean),.001)*100,.01)
  9.                                         qui summarize `var' if inrange(timevar0,  4.98, 5.02)
 10.                                         scalar e5y_`var' = round(round(r(mean),.001)*100,.01)
 11.          cap noi matrix ests_`var' = (`=scalar(e3m_`var')'\  `=scalar(e1y_`var')'\ `=scalar(scalar(e2m_`var'))'\ `=scalar(scalar(e5y_`var'))')
 12.          matrix colnames ests_`var' = `var'
 13.          matrix rownames ests_`var' = 3_mths 1_yr 3_yrs 5_yrs
 14.  }

. 
. matrix est_diff11 = (ests_fdiff_prob_from1_2_2m, ests_fdiff_prob_from1_2_lci_2m, ests_fdiff_prob_from1_2_uci_2m, ests_fdiff_prob_from1_3_2m, ests_fd
> iff_prob_from1_3_lci_2m, ests_fdiff_prob_from1_3_uci_2m, ests_fdiff_prob_from2_3_2m, ests_fdiff_prob_from2_3_lci_2m, ests_fdiff_prob_from2_3_uci_2m)

. matrix colnames est_diff11 =  "to Completion" "to Completion_lo" "to Completion_hi" "to Non-completion" "to Non-completion_lo" "to Non-completion_hi
> " "from Completion" "from Completion_lo" "from Completion_hi"

. 
. esttab matrix(est_diff11) using "${pathdata2}diff_probs_res_out_mod_t1_2m_22_corr3.html", replace 
(output written to diff_probs_res_out_mod_t1_2m_22_corr3.html)

The transition probabilities are presented here:


est_diff11
to Completionto Completion_loto Completion_hito Non-completionto Non-completion_loto Non-completion_hifrom Completionfrom Completion_lofrom Completion_hi

3_mths .1 0 .1 -12 -13 -11.1 2 1.7 2.4
1_yr .5 .3 .7 -8.1 -9.1 -7.1 5.4 4.6 6.1
3_yrs .6 .4 .9 -1.2 -2.2 -.1 11.8 10.3 13.4
5_yrs .6 .4 .8 1.6 .5 2.7 15.1 13.1 17

Difference_Length_of_Stay

Difference_Length_of_Stay_from_Admission_to_Completion_to_Non-completion

. foreach var of varlist fdiff_los_from1_1_2m fdiff_los_from1_1_lci_2m fdiff_los_from1_1_uci_2m {
  2.                 scalar variable = "`var'"
  3.                                         qui summarize `var' if inrange(timevar0, .30, .40)
  4.                                         scalar e3m_`var' = round(round(r(mean),.001)*1,.01)
  5.                                         qui summarize `var' if inrange(timevar0, .98, 1.02)
  6.                                         scalar e1y_`var' = round(round(r(mean),.001)*1,.01)
  7.                                         qui summarize `var' if inrange(timevar0, 2.98, 3.02)
  8.                                         scalar e2m_`var' = round(round(r(mean),.001)*1,.01)
  9.                                         qui summarize `var' if inrange(timevar0,  4.98, 5.02)
 10.                                         scalar e5y_`var' = round(round(r(mean),.001)*1,.01)
 11.          cap noi matrix ests_`var' = (`=scalar(e3m_`var')'\  `=scalar(e1y_`var')'\ `=scalar(scalar(e2m_`var'))'\ `=scalar(scalar(e5y_`var'))')
 12.          matrix colnames ests_`var' = `var'
 13.          matrix rownames ests_`var' = 3_mths 1_yr 3_yrs 5_yrs
 14.                 }

. matrix est_diff12_l = (ests_fdiff_los_from1_1_2m, ests_fdiff_los_from1_1_lci_2m, ests_fdiff_los_from1_1_uci_2m)

. matrix colnames est_diff12_l =  "in_Admission" "in_Admission_lo" "in_Admission_hi"

. 
. esttab matrix(est_diff12_l) using "${pathdata2}diff_los_res_out_mod_t1_2m_22_corr3.html", replace 
(output written to diff_los_res_out_mod_t1_2m_22_corr3.html)

The lengths of stay are presented here:


est_diff12_l
in_Admissionin_Admission_loin_Admission_hi

3_mths 0 0 0
1_yr .01 0 .01
3_yrs .04 .02 .06
5_yrs .02 -.02 .06

Difference_Length_of_Stay_from_Second_and_third_state

. foreach var of varlist fdiff_los_from2_2_2m fdiff_los_from2_2_lci_2m fdiff_los_from2_2_uci_2m {
  2.                 scalar variable = "`var'"
  3.                                         qui summarize `var' if inrange(timevar0, .30, .40)
  4.                                         scalar e3m_`var' = round(round(r(mean),.001)*1,.01)
  5.                                         qui summarize `var' if inrange(timevar0, .98, 1.02)
  6.                                         scalar e1y_`var' = round(round(r(mean),.001)*1,.01)
  7.                                         qui summarize `var' if inrange(timevar0, 2.98, 3.02)
  8.                                         scalar e2m_`var' = round(round(r(mean),.001)*1,.01)
  9.                                         qui summarize `var' if inrange(timevar0,  4.98, 5.02)
 10.                                         scalar e5y_`var' = round(round(r(mean),.001)*1,.01)
 11.          cap noi matrix ests_`var' = (`=scalar(e3m_`var')'\  `=scalar(e1y_`var')'\ `=scalar(scalar(e2m_`var'))'\ `=scalar(scalar(e5y_`var'))')
 12.          matrix colnames ests_`var' = `var'
 13.          matrix rownames ests_`var' = 3_mths 1_yr 3_yrs 5_yrs
 14.                 }

. matrix est_diff22_l = (ests_fdiff_los_from2_2_2m, ests_fdiff_los_from2_2_lci_2m, ests_fdiff_los_from2_2_uci_2m)

. matrix colnames est_diff22_l =  "in Completion" "in Completion_lo" "in Completion_hi"

. 
. esttab matrix(est_diff22_l) using "${pathdata2}diff_los_res_out_mod_t2_2m_22_corr3.html", replace 
(output written to diff_los_res_out_mod_t2_2m_22_corr3.html)

The lengths of stay are presented here:


est_diff22_l
in Completionin Completion_loin Completion_hi

3_mths 0 0 0
1_yr -.03 -.03 -.02
3_yrs -.21 -.24 -.18
5_yrs -.48 -.54 -.42

Ended (not saved) at= 18:20:20 21 Apr 2023