-1

これは私の元の質問の完全な再編集です

反復測定実験で収集された RT データに取り組んでいるとしましょう。私の通常のルーチンの一部として、私は常に RT を自然対数に変換し、試行回数を調整して各参加者内の各 RT の Z スコアを計算します。これは通常、SPSS 構文の単純な回帰で行われます。

split file by subject.

REGRESSION
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS R ANOVA
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN 
  /DEPENDENT rtLN
  /METHOD=ENTER trial
  /SAVE ZRESID.

split file off.

R 生成データで同じ手順を再現するには:

#load libraries
library(dplyr); library(magrittr)

#generate data
    ob<-c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3)
    ob<-factor(ob)
    trial<-c(1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6)
    rt<-c(300,305,290,315,320,320,350,355,330,365,370,370,560,565,570,575,560,570)
    cond<-c("first","first","first","snd","snd","snd","first","first","first","snd","snd","snd","first","first","first","snd","snd","snd")

    #Following variable is what I would get after using SPSS code
    ZreSPSS<-c(0.4207,0.44871,-1.7779,0.47787,0.47958,-0.04897,0.45954,0.45487,-1.7962,0.43034,0.41075,0.0407,-0.6037,0.0113,0.61928,1.22038,-1.32533,0.07806)

    sym<-data.frame(ob, trial, rt, cond, ZreSPSS)

式(マークとダニエルのソリューションのブレンド)を適用してlm(log(rt)~trial)回帰から残差を計算できますが、何らかの理由group_byでここでは機能しません

sym %<>% 
  group_by (ob) %>% 
    mutate(z=residuals(lm(log(rt)~trial)),
    obM=mean(rt), obSd=sd(rt), zRev=z*obSd+obM)

結果の値は、グループ化が開始されていないことを明確に示しています。うまくいかなかった理由はありますか?

4

2 に答える 2