计算绝对距离/加权移动平均值。Stata或R

计算绝对距离/加权移动平均值。Stata或R,r,stata,moving-average,panel-data,weighted-average,R,Stata,Moving Average,Panel Data,Weighted Average,我想在一个名为“absolutedistance”的变量中捕获一个名为“v1”的数字变量在一个用var“id”标识的给定对象之间距离的绝对值;在给定年份内,共有50名受试者被确定为var“持续时间”;易患病的总13年经历“事件”,由称为“患病”的依赖/结果二元变量捕获;当一名受试者在给定年份内经历该事件时,编码为1,否则为0,所有患病受试者的“v1”值以前经历过该事件的受试者 先前生病的受试者的值是受试者生病当年经历事件时的“v1”值。生病时的“v1”值为加权移动平均值,其中最近生病的受试者与所

我想在一个名为“absolutedistance”的变量中捕获一个名为“v1”的数字变量在一个用var“id”标识的给定对象之间距离的绝对值;在给定年份内,共有50名受试者被确定为var“持续时间”;易患病的总13年经历“事件”,由称为“患病”的依赖/结果二元变量捕获;当一名受试者在给定年份内经历该事件时,编码为1,否则为0,所有患病受试者的“v1”值以前经历过该事件的受试者

先前生病的受试者的值是受试者生病当年经历事件时的“v1”值。生病时的“v1”值为加权移动平均值,其中最近生病的受试者与所有其他患病受试者的体重相同。因此,对于数据集中的每年,我希望使用以下公式计算每个健康受试者的距离“绝对距离”:

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

现在,当我们认为有些人在同一年经历了这个事件时,事情变得更复杂了,让我们把它们认定为“纽带”。“关系”与“这些关系的v1平均值”共同构成“所有其他之前生病的受试者的v1平均值”。例如,2000年有三名受试者生病。从2001年起,这些“关系”将与2000年这三名受试者的v1平均值一起,构成“所有其他曾患病的受试者的v1平均值”

我将感谢您对如何在Stata或R中计算此值的评论


有关在excel中计算此值的低效、易出错的手动解决方法,请参阅我的帖子:

您可能不想查看rollapply from zoo软件包。 例如:

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

欢迎来到堆栈溢出!请包括一个可复制的示例数据+代码以及一个期望结果示例My bad。谢谢你的观察。下面是对我的数据和潜在解决方案的更准确描述。我希望得到反馈:谢谢。我不知道那件事。下面是对我的数据和潜在解决方案的更准确描述: