Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: capturing the sizes of the sequences of countinous (uninterrupted) values equal to 1


From   massimiliano stacchini <[email protected]>
To   [email protected]
Subject   Re: st: capturing the sizes of the sequences of countinous (uninterrupted) values equal to 1
Date   Thu, 1 Dec 2011 10:20:39 +0000 (GMT)

Thanks a lot,
If I run the codes that you suggeted me the result is ok.
 tsset id time
 tsspell, cond(state==1)

Now I just have a slight complication.

My ID is actually composed by a couple of indicators, contained in two separate colums (i.e., ID for lender and ID for borrower).
On the contrary, the tsset command does not allow multiple variable for ID.

Question: how could I get a SINGLE index representing the SPECIFIC COUPLE of indicators.
Thanks in advance.


--- Mer 30/11/11, Nick Cox <[email protected]> ha scritto:

> Da: Nick Cox <[email protected]>
> Oggetto: Re: st: capturing the sizes of the sequences of countinous (uninterrupted) values equal to 1
> A: [email protected]
> Data: Mercoledì 30 novembre 2011, 10:52
> Sorry; previous post was sent too
> soon.
> 
> Toy example using -tsspell- (SSC). What you want is I think
> created
> here as _seq, except that you need to subtract 1.
> 
> clear
> set obs 10
> gen id = _n
> forval j = 1/5 {
>         gen time`j' = runiform() <
> 0.7
> }
> 
> reshape long time , i(id)
> rename time state
> rename _j time
> tsset id time
> tsspell, cond(state==1)
> 
> . l
> 
>      +------------------------------------------+
>      | id   time   state   _seq   _spell   _end |
>      |------------------------------------------|
>   1. |  1      1       1      1        1  
>    0 |
>   2. |  1      2       1      2        1  
>    0 |
>   3. |  1      3       1      3        1  
>    1 |
>   4. |  1      4       0      0        0  
>    0 |
>   5. |  1      5       0      0        0  
>    0 |
>      |------------------------------------------|
>   6. |  2      1       1      1        1  
>    0 |
>   7. |  2      2       1      2        1  
>    0 |
>   8. |  2      3       1      3        1  
>    0 |
>   9. |  2      4       1      4        1  
>    0 |
>   10. |  2      5       1      5        1  
>    1 |
>      |------------------------------------------|
>   11. |  3      1       1      1        1  
>    0 |
>   12. |  3      2       1      2        1  
>    0 |
>   13. |  3      3       1      3        1  
>    0 |
>   14. |  3      4       1      4        1  
>    0 |
>   15. |  3      5       1      5        1  
>    1 |
>      |------------------------------------------|
>   16. |  4      1       1      1        1  
>    1 |
>   17. |  4      2       0      0        0  
>    0 |
>   18. |  4      3       0      0        0  
>    0 |
>   19. |  4      4       1      1        2  
>    0 |
>   20. |  4      5       1      2        2  
>    1 |
>      |------------------------------------------|
>   21. |  5      1       1      1        1  
>    0 |
>   22. |  5      2       1      2        1  
>    1 |
>   23. |  5      3       0      0        0  
>    0 |
>   24. |  5      4       1      1        2  
>    1 |
>   25. |  5      5       0      0        0  
>    0 |
>      |------------------------------------------|
>   26. |  6      1       1      1        1  
>    1 |
>   27. |  6      2       0      0        0  
>    0 |
>   28. |  6      3       1      1        2  
>    0 |
>   29. |  6      4       1      2        2  
>    0 |
>   30. |  6      5       1      3        2  
>    1 |
>      |------------------------------------------|
>   31. |  7      1       1      1        1  
>    0 |
>   32. |  7      2       1      2        1  
>    0 |
>   33. |  7      3       1      3        1  
>    1 |
>   34. |  7      4       0      0        0  
>    0 |
>   35. |  7      5       1      1        2  
>    1 |
>      |------------------------------------------|
>   36. |  8      1       1      1        1  
>    0 |
>   37. |  8      2       1      2        1  
>    1 |
>   38. |  8      3       0      0        0  
>    0 |
>   39. |  8      4       1      1        2  
>    1 |
>   40. |  8      5       0      0        0  
>    0 |
>      |------------------------------------------|
>   41. |  9      1       1      1        1  
>    0 |
>   42. |  9      2       1      2        1  
>    0 |
>   43. |  9      3       1      3        1  
>    0 |
>   44. |  9      4       1      4        1  
>    0 |
>   45. |  9      5       1      5        1  
>    1 |
>      |------------------------------------------|
>   46. | 10      1       0      0        0  
>    0 |
>   47. | 10      2       0      0        0  
>    0 |
>   48. | 10      3       1      1        1  
>    0 |
>   49. | 10      4       1      2        1  
>    1 |
>   50. | 10      5       0      0        0  
>    0 |
>      +------------------------------------------+
> 
> 
> > On Wed, Nov 30, 2011 at 9:36 AM, Nick Cox <[email protected]>
> wrote:
> >> You can't get this information given your data
> structure into a single
> >> Stata variable. What you seek is a matrix.
> >>
> >> If w <= 244, you could try concatenating your
> variables into a string
> >> variable holding individuals' history.
> >>
> >> But I guess this would be easier after -reshape
> long-. Then a spell is
> >> defined as a sequence with all 1s for the same id.
> See then
> >>
> >> SJ-7-2  dm0029  . . . . . . . . . . . . . .
> Speaking Stata: Identifying spells
> >>        . . . . . . . . . . . . . . . . . . . .
> . . . . . . . . . .  N. J. Cox
> >>        Q2/07   SJ 7(2):249--265        
>                         (no commands)
> >>        shows how to handle spells with
> complete control over
> >>        spell specification
> >>
> >> tsspell from http://fmwww.bc.edu/RePEc/bocode/t
> >>    'TSSPELL': module for identification of
> spells or runs in time series /
> >>    tsspell examines the data, which must be
> tsset time series, to / identify
> >>    spells or runs, which are contiguous
> sequences defined / by some
> >>    condition. tsspell generates new variables
> indicating / distinct spells,
> >>
> >> Nick
> >>
> >> On Wed, Nov 30, 2011 at 9:24 AM, massimiliano
> stacchini
> >> <[email protected]>
> wrote:
> >>
> >>> I have a huge dataset. The rows identify the
> person ID (i) (i=1,...,n) while in columns there are the
> reference dates TIME(t) (t=1,...,w). Each cells contain the
> value 1 or 0 (zero), alternatively.
> >>>
> >>> I should create a variable (LENGTH) varying
> both over ID and TIME.
> >>> For each i of ID(i) in t of TIME(t), LENGTH
> should captures the number of continuous (uninterrupted)
> values which are equal to 1 in the interval of cells
> starting from the reference data t of TIME and moving
> backwards to the previous reference dates.
> >>> In other terms , LENGTH should capture for
> each (i) of ID and for each (t) of TIME the number of s in T
> (t-s) identifying cells having values equal to 1 (i.e., the
> size of the sequence of uninterrupted 1 moving backwards to
> the previous reference dates).
> >>>
> 
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
> 

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index