0

我使用 R 中的 glm 函数构建了一个逻辑回归模型(称为“mylogit”),如下所示:

mylogit <- glm(answer ~ as.factor(gender) + age, data = mydata, family = "binomial")

其中年龄是数字,性别是分类(男性和女性)。

然后,我继续使用构建的模型进行预测。

pred <- predict(mylogit, type = "response")

我可以通过执行以下操作轻松制作预测的时间序列图:

plot.ts(ts(pred))

给出一个看起来像这样的情节:

时间与预测的关系图

它给出了预测图。

我的问题是:是否可以根据 glm 中指定的性别(男性或女性)将 x 轴分段?换句话说,我可以在 y 轴上有预测,在 x 轴上有性别(分为男性和女性)吗?

我想从中绘制的数据样本与此类似:

我做了:

bind = cbind(mydata, pred)

“绑定”看起来像这样:

pred          age        gender
0.9461198     32          male
0.9463577     45         female
0.9461198     45         female
0.9461198     37         female
0.9477645     40          male
0.8304513     32         female
4

2 回答 2

1

查看这篇博文中的#4 ,“4. 如何创建两个不同的 X 轴或 Y 轴”。

我给你的建议是你看看一些专用的 R 绘图工具,比如ggplot2

于 2016-02-25T07:59:05.367 回答
0

我认为您不需要使用tsplot.ts因为您拥有的数据不是时间序列,对吗?只是pred在绘图前排序。

# Get data
str <- "pred,age,gender
0.9461198,32,male
0.9463577,45,female
0.9461198,45,female
0.9461198,37,female
0.9477645,40,male
0.8304513,32,female"
bind <- read.csv(textConnection(str))

# Plot
bind <- bind[order(bind$gender),]
plot(bind$pred, col = bind$gender)

library(ggplot2)
ggplot(bind, aes(x = gender, y = pred)) +
  geom_point(position = position_jitter(width = .3))

或者不创建bind你就可以做到plot(pred[order(mydata$gender)])

于 2016-02-25T09:05:42.803 回答