×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
この記事のとは違う
対数変換してから非再帰法+基準値置換でやる
Ratcliff, R. (1993). Methods for dealing with reaction time outliers. Psychological Bulletin, 114, 510-532.
っぽいかんじ
nn <- 50
rt <- round(c((rnorm(nn, mean=300, sd=20)+(300*rexp(nn)))))
## 関数定義。反応時間のベクトルrt, 基準cop (デフォルト2.5SD) を与える。ifm=Tにすると他の情報も出す。
elrt <- function(rt, cop=2.5, ifm=FALSE) {
rt <- na.omit(as.vector(rt))
rtl <- log(rt)
cop <- cop
meanv <- mean(rtl)
sdv <- sd(rtl)
cv.l <- meanv-(cop*sdv)
cv.u <- meanv+(cop*sdv)
rtl2 <- rtl
tf.l <- rtl<cv.l
tf.u <- rtl>cv.u
rtl2[tf.l] <- cv.l # 外れ値をカットオフ値で置換
rtl2[tf.u] <- cv.u
nart <- rt
nart[tf.l] <- NA
nart[tf.u] <- NA
rplrt <- rt
rplrt[tf.l] <- exp(cv.l) # 生rtの外れ値に対しカットオフ値を指数変換して置換
rplrt[tf.u] <- exp(cv.u)
logrt <- rtl2
reslist <- list()
reslist$logrt <- logrt
reslist$nart <- nart
reslist$rplrt <- rplrt
reslist$outliers.l <- rt[tf.l]
reslist$outliers.u <- rt[tf.u]
reslist$cop <- paste(cop, "SD", sep="")
reslist$cv <- c(cv.l, sum(tf.l), cv.u, sum(tf.u))
names(reslist$cv) <- c("lower", "nofl", "upper", "nofu")
ifelse(ifm==FALSE, return(rtl2), return(reslist))
}
(logrt <- elrt(rt)) # 対数変換・カットオフ置換のみ
(elres <- elrt(rt, ifm=T)) # logrtに加え、外れ値をNAにしたもの、指数変換で置き換えたもの、カットオフ値とその個数
対数変換してから非再帰法+基準値置換でやる
Ratcliff, R. (1993). Methods for dealing with reaction time outliers. Psychological Bulletin, 114, 510-532.
っぽいかんじ
nn <- 50
rt <- round(c((rnorm(nn, mean=300, sd=20)+(300*rexp(nn)))))
## 関数定義。反応時間のベクトルrt, 基準cop (デフォルト2.5SD) を与える。ifm=Tにすると他の情報も出す。
elrt <- function(rt, cop=2.5, ifm=FALSE) {
rt <- na.omit(as.vector(rt))
rtl <- log(rt)
cop <- cop
meanv <- mean(rtl)
sdv <- sd(rtl)
cv.l <- meanv-(cop*sdv)
cv.u <- meanv+(cop*sdv)
rtl2 <- rtl
tf.l <- rtl<cv.l
tf.u <- rtl>cv.u
rtl2[tf.l] <- cv.l # 外れ値をカットオフ値で置換
rtl2[tf.u] <- cv.u
nart <- rt
nart[tf.l] <- NA
nart[tf.u] <- NA
rplrt <- rt
rplrt[tf.l] <- exp(cv.l) # 生rtの外れ値に対しカットオフ値を指数変換して置換
rplrt[tf.u] <- exp(cv.u)
logrt <- rtl2
reslist <- list()
reslist$logrt <- logrt
reslist$nart <- nart
reslist$rplrt <- rplrt
reslist$outliers.l <- rt[tf.l]
reslist$outliers.u <- rt[tf.u]
reslist$cop <- paste(cop, "SD", sep="")
reslist$cv <- c(cv.l, sum(tf.l), cv.u, sum(tf.u))
names(reslist$cv) <- c("lower", "nofl", "upper", "nofu")
ifelse(ifm==FALSE, return(rtl2), return(reslist))
}
(logrt <- elrt(rt)) # 対数変換・カットオフ置換のみ
(elres <- elrt(rt, ifm=T)) # logrtに加え、外れ値をNAにしたもの、指数変換で置き換えたもの、カットオフ値とその個数
PR
Comment
Trackback
Trackback URL
Comment form