Нахождение значения x при определенном значении y на ggplot

#r #ggplot2

Вопрос:

В настоящее время я испытываю некоторые трудности, пытаясь найти эффективную концентрацию 50% для одного из моих наборов данных. Чтобы кратко резюмировать, что это такое, это данные о том, как уровень глутатиона в клетках снижается со 100% при воздействии вещества, известного как HEMA.

 GSH50 lt;- read.table("Master list for all GSH data T9 TVN.csv", header = TRUE, sep = ";", dec = ",")  

После некоторого дополнительного подмножества я получаю сюжет, подобный этому сюжету GSH

У меня есть еще несколько графиков в дополнение к этому, поэтому мне нужно найти значение EC50 для всех, чтобы затем сравнить их друг с другом (проблема согласована на нескольких участках, поэтому, если ее можно исправить здесь, она должна быть исправлена и на других).

Из более раннего набора данных с почти такой же настройкой (единственное отличие-значения по оси x) Мне удалось получить довольно правильный EC50, используя такую настройку:

 HG lt;- approxfun(x, y) optimize(function(t0) abs(HG(t0) - 50), interval = range(x))  

Где я затем получил значение EC50 из функции оптимизации. Однако по какой-то причине он не работает с этими данными, как будто я ввожу значение из optimize, вместо этого я получаю этот график GSH.

Если у кого-то есть какие-либо идеи о том, как я могу решить эту проблему, я был бы весьма признателен.

Редактировать

Если вам нужен воспроизводимый набор данных, я собрал средние значения данных, и поэтому график все равно должен быть похож на графики GSH, которые я показал:

 Concentration lt;- seq(from = 0, to = 9, by=1) GSH lt;- c(100, 67.405, 47.78, 39.2325, 33.97, 28.435, 26.97, 24.5125, 23.5275, 21.565) df lt;- data.frame(Concentration, GSH) ggplot(df, aes(Concentration, GSH))   geom_smooth()  

Я совершенно уверен, что доза достаточно высока, чтобы достичь более низкого уровня, но я где-то не хранил модель. Я надеюсь, что приведенных примеров достаточно.

Правка2

Я должен упомянуть, что код приближения и оптимизации работает для примера, когда мы используем geom_lines (), но по какой-то причине он не так точен в geom_smooth().

Комментарии:

1. Не забывайте, что вы должны быть уверены, что протестировали достаточно высокую дозу, чтобы достичь более низкой стадии вашей модели ; это обязательно для оценки IC50. Кроме того, есть ли у вас объект R, в котором хранится эта модель?

2. У вас » есть более высокая вероятность удовлетворительного ответа, если вы опубликуете воспроизводимый пример, например, «вывод» некоторых данных примера. ggplot предназначен для построения графиков, а не для предсказаний. Для этого используйте функции регрессии.

3. Спасибо за предложения! Я добавил пример набора данных, который, по крайней мере, чем-то похож на мои данные. Надеюсь, это облегчит объяснение того, что мне нужно сделать.