4

因此,我们可以运行 KS 测试来评估 dtwo 数据集的分布是否存在差异,如此处所述

因此,让我们获取以下数据

set.seed(123)
N <- 1000
var1 <- runif(N, min=0, max=0.5)
var2 <- runif(N, min=0.3, max=0.7)
var3 <- rbinom(n=N, size=1, prob = 0.45)

df <- data.frame(var1, var2, var3)

然后我们可以根据 var3 结果分开

df.1 <- subset(df, var3 == 1)
df.2 <- subset(df, var3 == 0)

现在我们可以运行 Kolmogorov-Smirnov 检验来检验每个变量分布的差异。

ks.test(jitter(df.1$var1), jitter(df.2$var1))
ks.test(jitter(df.1$var2), jitter(df.2$var2))

毫不奇怪,我们没有发现差异,并且可以假设不同的数据集是从相同的分布中提取的。这可以通过以下方式可视化:

plot(ecdf(df.1$var1), col=2)
lines(ecdf(df.2$var1))

plot(ecdf(df.1$var2), col=3)
lines(ecdf(df.2$var2), col=4)

但是现在我们要考虑当我们同时考虑两者时,两者之间var3==0的分布是否不同。 当我们有多个预测变量时,是否有 R 包来运行这样的测试var3==1var1var2

在这里提出了类似的问题,但没有收到任何答案

似乎有一些文献: 示例 1 示例 2

但似乎没有什么与 R 相关联

4

1 回答 1

1

Peacock, JA (1983) 中讨论了二维 KS 检验。天文学中的二维拟合优度检验。皇家天文学会月报,202(3),615–627。https://doi.org/10.1093/mnras/202.3.615

有一个实现,https://cran.r-project.org/web/packages/Peacock.test/

于 2021-06-05T01:52:42.090 回答