1

以下是我试图在其中找到基于sex和的条件生存概率的泰坦尼克号数据集fareSex是分类变量,fare是连续变量。

library(PASWR2)
library(magrittr)
library(data.table)

# convert dataset from data frame to data table 
titanic3 <- copy(TITANIC3)
setDT(titanic3)

以下语句找到 的确切值的概率fare,但是,我想根据fare列的概率分布找到它。

titanic3[, survival_prob := round(100 * mean(survived), 1), by = .(fare, sex)]

我试图将fare变量从连续变量转换为分类变量,然后计算概率,结果有些准确,但是,概率会根据我在制作分类变量时创建的箱的大小而发生很大变化。

有更好的方法吗?

谢谢。

4

1 回答 1

1

您想知道基于性别和票价的生存条件概率。然而,票价是一个连续变量。所以你不能简单地应用你的方法。在您的场景中,有必要找到合适的统计方法。

一种方法是逻辑回归。首先,您使用逻辑回归估计统计模型。然后你从对象中提取与mdl你想要的条件概率相对应的拟合值。但是请注意,估计条件概率有不同的统计方法,逻辑回归只是其中之一。不过,它被广泛用于像这样的任务。

library(PASWR2)
library(magrittr)
library(data.table)


titanic3 <- copy(TITANIC3)
setDT(titanic3)


# use logistic regression to estimate the conditional probability to survive
# based on fare and sex
mdl <- glm(survived ~ fare + sex, family = binomial(), data = titanic3)

# extract fitted values which corresponds to the conditional probability
mdl$fitted.values
于 2020-11-05T09:30:51.670 回答