速度计算

由于凝视样本往往很嘈杂,不同的方法使用从噪声样本中计算速度的各种方法。方法依据Engbert和Kliegl(2003)Otero-Milan等人(2014)使用相同的基于对多个样本进行平均以计算速度的方法,然而Nyström和Holmqvist(2010年)计算一个简单的导数,然后过滤它。默认情况下,包使用前一种方法(速度_功能=diff _ ek)但是你也可以使用后者(速度_功能=diff_nh)或实现一个自定义方法(见下文)。加速度的计算方式相同但从速度样本来看。

差异化遵循Engbert和Kliegl(2003)

此方法计算预定义时间窗口上的速度通过控制ek_速度_时间_窗口默认为20ms。根据采样_比率参数,并确保为古怪的等于或大于3的数字。也就是说,对于是三个样本长,速度是基于一个样本计算的电流之前和之后的一个样本,对于五个样本窗口-两个前面和后面的示例等。代码总是以请求的窗口大小,但都会迭代地将其减少两个样本以适应试验限值和缺失值。不适用速度是仅当最小窗口(三个样本宽度)都不能已使用。

通常,计算水平和垂直速度分量作为\[v_x[i]=\裂缝{\sum_{j=1}^{(N-1)/2}x[i+j]-x[i-j]}{\sum_{j=1}^{(N-1)/2}2j\cdot\Delta t}\]哪里\(i)是样本的索引,\(Δt=\frac{1}{sample ~ rate}\)是一个单个采样帧的持续时间,以及\(否)是一个古怪的的整数宽度用于计算速度的移动平均值。Engbert和Kliegl(2003),\(N=5)\(增量t=4\)(250 Hz采样率)转换为20ms移动平均窗口(在方法实现)。下面是显示等价性的推导上式至中式1Engbert和Kliegl(2003)。对于\(N=5):\[\frac{\sum_{j=1}^{(5-1)/2}x[i+j]-x[i-j]}{\sum_{j=1}^{(5-1)/2}2j\cdot\Delta t}=\] \[\frac{\sum_{j=1}^{2} x个【i+j】-x[i-j]}{\sum{j=1}^{2} 第2节\cdot\Delta t}=\]

\[\frac{x[i+1]-x[i-1]+x[i+2]-x[i-2]}{2\增量t+4\增量t}=\] \[\frac{x[i+2]+x[i+1]-x[i-1]-x[2]}{6\增量t} \]

差异化遵循Nyström和Holmqvist(2010)

速度的水平和垂直分量是根据相邻样本,从分量计算振幅,然后使用萨维茨基·戈莱滤波器。过滤器顺序通过控制nh_sg过滤器顺序选项,默认为2.

比较两种方法

这两种方法产生了可比较但不同的速度值。然而,这对扫视检测只有很小的影响,请参阅渐晕使用样本投票.

#用两种方法计算速度
标高(_E)<-香囊::差异(_E)(x个=单列(_T)$x、,
                           年=单列(_T)$y中,
                           试验= 代表(1,nrow公司(单列)),
                           采样速率(_R)= 500)
级别(_N)<-香囊::差异(_N)(x个=单列(_T)$x、,
                           年=单列(_T)$是的,
                           试验= 代表(1,nrow公司(单列)),
                           采样速率(_R)= 500)
水平比较<- na.省略(数据帧(EK公司=标高(_E)[[“amp”]],NH公司=级别(_N)[[“amp”]]))%>%
数字播放器::滤波器(NH> 0)%>% #由于筛选,值可能为负值
数字播放器::突变(logEK(对数)= 日志(EK),对数NH= 日志(NH))

#绘制振幅比较
皮尔逊(pearson_rho)<- cor公司(水平比较[[“EK”]],速度比较[[“NH”]])

ggplot图(数据=级别比较,原子发射光谱(x个=埃克森美孚,年=NH))+
  地理_阿比林()+
  地理点()+
  缩放_x_log10()+
  缩放y_log10()+
  实验室(副标题= 把格式数据写成串(“皮尔逊ρ=%.2f\n个对数转换速度的皮尔逊ρ=%.2f“,皮尔逊,cor公司(水平比较[[“logEK”]],级别比较[[“logNH”]])),
       x个= “维克”,
       年= “Vnh”)


#绘图
ggplot图(数据= 无效的,原子能机构(x个=水平比较[[“EK”]]-水平比较[[“NH”]]))+
  地理直方图(垃圾箱= 50)+
  xlab公司(“Vek-Vnh”)+
  实验室(标题= “通过两种方法计算的速度差异”)

实现和使用自定义差异功能

自定义函数应如下所示

差异自定义(_C)<- 功能(x,y,试验,抽样率,选项=无效的) {
  #计算垂直和水平构件
数据流<- 数据帧(x个=...,#区分x的值
                   年=...)#y的微分值
  
  #计算振幅
数据流[[“amp”]]= 平方英尺(df[[“x”]]^2 +数据流[[“是”]]^2))

  #返回包含列x、y和amp的data.frame
  返回(df)
}

传递给函数的参数(所有向量都具有相同的长度):

函数必须返回包含三列的data.frame:x个(水平分量),(垂直组件),以及放大器(振幅)。

下面是一个关于试探的简单速度函数示例边界

图书馆(dplyr)

差异自定义(_C)<- 功能(x,y,试验,抽样率,选项=无效的) {
  #计算帧时间步长
增量_t_s<- 1 /采样速率(_R)
  
  #---微分(计算速度或加速度)和滤波
  数据帧(试验=试验,
             x个=x、,
             年=年)%>%

    #计算每次试验的速度和加速度
    分组方式(_B)(试验)%>%
    突变(x个=(x)- 滞后(x) )/增量_秒,
           年=(年)- 滞后(y) )/增量_秒,
           放大器= 平方英尺(x)^2 +^2))
}

这是一个类似的函数,但它使用了一个可选的自定义速度滞后参数,以便它可以不同从1开始

差异标签n<- 功能(x,y,试验,抽样率,选项=无效的) {
  #获取滞后或使用默认值
滞后<-香囊::选项_或默认(选项,“自定义速度滞后”,1)
  
  #计算帧时间步长
增量_秒<- 1 /采样速率(_R)
  
  #---微分(计算速度或加速度)和滤波
  数据帧(试验=试验,
             x个=x中,
             年=年)%>%

    #计算每次试验的速度和加速度
    分组方式(_B)(试验)%>%
    突变(x个=(x)- 滞后(x,lagn))/增量_秒,
           年=(年)- 滞后(y,lagn))/增量_秒,
           放大器= 平方英尺(x)^2 +^2))
}

工具书类

Engbert、Ralf和Reinhold Kliegl。2003微扫描揭示了隐蔽的方向注意.” 视觉研究43 (9): 1035–45.https://doi.org/10.1016/S0042-6989(03)00084-1.
Nyström、Marcus和Kenneth Holmqvist。2010一种用于注视、扫视和闪耀的自适应算法眼跟踪数据中的检测.” 行为研究方法42 (1): 188–204.https://doi.org/10.3758/BRM.42.1.188.
Otero Millan,J.、Jose L Alba Castro、Stephen L Macknik和S。马丁内斯·孔德。2014无监督检测微突击的聚类方法.” 第页,共页愿景14 (2): 18–18.https://doi.org/10.1167/14.2.18.