シグモイド曲線の関係に従ういくつかのデータをモデル化しようとしています。私の専門分野 (心理物理学) では、ワイブル関数は通常、プロビットではなく、そのような関係をモデル化するために使用されます。
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()
)。したがって、以下のコメントの一部は意味をなさない場合があります。.....