【问题标题】:How can I make logistic model with this data?如何使用这些数据制作逻辑模型?
【发布时间】:2019-09-16 19:03:18
【问题描述】:

http://www.statsci.org/data/oz/snails.txt

您可以从这里获取数据。

我的数据是 4*3*3*2 完全随机的设计实验数据。我想根据刺激变量对生存概率进行建模。

我尝试了方差分析,但我不确定它是否正确。 因为我想对“概率”建模,我应该使用逻辑模型吗? (我也试过logistic模型。但是数据显示0(Survived)和1(Deaths)的总和。即使不是0和1,我可以使用logistic吗??)

我想把“概率”作为 Y 变量。 所以我使用了logit,但它不起作用。 程序说 y 是 Inf。

如何在 aov 中使用 logit 作为 Y 变量?

glm_a <- glm(Deaths ~ Exposure + Rel.Hum + Temp + Species, data = data,
         family = binomial)    

prob <- Deaths / 20
logitt <- log(prob / (1 - prob))
logmodel <- lm(logitt ~ data$Species + data$Exposure + data$Rel.Hum + data$Temp)
summary(logmodel)


A <- factor(data$Species, levels = c("A", "B"), labels = c(-1, 1))
glm_a <- glm(Y ~ data$Species * data$Exposure * data$Rel.Hum * data$Temp,
             data=data, family = binomial)
summary(glm_a)

【问题讨论】:

    标签: r logistic-regression anova


    【解决方案1】:

    help("glm") 应该将您引导至help("family"),它会显示以下内容

    对于二项式和准二项式族,可以通过以下三种方式之一指定响应:

    1. 作为一个因素:“成功”被解释为不具有第一级的因素(因此通常具有第二级)。

    2. 作为一个数值向量,取值在 0 到 1 之间,解释为成功案例的比例(案例总数由权重给出)。

    3. 作为一个双列整数矩阵:第一列给出成功的次数,第二列给出失败的次数。

    所以对于“如何用这些数据制作逻辑模型?”这个问题,我们可以很容易地选择路线#3:

    data <- read.table("http://www.statsci.org/data/oz/snails.txt", header = TRUE)
    glm_a <- glm(cbind(Deaths, N - Deaths) ~ Species * Exposure * Rel.Hum * Temp,
                 data = data, family = binomial)
    summary(glm_a)
    # [output omitted]
    

    关于“我尝试过ANOVA,但不确定是否正确。因为我想对“概率”进行建模,我应该使用逻辑模型吗?”的问题,最好在Cross Validated上提问

    【讨论】:

    • 也可以将Deaths &gt; 0 作为响应。 (情况1)。具有该响应且没有交互的模型似乎具有更小的 AIC。
    • @RuiBarradas 对于选项#1,将数据重塑为具有nrow(data) * sum(N) 行会更合适;因此,例如,第一行将变为 20 行(每行的响应观察值为 0),最后一行将变为 20 行,其中 7 行的响应观察值为 1,其中 13 行的响应观察值为0 等。我相信这在(例如)Julian Faraway 的用 R 扩展线性模型的第 2 章中讨论过
    猜你喜欢
    • 2019-08-17
    • 2017-04-08
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多