У меня есть следующие функции:Интегрирование функции в г
Demandfunction_m1 <- function(y) {y<- exp(coefm1[1,]+x*coefm1[2,])
return(y)}
В следующем шаге я хочу, чтобы вычислить площадь под кривой для каждого наблюдения в моем наборе данных.
Я смог интегрировать fuction для каждого отдельного наблюдения. Похоже, что это (каждое наблюдение имеет свои пределы интегрирования):
obs1<-integrate(Demandfunction_m1,3,16)
obs2<-integrate(Demandfunction_m1,5,12)
obs3<-integrate(Demandfunction_m1,4,18)
... и так далее
Мой набор данных 260 наблюдений и я спросил себя, если есть более простой способ calcualate области под кривыми.
Я нашел это решение:
Integrate function with vector argument in R
surv <- function(x,score) exp(-0.0405*exp(score)*x) # probability of survival
area <- function(score) integrate(surv,lower=0,upper=Inf,score=score)$value
v.area <- Vectorize(area)
scores <- c(0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1) # 7 different scores
v.area(scores)
# [1] 14.976066 13.550905 12.261366 11.094542 10.038757 9.083443 8.219039
Я попытался применить это к моему R-Skript:
Demandfunction_m1 <- function(y) {y<- exp(coefm1[1,]+x*coefm1[2,])
return(y)}
area <- function(x) integrate(Demandfunction_m1,lower=c(3,5,4),upper=c(16,12,18))$value
v.area <- Vectorize(area)
и тогда я не знаю, что я должен сделайте дальше.
Есть ли у вас какие-либо предложения?