Nano Hash - криптовалюты, майнинг, программирование

Как получить сюжет из nlrq в R?

Следующий рабочий процесс для нелинейной квантильной регрессии, кажется, работает. Однако я не знаю, как построить результирующую кривую.

кстати: я бы предпочел использовать функцию graphics::curve() вместо graphics::lines()

require(quantreg)

# load sample data
dat <- DNase
# introduce variable
x <- DNase$conc
y <- DNase$density
# introduce function 
f <- function(a, b, x) {(a*x/(b+x))}
# fit the model
fm0 <- nls(log(y) ~ log(f(a,b,x)), dat, start = c(a = 1, b = 1))
# fit a nonlinear least-square regression
fit <- nls(y ~ f(a,b,x), dat, start = coef(fm0))
# receive coeffientes
co <- coef(fit)
a=co[1]
b=co[2]
# plot
plot(y~x) 
# add curve
curve((a*x/(b+x)), add=T)

# then fit the median using nlrq
dat.nlrq <- nlrq(y ~ SSlogis(x, Asym, mid, scal), data=dat, tau=0.5)
# add curve
???

РЕДАКТИРОВАТЬ: Я ищу способ построить различные квантильные регрессии формулы, например a*x/(b+x). Вставка формулы приводит меня к вопросу, что поставить в качестве аргумента «старт»

dat.nlrq.075 <-  nlrq(formula=fit, data = dat, start=???, tau = 0.75)

Ответы:


1

curve использует lines, поэтому на самом деле нет причин использовать curve, когда проще использовать lines.

Сначала убедитесь, что данные отсортированы, чтобы графики получались правильными. Затем установите с помощью nls или nlrq и используйте fitted для подогнанной линии.

library(quantreg)

dat <- DNase[order(DNase$conc), ]
fit.nlrq <-  nlrq(density ~ SSlogis(conc, Asym, mid, scal), data = dat, tau = 0.5)
plot(density ~ conc, dat)
lines(fitted(fit.nlrq) ~ conc, dat)

Если вы хотите построить подгонку в другом количестве равноотстоящих точек, например 250, сделайте то же самое, но используйте predict вместо fitted:

x <- seq(min(dat$conc), max(dat$conc), length = 250)
lines(predict(fit.nlrq, list(conc = x)) ~ x, lty = 2, col = "red")

Тот же стиль работает с nls.

Обратите внимание, что если вы используете require, его значение должно быть проверено. Если вы не хотите этого делать, используйте вместо этого library.

07.07.2018
  • спасибо за советы! ваш код отлично работает для примера. Может быть, я не совсем четко сформулировал, что ищу способ интегрировать формулу, например (ax/(b+x), в nlrq(). Я хотел бы построить кривые различные квантили формулы (ax/(b+x) 09.07.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..