在纵向数据分析中寻找相关性

机器算法验证 r 相关性 重复测量 面板数据
2022-04-06 16:21:11

我们正在研究视频讲座观看。我们提供一门为期四五周的课程,每周有 9 或 10 个视频。我们组织集体观看活动。一个小组通常由 4-5 人组成,我们有 3 个小组。在每组中,每个参与者都使用我们的软件在他/她自己的设备上观看了该周的所有视频(这样我们就可以收集数据)。我们收集了有关他们如何浏览视频的数据。每周观看视频后,我们要求每个人用 5 点李克特量表对整周讲座的难度等级进行评分。

5 周后,我们得到一个数据集,其中包括每个用户每周的暂停次数和每个用户每周的难度等级。数据集组织如下:

对于李克特量表问卷,数据类似于

  group, person, video.difficultyOfTheWeek, week
  apricot,   A,     5,                       1
  apricot,   B,     3,                       1
  apricot,   C,     4,                       1
  apple,     A,     3,                       1
  apple,     B,     2,                       1
  apple,     C,     2,                       1
  orange,    A,     4,                       4
  orange,    B,     3,                       4
  orange,    C,     4,                       4

我们也有类似如下的暂停数据:

  group, person, numOfPauses, week, totalLengthOfVideoInTheWeekInMinute
  apricot,   A,    15,         1,             125
  apricot,   B,    23,         1,             125
  apricot,   C,    24,         1,             125
  apple,     A,    13,         1,             125
  apple,     B,    12,         1,             125
  apple,     C,     8,         1,             125
  orange,    A,    11,         4,             156
  orange,    B,     4,         4,             156
  orange,    C,     9,         4,             156

我下一步要做的是回答以下问题。

停顿次数是否与感知难度相关?

我试图使暂停次数正常化。我通过引入一个新变量“pauseFrequency”组成了一个新数据集,该变量是通过将暂停次数除以该周视频的总长度来计算的(该周的所有用户都相同)。

  group, person,  difficulty, week,      pauseFrequency
  apricot,   A,     5,         1,             15/125
  apricot,   B,     3,         1,             23/125
  apricot,   C,     4,         1,             24/125
  apple,     A,     3,         1,             13/125
  apple,     B,     2,         1,             12/125
  apple,     C,     2,         1,             8/125
  orange,    A,     4,         4,             11/156
  orange,    B,     3,         4,             4/156
  orange,    C,     4,         4,             9/156

那么问题似乎很简单。看来我只需要对难度列和 pauseFrequency 列进行相关性测试。我做的。实际上,我以相同的方式对待所有难度/频率对,无论它们来自同一组还是来自同一周或其他什么。我将它们视为个人观察。

我正在使用 R 进行分析,然后我进行了 Kendall 等级相关性测试,如下所示:

cor.test(pauseFrequency,video.difficulty,method="kendall")

这当然产生了结果,但我不确定这是正确的。我有两个担忧:

  1. 我的测量实际上是纵向和重复的,每组中的每个用户测量 5 次。
  2. 每周的“任务”实际上是不同的。虽然他们观看同一课程的视频 5 周,但每周他们观看不同系列的视频(内容和长度不同)

观察实际上不是独立的。如何弥补数据分析中的这种非独立性?

1个回答

有两个主要选项可用(实际上更多,但为了简单起见,我们只提两个):

首先,您可以使用标准回归技术(例如线性回归或离散选择方法),例如控制观看视频的长度和内容(关注两个)。当然会有组内相关性和个体内相关性。您可以调整组内相关性的标准误差,使方差矩阵估计对异方差性或任意组内相关性(如果参与者不在组之间切换,则也是个体内相关性)具有鲁棒性。这里有更多可用信息:

http://www.nber.org/WNE/lect_8_cluster.pdf

这里是关于 R 中集群稳健标准误差的估计:

http://diffuseprior.wordpress.com/2012/06/15/standard-robust-and-clustered-standard-errors-computed-in-r/

第二种方法是两种使用混合模型(由gung提到)。一个很好的介绍是 Gelman、Andrew 和 Jennifer Hill。“使用回归和多级的数据分析。” (2007 年)。与第一种方法相比,这种方法更有效,但是 - 当然 - 您必须对组内和个体内相关性(方差矩阵)的形式做更多假设才能获得更高的效率。

使用这两种方法,您可以使用线性(加法)函数形式或其他关联度量轻松计算(部分)相关性。

据我了解,每个同伴都是自己行动的,因此不应该存在需要更复杂模型(以及关于同伴交互类型的更高级假设)的同伴效应。您应该测试是否确实存在组内相关性,控制纵向维度可能就足够了。