忍者ブログ
×

[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にしたもの、指数変換で置き換えたもの、カットオフ値とその個数


PR
Comment
Trackback
Trackback URL

Comment form
Title
Color & Icon Vodafone絵文字 i-mode絵文字 Ezweb絵文字  
Comment
Name
Mail
URL
Password
プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表