Что это за кривая нормализации? Константа ^ (Константа ^ Наблюдение индексируется до 100) - PullRequest
1 голос
/ 15 января 2020

Мои извинения, но я не совсем уверен, как вообще задать этот вопрос. У меня есть некоторые кривые нормализации, которые я использовал на работе, и я хотел бы узнать о них больше, поэтому я говорю о них разумно. Они имеют форму s, похожую на сигмовидную функцию, но их общая формула выглядит следующим образом:

Константа ^ (Константа ^ Наблюдение индексировано до 100)

Сначала индексируйте переменную от 0 до 100 с помощью самое высокое наблюдение, равное 100, затем вставьте в уравнения ниже для кривых с разными наклонами.

s1 = 0,0000000001 ^ (0,97 ^ Index)

s2 = 0,0000000002 ^ (0,962 ^ Index)

s3 = 0,0000000003 ^ (0,953 ^ Index)

И так далее, до s10. Результирующие значения сжимаются в диапазоне от 0 до 1. s10 имеет самый крутой наклон со значениями, наклоненными к 1, и s1 имеет самый мелкий наклон со значениями, которые наклоняются к 0.

Я думаю, что они очень умные, и они хорошо работают для наших целей, но я не знаю, как их назвать. Может кто-то указать мне верное направление? Опять же, извиняюсь за неопределенность и если это неуместно помечено.

1 Ответ

0 голосов
/ 16 января 2020

Функции, которые вы описываете, являются частными случаями функций Gompertz ; Функции Гомперца имеют сигмоидальную форму и имеют множество применений в разных областях. Например, в биологии функции Гомперца используются для моделирования роста бактериальных и опухолевых клеток.


Чтобы увидеть, как ваши уравнения связаны с более общими функциями Гомперца, давайте перепишем уравнения для s

enter image description here

Отметим, что взятие двойного логарифма s (т.е. log log s) линеаризует уравнение как функцию индекса.

Теперь мы можем сравнить это с более общей функцией Гомперца

enter image description here

Взятие натурального логарифма дает

enter image description here

Затем мы устанавливаем a=1 и снова берем натуральный логарифм

enter image description here

Итак, уравнения, которые вы даете алгебраически идентичны функциям Гомперца с параметрами

enter image description here


Давайте нарисуем функцию для трех наборов параметров, которые вы дадите в своем посте ( Я использую R здесь, но легко сделать что-то подобное, например, Python)

# Define a function f which takes the index and two parameters a and b
# We use a helper function scale01 to scale the values of f in the interval [0,1]
# using min-max scaling
scale01 <- function(x) (x - min(x)) / (max(x) - min(x))
f <- function(idx, a, b) scale01(a ^ (b ^ idx))

# Calculate s for the three different sets of parameters and 
# using integer index values from 0 to 100 
idx <- 0:100
lst <- lapply(list(
    s1 = list(a = 0.0000000001, b = 0.97),
    s2 = list(a = 0.0000000002, b = 0.962),
    s3 = list(a = 0.0000000003, b = 0.953)),
    function(pars) f(idx, a = pars$a, b = pars$b))

# Plot    
library(ggplot2)
df <- cbind(idx = idx, stack(lst))
ggplot(df, aes(idx, values, colour = ind)) + geom_line()
* 10 47 *enter image description here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...