площадь под кривой может быть вычислена с использованием trapz функцию pracma пакета в R. МАГК гораздо более точным, во многих случаях, особенно в биологии. Однако нет, мне известна, функция R, чтобы вычислить это. Функция ловушки следующим образом:инкрементного площадь под кривой (МАГК) в R
Пример:
a <- c(1, 4, 5, 6)
b <- c(2, 4, 6, 8)
plot(a, b)
trapz(a, b)
Ответ: 21
Кто-нибудь знает, как использовать R для расчета IAUC? Руководство можно найти here.
Заранее спасибо.
Обновление В ответ на ответ Cheng-Yow в поле ниже: Другой пример
# Recall that trapz-function is available in the pracma package
# Here is the function kindly provided by Cheng-Yow Timothy Lin
library(pracma) # should be loaded already
traps <- function(a, b) {
for (i in 1:length(b)-1){
iAUC[i] <-((b[i]+b[i+1])/2)*(a[i+1]-a[i])
}
return(sum(iAUC))
}
# Data example
a <- c(-15, -5, 1, 2, 3, 5, 8, 10, 15, 20, 30, 45, 60, 90, 120)
b <- c(50.20604, 49.59338, 47.39944, 56.38831, 69.43493, 73.92512, 61.92072, 67.92632, 115.45669,
195.03242, 322.15894, 291.30094, 289.20284, 238.70562, 156.23798)
traps(a, b)
trapz(a, b)
Они дают тот же конечные результаты это инкрементальный площадь под кривой? Это не то, как они объяснили функцию trapz ...
Спасибо за любое просвещение!
Большое спасибо Cheng-Yow за отличную функцию. См. Мое обновление в вопросе выше, как ответ на вашу функцию. –
Привет, Адам, одно из ключевых отличий заключается в том, что мой код использует цикл, который медленный, когда ваши данные становятся больше. Функция в пакете pracma векторизована, поэтому она будет работать намного быстрее. Попробуйте запустить это после вашего фрагмента выше! 'а <- представитель (а, 1000) б <- представитель (б, 1000) участок (а, б) PTM <- proc.time() ловушки (а, б) proc.time() -ptm ptm <- proc.time() trapz (a, b) proc.time() - ptm'Также не забудьте инициализировать iAUC вектор с помощью 'iAUC <-vector()' в вашей функции 'traps' " –
Большое спасибо @ Cheng-Yow, но ваша функция ловушек обеспечивает инкрементную AUC (я сожалею о повторении, возможно, глупого вопроса)? –