Несоответствие между значениями y, рассчитанными с помощью функции predict() или с помощью явного уравнения подгонки

Если я вычисляю значение y для определенного значения x, используя функцию predict(), я получаю значение, отличное от того, которое я могу вычислить, используя явное уравнение подгонки.

Я подогнал приведенные ниже данные с помощью nls(MyEquation) и получил параметры m1, m2,.... Затем я хочу обратно вычислить значение y для определенного значения x, используя как функцию прогнозирования (m), так и явное уравнение, которое я использовал для подбора (вводя желаемое значение x). Я получаю разные значения y для одного и того же значения x. Какой из них правильный?

> df
    pH activity
1  3.0     0.88
2  4.0     1.90
3  5.0    19.30
4  6.0    70.32
5  7.0   100.40
6  7.5   100.00
7  8.0    79.80
8  9.0     7.75
9 10.0     1.21

x <- df$pH
y <- df$activity
m<-nls(y~(m1*(10^(-x))+m2*10^(-m3))/(10^(-m3)+10^(-x)) - (m5*(10^(-x))+1*10^(-i))/(10^(-i)+10^(-x)), start = list(m1=1,m2=100,m3=7,m5=1))

> m
Nonlinear regression model
  model: y ~ (m1 * (10^(-x)) + m2 * 10^(-m3))/(10^(-m3) + 10^(-x)) - (m5 *     (10^(-x)) + 1 * 10^(-i))/(10^(-i) + 10^(-x))
   data: parent.frame()
      m1       m2       m3       m5 
-176.032   13.042    6.282 -180.704 
 residual sum-of-squares: 1522

Number of iterations to convergence: 14 
Achieved convergence tolerance: 5.805e-06

list2env(as.list(coef(m)), .GlobalEnv)

#calculate y based on fitting parameters
# choose the 7th x value (i.e. x[7]) that corresponds to pH = 8
# (using predict)
> x_pH8 <- x[7]
> predict(m)[7]
[1] 52.14299

# (using the explicit fitting equation with the fitted parameters
> x1 <- x_pH8
> (m1*(10^(-x1))+m2*10^(-m3))/(10^(-m3)+10^(-x1)) - (m5*(10^(-x1))+1*10^(-8.3))/(10^(-8.3)+10^(-x1))
[1] 129.5284

Как вы видете: прогноз (m) [7] дает y = 52,14299 (для x = 8)

пока

(m1*(10^(-x1))+m2*10^(-m3))/(10^(-m3)+10^(-x1)) - (m5*(10^(-x1))+ 1*10^(-8.3))/(10^(-8.3)+10^(-x1)) дает y = 129,5284 (для x = 8)

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Значение i, которое вы используете при ручном расчете, вероятно, не совпадает с тем, которое вы используете при подборе модели. Я не вижу никакого несоответствия:

x <- df$pH
y <- df$activity

i <- 8.3

m <- nls(y~(m1*(10^(-x))+m2*10^(-m3))/(10^(-m3)+10^(-x)) - (m5*(10^(-x))+1*10^(-i))/(10^(-i)+10^(-x)), start = list(m1=1,m2=100,m3=7,m5=1))

x <- 8
with(as.list(coef(m)), 
     (m1*(10^(-x))+m2*10^(-m3))/(10^(-m3)+10^(-x)) - (m5*(10^(-x))+1*10^(-i))/(10^(-i)+10^(-x)))
# [1] 75.46504

predict(m)[7]
# [1] 75.46504

Другие вопросы по теме