2016-09-21 134 views
-2

我想在一个变量(称为“绝对距离”)中获取给定主题(用var“id”标识;共50个主题)之间的数字变量(称为“v1”)距离的绝对值,在一个特定的年份(以var“持续时间”标识,总共13年),容易生病(体验被称为“病态”的依赖/结果二元变量所捕获的“事件”;当受试者体验事件,否则为0)以及所有生病的受试者(先前曾经历事件的受试者)的“v1”的值。计算绝对距离/加权移动平均值。 Stata or R

以前患病的受试者的价值是受试者在经历事件时(受试者生病的那一年)的“v1”值。生病时的“v1”值是加权移动平均值,其中最近患病的受试者与所有其他受感染受试者具有相同的权重。因此,每年在数据集的,我想用下面的公式来计算每个健康的对象的距离(“absolutedistance”):

absolutedistance formula

“生病”可经历了不止一次,但为了简单起见,让我们把重点放在我们感兴趣的数据集上,直到第一个“病态”(在第一个事件被“右删失”之后观察并从分析中删除;数据将用生存/持续时间技术)。

现在,当我们考虑到某些受试者在同一年经历过这个事件(生病)时,情况会变得更加复杂(让我们将它们识别为“关系”)。 “关系”有助于“所有其他生病病例的平均值v1”与“这些关系的平均值v1”。例如,三名受试者在2000年患病。这些“关系”将促成2001年以后“所有其他受试者的平均v1”以及2000年这三个受试者的平均值v1。

我会明白如何计算这个在Stata或R.

对于低效,容易出错的手动解决方法在Excel计算这个意见,看我的帖子:excel workaround

+0

欢迎来到Stack Overflow!请包括一个可重复的示例(数据+代码)以及您想要的结果示例http://stackoverflow.com/help/mcve –

+0

我的不好。感谢您的观察。下面,更准确地描述我的数据和潜在的解决方案。我将不胜感激反馈:http://www.statalist.org/forums/forum/general-stata-discussion/general/1357361-weighted-moving-average-panel-data –

回答

0

您可以wan't到从动物园包裹看看rollapply。 例如:

z <- 1:20 
rollapply(z, 5, mean) 
+0

谢谢。我不知道那一个。下面,更准确地描述我的数据和一个可能的解决方案:http://www.statalist.org/forums/forum/general-stata-discussion/general/1357361-weighted-moving-average-panel-data –