楼主: lhjnju
3069 3

[数据管理求助] 生存分析(survivial analysis)中,设定时间出了问题,如何解决 [推广有奖]

  • 0关注
  • 4粉丝

教师

已卖:55份资源

硕士生

71%

还不是VIP/贵宾

-

威望
0
论坛币
30528 个
通用积分
2.1555
学术水平
2 点
热心指数
3 点
信用等级
1 点
经验
2726 点
帖子
85
精华
0
在线时间
155 小时
注册时间
2005-8-21
最后登录
2025-4-3

楼主
lhjnju 发表于 2014-9-12 18:07:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近我在应用数据做生存分析,但到了一个地方,怎么也弄不明白。周围人也不懂这个。所以,无法讨论,很着急。具体问题是这样的:
我做生存分析时,首先宣布数据时生存分析的数据。我的数据有三个时间点:焦点时间(year---类似于PANEL DATA中的年)、公司IPO时间(ipoyear)、公司开展某活动时间(internationalyear).我想研究公司IPO后何时开展了该活动。于是,我把internaitonalyear和ipoyear想减,得到time,然后把公司开展活动时设定为stinternationalized10. 我用三个设定命令:

stset time,fail(stinternationalized10)
或者:stset time,fail( stinternationalized10) id(code)、
或者:stset internationaltime,fail(stinternationalized10) enter(time ipoyear) origin(time year)

第二个和第三个命令得到的结果一样,不知道为什么两者一样?更为重要的是,第一个和第二个命令稍微有差别,但第二个命令得到的提示是:
stset time,fail( stinternationalized10) id(code1)
                id:  code1
     failure event:  stinternationalized10 != 0 & stinternationalized10 < .
obs. time interval:  (time[_n-1], time]
exit on or before:  failure
------------------------------------------------------------------------------
     4165  total obs.
     4162  multiple records at same instant                     PROBABLE ERROR
           (time[_n-1]==time)
        3  obs. end on or before enter()
------------------------------------------------------------------------------
        0  obs. remaining, representing
        0  subjects
        0  failures in single failure-per-subject data
        0  total analysis time at risk, at risk from t =         0
                             earliest observed entry t =         .
                                  last observed exit t =         .


非常奇怪,大部分数据都不能计算!!!!!为什么我第一个命令可以但第二个命令就不行了呢?

非常焦虑中,谢谢生存分析大牛的指点?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Survivial Analysis Analysi Analys alysis origin 如何

沙发
gxnnhgm66 发表于 2014-9-12 19:33:30
路过,学习!

藤椅
tuguy83 发表于 2014-9-12 23:56:56
我感觉你的time数据有问题。看看时间函数那几列。

板凳
赵安豆 发表于 2024-6-26 20:59:30
在生存分析中,正确设定时间变量对于获得准确的模型结果至关重要。你的情况涉及到三个关键的时间点:数据记录的时间(year),公司首次公开发行(IPO)的时间(ipoyear),以及公司开展某特定活动的时间(internationalyear)。

你的目标是研究公司在IPO后何时开始进行这项活动。为此,你计算了internationalyear与ipoyear之间的差值(time),并将这个time作为生存分析中的时间变量。

在Stata中设定生存数据格式,可以使用`stset`命令,这需要正确指定失败事件的定义以及时间间隔。你的问题在于如何合理地设置这些参数,尤其是当涉及到多个时间点时。

1. **关于第二个和第三个命令结果相同的问题**:

   第二个命令`stset time,fail(stinternationalized10) id(code)` 和第三个命令`stset internationaltime,fail(stinternationalized10) enter(time ipoyear) origin(time year)` 的相似结果可能是因为你使用的数据集和事件定义在两种情况下都是相同的。但是,第二个命令没有指定从什么时间开始观察(即起始时间),而第三个命令通过`enter(ipoyear)`和`origin(year)`指定了具体的起始时间和一个参考点。

   - `stset time,fail(stinternationalized10) id(code)`:这里只定义了失败事件和唯一标识符,没有具体说明从何时开始观察。Stata会默认从数据集的最小时间值开始。
   
   - `stset internationaltime,fail(stinternationalized10) enter(time ipoyear) origin(time year)`:这指定了一个更复杂的设置,即从IPO年份(ipoyear)开始计算生存时间,并以year作为参考点来确定每个个体的进入观察期的时间。

2. **如何解决设定问题**:

   你应确保`stset`命令能够准确反映你的研究设计。如果目标是分析公司IPO后的情况,那么应该从IPO那年开始计算生存时间,直到它们开始进行国际活动或达到研究结束点。

   - 使用`enter(ipoyear)`来指定每个公司在其IPO年份进入观察期。
   
   - `origin(year)`可能不太适用于此处,除非你有特定理由将某个固定的年份作为所有公司的共同参考点。在大多数情况下,使用`enter()`更为合理。

最终的命令应考虑你的数据结构和研究设计:

```stata
stset time, fail(stinternationalized10) enter(ipoyear)
```

这确保了分析从每个公司IPO后开始计算,直到它们开始国际活动或达到观察期结束。记住,在实际应用中,可能还需要调整以反映截尾数据和其它复杂情况。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-29 00:31