OME
位於 MASS
包(package)。 說明
針對兒童區分broad-band 噪聲中的信號的能力進行了實驗。噪聲從一對揚聲器播放,信號僅添加到一個通道;受試者必須將他/她的頭轉向帶有添加信號的頻道。信號或者是相幹的(噪聲幅度在一段時間內增加),或者是不相幹的(在同一周期內添加獨立噪聲以形成相同的功率增加)。
原始分析中使用的閾值是獲得 75% 正確響應所需的刺激響度。一些兒童患有滲出性中耳炎(OME)。
用法
OME
格式
OME
DataFrame 有 1129 行和 7 列:
ID
-
主題 ID(1 到 99,部分 ID 缺失)。一些受試者在不同年齡進行了測量。
OME
-
"low"
或"high"
或"N/A"
(30 個月和 60 個月以外的年齡)。 Age
-
受試者的年齡(月)。
Loud
-
刺激的響度,以分貝為單位。
Noise
-
刺激中的信號是
"coherent"
還是"incoherent"
。 Correct
-
Trials
試驗的正確響應數。 Trials
-
進行的試驗次數。
背景
該實驗旨在研究滲出性中耳炎 (OME),這是一種非常常見的兒童疾病,通常為 air-filled 的中耳空間因液體而充血。伴隨的波動性傳導性聽力損失可能導致各種語言、認知和社交缺陷。 “雙耳聽力”一詞用於說明大腦同時處理來自雙耳的信息的聽力條件。大腦計算到達每隻耳朵的信號強度和/或時間的差異,這有助於聲音定位以及我們在背景噪音中聽到的能力。
幾年前,人們發現有明顯 OME 病史的 7-8 歲兒童的雙耳聽力明顯比沒有這種病史的兒童差,盡管其敏感性相當。問題仍然在於關鍵時期中耳炎發作的時間、持續時間或嚴重程度是否影響了後來的雙耳聽力。為了開始回答這個問題,95 名兒童自出生以來每個月都接受了積液監測。根據頭兩年的 OME 經驗,測試人群被分為一組 OME 患病率高的組和一組低患病率的組。
例子
# Fit logistic curve from p = 0.5 to p = 1.0
fp1 <- deriv(~ 0.5 + 0.5/(1 + exp(-(x-L75)/scal)),
c("L75", "scal"),
function(x,L75,scal)NULL)
nls(Correct/Trials ~ fp1(Loud, L75, scal), data = OME,
start = c(L75=45, scal=3))
nls(Correct/Trials ~ fp1(Loud, L75, scal),
data = OME[OME$Noise == "coherent",],
start=c(L75=45, scal=3))
nls(Correct/Trials ~ fp1(Loud, L75, scal),
data = OME[OME$Noise == "incoherent",],
start = c(L75=45, scal=3))
# individual fits for each experiment
aa <- factor(OME$Age)
ab <- 10*OME$ID + unclass(aa)
ac <- unclass(factor(ab))
OME$UID <- as.vector(ac)
OME$UIDn <- OME$UID + 0.1*(OME$Noise == "incoherent")
rm(aa, ab, ac)
OMEi <- OME
library(nlme)
fp2 <- deriv(~ 0.5 + 0.5/(1 + exp(-(x-L75)/2)),
"L75", function(x,L75) NULL)
dec <- getOption("OutDec")
options(show.error.messages = FALSE, OutDec=".")
OMEi.nls <- nlsList(Correct/Trials ~ fp2(Loud, L75) | UIDn,
data = OMEi, start = list(L75=45), control = list(maxiter=100))
options(show.error.messages = TRUE, OutDec=dec)
tmp <- sapply(OMEi.nls, function(X)
{if(is.null(X)) NA else as.vector(coef(X))})
OMEif <- data.frame(UID = round(as.numeric((names(tmp)))),
Noise = rep(c("coherent", "incoherent"), 110),
L75 = as.vector(tmp), stringsAsFactors = TRUE)
OMEif$Age <- OME$Age[match(OMEif$UID, OME$UID)]
OMEif$OME <- OME$OME[match(OMEif$UID, OME$UID)]
OMEif <- OMEif[OMEif$L75 > 30,]
summary(lm(L75 ~ Noise/Age, data = OMEif, na.action = na.omit))
summary(lm(L75 ~ Noise/(Age + OME), data = OMEif,
subset = (Age >= 30 & Age <= 60),
na.action = na.omit), correlation = FALSE)
# Or fit by weighted least squares
fpl75 <- deriv(~ sqrt(n)*(r/n - 0.5 - 0.5/(1 + exp(-(x-L75)/scal))),
c("L75", "scal"),
function(r,n,x,L75,scal) NULL)
nls(0 ~ fpl75(Correct, Trials, Loud, L75, scal),
data = OME[OME$Noise == "coherent",],
start = c(L75=45, scal=3))
nls(0 ~ fpl75(Correct, Trials, Loud, L75, scal),
data = OME[OME$Noise == "incoherent",],
start = c(L75=45, scal=3))
# Test to see if the curves shift with age
fpl75age <- deriv(~sqrt(n)*(r/n - 0.5 - 0.5/(1 +
exp(-(x-L75-slope*age)/scal))),
c("L75", "slope", "scal"),
function(r,n,x,age,L75,slope,scal) NULL)
OME.nls1 <-
nls(0 ~ fpl75age(Correct, Trials, Loud, Age, L75, slope, scal),
data = OME[OME$Noise == "coherent",],
start = c(L75=45, slope=0, scal=2))
sqrt(diag(vcov(OME.nls1)))
OME.nls2 <-
nls(0 ~ fpl75age(Correct, Trials, Loud, Age, L75, slope, scal),
data = OME[OME$Noise == "incoherent",],
start = c(L75=45, slope=0, scal=2))
sqrt(diag(vcov(OME.nls2)))
# Now allow random effects by using NLME
OMEf <- OME[rep(1:nrow(OME), OME$Trials),]
OMEf$Resp <- with(OME, rep(rep(c(1,0), length(Trials)),
t(cbind(Correct, Trials-Correct))))
OMEf <- OMEf[, -match(c("Correct", "Trials"), names(OMEf))]
## Not run: ## these fail in R on most platforms
fp2 <- deriv(~ 0.5 + 0.5/(1 + exp(-(x-L75)/exp(lsc))),
c("L75", "lsc"),
function(x, L75, lsc) NULL)
try(summary(nlme(Resp ~ fp2(Loud, L75, lsc),
fixed = list(L75 ~ Age, lsc ~ 1),
random = L75 + lsc ~ 1 | UID,
data = OMEf[OMEf$Noise == "coherent",], method = "ML",
start = list(fixed=c(L75=c(48.7, -0.03), lsc=0.24)), verbose = TRUE)))
try(summary(nlme(Resp ~ fp2(Loud, L75, lsc),
fixed = list(L75 ~ Age, lsc ~ 1),
random = L75 + lsc ~ 1 | UID,
data = OMEf[OMEf$Noise == "incoherent",], method = "ML",
start = list(fixed=c(L75=c(41.5, -0.1), lsc=0)), verbose = TRUE)))
## End(Not run)
來源
Sarah Hogan,牛津大學生理學係,來自統計谘詢服務部
相關用法
- R summary.rlm 魯棒線性模型的總結方法
- R ginv 廣義逆矩陣
- R housing 哥本哈根住房條件調查的頻率表
- R biopsy 乳腺癌患者的活檢數據
- R predict.qda 根據二次判別分析進行分類
- R contr.sdif 連續差異對比編碼
- R Melanoma 惡性黑色素瘤的生存率
- R boxcox 線性模型的 Box-Cox 變換
- R predict.glmmPQL glmmPQL 擬合的預測方法
- R ucv 帶寬選擇的無偏交叉驗證
- R theta.md 估計負二項式的 theta
- R parcoord 平行坐標圖
- R rlm 線性模型的穩健擬合
- R npk 經典 N、P、K 階乘實驗
- R Cars93 1993 年美國銷售的 93 輛汽車的數據
- R predict.lda 通過線性判別對多變量觀測值進行分類
- R geyser 老忠實間歇泉數據
- R summary.negbin 類“negbin”對象的摘要方法函數
- R Aids2 澳大利亞艾滋病生存數據
- R truehist 繪製直方圖
- R mcycle 來自模擬摩托車事故的數據
- R loglm1 通過迭代比例縮放擬合對數線性模型 - 內部函數
- R kde2d 二維核密度估計
- R dropterm 嘗試模型中的所有一項刪除
- R eqscplot 具有幾何等比例的圖
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Tests of Auditory Perception in Children with OME。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。