Можно ли сделать анализ чувствительности - PullRequest
0 голосов
/ 25 июня 2019

Я получил следующее уравнение из степенной модели после логарифмического преобразования.

 logy = 3.651 + 0.648*logind1 + 0.915*logind2

Я хочу сделать анализ чувствительности и создать график где ось x является первой независимой переменной (ind1), Ось у это у, где я хочу построить различные кривые 2-го независимого значения как следующая фотография.

Значение на участке не должно быть в логарифмическом масштабе.

Я не уверен, можно ли использовать R для этой цели.

Это мои данные в оригинальном значении:

df <- data.frame(y, ind1, Ind2)
dput(head(df))

 structure(list(y = c(17.5460928, 15.09292512, 404.6266803, 509.8268418, 
 22.29624608, 27.62826976), ind1 = c(0.003739281, 0.003473227, 
 0.096486361, 0.124097819, 0.005281017, 0.005089576), Ind2 = c(0.20708766, 
 0.216378894, 0.628712871, 0.505681818, 0.318622945, 0.245192308
 )), row.names = c(NA, 6L), class = "data.frame")

Большое спасибо!

1 Ответ

0 голосов
/ 25 июня 2019

Вы имели в виду нечто подобное?

# Vector of values over which to perform the analysis.
vec.pars <- c(0.1, 0.3, 0.6)

# The function for calculating Y.
calcY <- function(x, ind1) {
  3.651 + 0.648 * ind1 + 0.915 * x
}
# Vectorized version. This enables us to apply the above function
# to a vector of values at the same time.
calcY <- Vectorize(FUN = calcY, vectorize.args = "x", SIMPLIFY = FALSE)

# Construct the output
vec.y <- calcY(x = vec.pars, ind1 = df$ind1)
xy <- data.frame(y = do.call(c, vec.y))
xy$ind1 <- rep(df$ind1, times = length(vec.y))
xy$ind2 <- rep(vec.pars, each = nrow(df))

ggplot(xy, aes(x = ind1, y = y, color = as.factor(ind2))) +
  theme_bw() +
  geom_line()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...