Я пытаюсь моделировать некоторые данные, которые следует за отношением сигмовидной кривой. В моей области работы (психофизика) функция Вейбулла обычно используется для моделирования таких отношений, а не пробита.
Я пытаюсь создать модель, использующую R, и борюсь с синтаксисом. Я знаю, что мне нужно использовать функцию vglm()
из пакета VGAM
, но я не могу получить разумную модель. Здесь мои данные:
# Data frame example data
dframe1 <- structure(list(independent_variable = c(0.3, 0.24, 0.23, 0.16,
0.14, 0.05, 0.01, -0.1, -0.2), dependent_variable = c(1, 1,
1, 0.95, 0.93, 0.65, 0.55, 0.5, 0.5)), .Names = c("independent_variable",
"dependent_variable"), class = "data.frame", row.names = c(NA,
-9L))
Вот график данных в dframe1:
library(ggplot2)
# Plot my original data
ggplot(dframe1, aes(independent_variable, dependent_variable)) + geom_point()
Это должно быть смоделировано с помощью функции Вейбулла, поскольку данные соответствуют сигмовидной кривой. Вот моя попытка смоделировать данные и создать репрезентативный сюжет:
library(VGAM)
# Generate model
my_model <- vglm(formula = dependent_variable ~ independent_variable, family = weibull, data = dframe1)
# Create a new dataframe based on the model, so that it can be plotted
model_dframe <- data.frame(dframe1$independent_variable, fitted(my_model))
# Plot my model fitted data
ggplot(model_dframe, aes(dframe1.independent_variable, fitted.my_model.)) + geom_point()
Как вы можете видеть, это вовсе не означает мои исходные данные. Я либо неправильно создаю свою модель, либо неправильно создаю свой график модели. Что я делаю неправильно?
Примечание. Я редактировал этот вопрос, чтобы сделать его более понятным; ранее я полностью использовал неправильную функцию (weibreg()
). Следовательно, некоторые из комментариев ниже могут не иметь смысла.
.....