D******6 发帖数: 6211 | | k***g 发帖数: 7244 | 2 把你的 Begin Time rename 为 Begin,End Time rename 为 End (Stata 不支持有空
格的 var name),然后
stset End, failure(Use) time0(Begin) id(ID) exit(time .)
不就可以了么?还是我没有读明白你最初的问题?:)
【在 D******6 的大作中提到】 : 版上大侠,谁懂stata?帮我看一个问题吧,我在statistics版贴了问题了,这几天愁 : 死我了。。。 : http://www.mitbbs.com/article/Statistics/31187475_3.html
| k***g 发帖数: 7244 | 3 哦,仔细看了一下你例子里的数据结构,明白问题了,你必须把你的数据转化为
survival data 先,假设 use==1 是 failure event,那么你必须把你的数据转化为这
样的
id Begin End Use
101 4 5 1
101 5 6 1
101 7 10 1
转化数据结构有时候有些麻烦,我比较喜欢在 excel 利用 vba 作,比直接在 stata
里作要方便很多,就是效率不是很高
【在 k***g 的大作中提到】 : 把你的 Begin Time rename 为 Begin,End Time rename 为 End (Stata 不支持有空 : 格的 var name),然后 : stset End, failure(Use) time0(Begin) id(ID) exit(time .) : 不就可以了么?还是我没有读明白你最初的问题?:)
| m********y 发帖数: 1543 | 4 多哈是啥专业?也要用这个?
当年小克他们学校有个老师想招个懂STATA的RA,我厚着脸皮写信说我会。心里盘算要
我的话,就赶紧赶在开学之前学会。后来她没要我,我就没学,555...
【在 D******6 的大作中提到】 : 版上大侠,谁懂stata?帮我看一个问题吧,我在statistics版贴了问题了,这几天愁 : 死我了。。。 : http://www.mitbbs.com/article/Statistics/31187475_3.html
| D******6 发帖数: 6211 | 5 赫赫,我写的是例子,不是stata代码,是,我知道stata不支持空格。代码不是问题,
主要是要转换成stata支持的table的逻辑。
我现在就是在把duration data转换称survival data这里卡住了,因为stata网站上的
那个FAQ没有太看明白。看我的例子如下:
1。duration data。
ID, begin time, end time, use
101,4,5,1
101,5,10,0
101,10,17,1
101,17,23,0
102, 1,15,1
102, 15,16,0
102,16,23,1
2。survival data。
ID, begin time, end time, drop
101,4,5,1
101,10,17,1
101,17,23,0
102,1,15,1
102,16,23,1
从1到2我转换的对吗?
【在 k***g 的大作中提到】 : 哦,仔细看了一下你例子里的数据结构,明白问题了,你必须把你的数据转化为 : survival data 先,假设 use==1 是 failure event,那么你必须把你的数据转化为这 : 样的 : id Begin End Use : 101 4 5 1 : 101 5 6 1 : 101 7 10 1 : 转化数据结构有时候有些麻烦,我比较喜欢在 excel 利用 vba 作,比直接在 stata : 里作要方便很多,就是效率不是很高
| D******6 发帖数: 6211 | 6 赫赫,我学social science的吧,就是拿堆数据套各种模型,其实没啥专业。我研究过
大麻,研究过教育,现在研究一个产品的adoption。。。
30年河东30年河西,以前各个老师都用SAS,后来一个老师用R,现在各个老师都用
stata,弄得我样样都半生不熟。。。
【在 m********y 的大作中提到】 : 多哈是啥专业?也要用这个? : 当年小克他们学校有个老师想招个懂STATA的RA,我厚着脸皮写信说我会。心里盘算要 : 我的话,就赶紧赶在开学之前学会。后来她没要我,我就没学,555...
| k***g 发帖数: 7244 | 7 呵呵,因该是这样子的:
ID Begin Time End Time USE*
101 4, 5 1
101 5, 10,1
101 17, 23, 0
102 1, 15, 1
102 15, 16, 1
要转化成到达 failure event (i.e. use==1)的时间, 除非像101最后一个例子一样,
在规定的 time span 里,还是没有达到 failure event,所以 use*==0
【在 D******6 的大作中提到】 : 赫赫,我写的是例子,不是stata代码,是,我知道stata不支持空格。代码不是问题, : 主要是要转换成stata支持的table的逻辑。 : 我现在就是在把duration data转换称survival data这里卡住了,因为stata网站上的 : 那个FAQ没有太看明白。看我的例子如下: : 1。duration data。 : ID, begin time, end time, use : 101,4,5,1 : 101,5,10,0 : 101,10,17,1 : 101,17,23,0
| D******6 发帖数: 6211 | 8 我刚才看statistics那边的帖子,发现我copy以前的email没有拷贝全,几个例子来回
用让我拷贝混了。。。。Use是duration,drop是survival。
我再好好看一眼。。。
【在 k***g 的大作中提到】 : 呵呵,因该是这样子的: : ID Begin Time End Time USE* : 101 4, 5 1 : 101 5, 10,1 : 101 17, 23, 0 : 102 1, 15, 1 : 102 15, 16, 1 : 要转化成到达 failure event (i.e. use==1)的时间, 除非像101最后一个例子一样, : 在规定的 time span 里,还是没有达到 failure event,所以 use*==0
| D******6 发帖数: 6211 | 9 我自己发明例子来回改,改得很乱,赫赫。
drop=1是failure
第一个问题,FAQ里的那个102的最后一个time period,35-40在survival里给code成0
了,是因为102没有drop的可能了,对吧。
第二个问题,噢,写到这里我好像想明白了,赫赫。
谢谢版大。
【在 k***g 的大作中提到】 : 呵呵,因该是这样子的: : ID Begin Time End Time USE* : 101 4, 5 1 : 101 5, 10,1 : 101 17, 23, 0 : 102 1, 15, 1 : 102 15, 16, 1 : 要转化成到达 failure event (i.e. use==1)的时间, 除非像101最后一个例子一样, : 在规定的 time span 里,还是没有达到 failure event,所以 use*==0
| D******6 发帖数: 6211 | 10 102,15,16,1这个该drop掉吧,一直是1。。。right censoring.
所以,我又有问题了,101,4,5,1和101,5,10,1要分成2条记录吗?
【在 k***g 的大作中提到】 : 呵呵,因该是这样子的: : ID Begin Time End Time USE* : 101 4, 5 1 : 101 5, 10,1 : 101 17, 23, 0 : 102 1, 15, 1 : 102 15, 16, 1 : 要转化成到达 failure event (i.e. use==1)的时间, 除非像101最后一个例子一样, : 在规定的 time span 里,还是没有达到 failure event,所以 use*==0
| | | k***g 发帖数: 7244 | 11 嗯,对,因为观测的 period 已经结束,所以如果还没有 drop 那就是 code 就是 0 了
成0
【在 D******6 的大作中提到】 : 我自己发明例子来回改,改得很乱,赫赫。 : drop=1是failure : 第一个问题,FAQ里的那个102的最后一个time period,35-40在survival里给code成0 : 了,是因为102没有drop的可能了,对吧。 : 第二个问题,噢,写到这里我好像想明白了,赫赫。 : 谢谢版大。
| k***g 发帖数: 7244 | 12 102, 15 16 1 不能 丢掉 啊, 15 16 的时候 drop 没有发生,所以 15 16 是等待达到
drop 的时间,所以不能丢掉;
101, 4, 5, 1 这条是错误的,应该是 101, 0, 4, 1 从 0 到 4 是等待 drop 发生的时
间 (类似范例里 101 那个例子);
101 5, 10, 1 这条是正确的;
是有点儿绕,呵呵,所以还是写 code 来 restructure 你的 data 吧:)
102,15,16,1这个该drop掉吧,一直是1。。。right censoring.
所以,我又有问题了,101,4,5,1和101,5,10,1要分成2条记录吗?
【在 D******6 的大作中提到】 : 102,15,16,1这个该drop掉吧,一直是1。。。right censoring. : 所以,我又有问题了,101,4,5,1和101,5,10,1要分成2条记录吗?
| c***r 发帖数: 3965 | 13 你blog里的国史通鉴还能下载么?
达到
的时
【在 k***g 的大作中提到】 : 102, 15 16 1 不能 丢掉 啊, 15 16 的时候 drop 没有发生,所以 15 16 是等待达到 : drop 的时间,所以不能丢掉; : 101, 4, 5, 1 这条是错误的,应该是 101, 0, 4, 1 从 0 到 4 是等待 drop 发生的时 : 间 (类似范例里 101 那个例子); : 101 5, 10, 1 这条是正确的; : 是有点儿绕,呵呵,所以还是写 code 来 restructure 你的 data 吧:) : : 102,15,16,1这个该drop掉吧,一直是1。。。right censoring. : 所以,我又有问题了,101,4,5,1和101,5,10,1要分成2条记录吗?
| k***g 发帖数: 7244 | 14 很久以前的了吧,我也不知道,你试试看?
【在 c***r 的大作中提到】 : 你blog里的国史通鉴还能下载么? : : 达到 : 的时
| D******6 发帖数: 6211 | 15 嗯,好像不能从0开始,因为在0的时候这个user还没有开始使用产品呢。还是得从4开
始。
嗯,我以后编个例子必须坚持到底,总改,自己脑子都乱了,赫赫。绕进去了。
又总结了一下,这回该是清晰的了吧。
duration data
ID, begin time, end time, use
101,4,5,1
101,5,10,0
101,10,17,1
101,17,23,0
102,1,15,1
102,15,16,0
102,16,23,1
Then, the converted survival dataset:
ID, begin time, end time, drop
101,4,5,1
101,10,17,1
101,17,23,0
102,1,15,1
达到
的时
【在 k***g 的大作中提到】 : 102, 15 16 1 不能 丢掉 啊, 15 16 的时候 drop 没有发生,所以 15 16 是等待达到 : drop 的时间,所以不能丢掉; : 101, 4, 5, 1 这条是错误的,应该是 101, 0, 4, 1 从 0 到 4 是等待 drop 发生的时 : 间 (类似范例里 101 那个例子); : 101 5, 10, 1 这条是正确的; : 是有点儿绕,呵呵,所以还是写 code 来 restructure 你的 data 吧:) : : 102,15,16,1这个该drop掉吧,一直是1。。。right censoring. : 所以,我又有问题了,101,4,5,1和101,5,10,1要分成2条记录吗?
| c***r 发帖数: 3965 | 16 search不到
你帮我找找?
【在 k***g 的大作中提到】 : 很久以前的了吧,我也不知道,你试试看?
| k***g 发帖数: 7244 | 17 其实你直接定义一下 failure event ,然后用 stset 就可以了,为什么非要手动去作
survival data 呢?
譬如你这个 duration data,你直接
stset End, id (ID) time0(Begin) origin(time Begin) failure( Use==1)
不就可以了么?
【在 D******6 的大作中提到】 : 嗯,好像不能从0开始,因为在0的时候这个user还没有开始使用产品呢。还是得从4开 : 始。 : 嗯,我以后编个例子必须坚持到底,总改,自己脑子都乱了,赫赫。绕进去了。 : 又总结了一下,这回该是清晰的了吧。 : duration data : ID, begin time, end time, use : 101,4,5,1 : 101,5,10,0 : 101,10,17,1 : 101,17,23,0
| D******6 发帖数: 6211 | 18 不可以的吧,不转成survival data就不能用stset的。FAQ上不是写“We will use
these data to create the corresponding survival dataset and then stset it.”
而且我的failure event不是use ==1,好像我以前在statistics那个版贴的帖子我拷
贝email没有拷贝完全。use是使用产品的状态,drop==1才是failure。
【在 k***g 的大作中提到】 : 其实你直接定义一下 failure event ,然后用 stset 就可以了,为什么非要手动去作 : survival data 呢? : 譬如你这个 duration data,你直接 : stset End, id (ID) time0(Begin) origin(time Begin) failure( Use==1) : 不就可以了么?
| k***g 发帖数: 7244 | 19 呵呵,我的印象里是可以的(以前教计量课的时候,准备过一些关于 survival data
的简单分析,所以有些印象,也可能不准确,因为我平时很少用到 survival data),
你只要设置了 failure 参数,i.e. failure(drop==1) 就可以了,其实 Stata 就是想
知道 failure event 的定义,你可以试一试看;
另外翻出来一本书送给你:
http://www.megaupload.com/?d=P2H1VOE4
An Introduction to Survival Analysis Using Stata,也许会有些帮助:)
【在 D******6 的大作中提到】 : 不可以的吧,不转成survival data就不能用stset的。FAQ上不是写“We will use : these data to create the corresponding survival dataset and then stset it.” : 而且我的failure event不是use ==1,好像我以前在statistics那个版贴的帖子我拷 : 贝email没有拷贝完全。use是使用产品的状态,drop==1才是failure。
| D******6 发帖数: 6211 | 20 谢谢你那本书!我正要从学校图书馆借本看看。网上那个FAQ就是这本书的作者写的,
太好了。以后你来宾州,我请客,赫赫。
failure是一定要定义的,无论是在single spell的还是multiple spell。
但是,我这个data是multiple spell的,和single spell的不一样。在single spell的
data里,的确不用convert,因为failure的状态好定义。我的这个multiple spell的
data,use和drop是2个不同的variable。use 是一个阶段的状态,是duration data里
面的;drop是一个点状态,是survival data里的。use和drop相关,但是不完全相等。
不转换成survival data,就没有drop这个variable,failure不能通过use来定义,所
以无法用stset。
【在 k***g 的大作中提到】 : 呵呵,我的印象里是可以的(以前教计量课的时候,准备过一些关于 survival data : 的简单分析,所以有些印象,也可能不准确,因为我平时很少用到 survival data), : 你只要设置了 failure 参数,i.e. failure(drop==1) 就可以了,其实 Stata 就是想 : 知道 failure event 的定义,你可以试一试看; : 另外翻出来一本书送给你: : http://www.megaupload.com/?d=P2H1VOE4 : An Introduction to Survival Analysis Using Stata,也许会有些帮助:)
|
|