如何测试我的数据是离散的还是连续的?

机器算法验证 r 连续数据 离散数据
2022-02-26 19:30:42

在我看来,要选择正确的统计工具,我必须首先确定我的数据集是离散的还是连续的。

你能教我如何用 R 测试数据是离散的还是连续的?

1个回答

我可以立即想到需要此决定的唯一原因是决定在回归中将变量包含为连续变量还是分类变量。

首先,有时您别无选择:字符变量或因素(提供 data.frame 的人已为您做出决定)显然是分类的。

这给我们留下了数值变量。您可能很想简单地检查变量是否为整数,但这不是一个好的标准:查看下面的第一行代码 ( x1):这些是仅对两个值的 1000 次观察1.52.5:即使这些不是整数,这似乎是一个明显的分类变量。您可以为某些人做的x是检查数据中有多少不同的值,尽管您可能为此使用的任何阈值都是主观的,我猜:

x1<-sample(c(-1.5, 2.5), 1000)
length(unique(x1)) #absolute number of different variables
length(unique(x1))/length(x1) #relative
x2<-runif(1000)
length(unique(x2)) #absolute number of different variables
length(unique(x2))/length(x2) #relative

我倾向于说只有 5% 唯一值的变量可以安全地称为离散变量(但是,如前所述:这是主观的)。但是:这并不适合将其作为分类变量包含在您的模型中:如果您有 1000000 个观察值和 5% 的唯一值,仍然会留下 50000 个“类别”:如果您将其包含为分类变量,则重新花费大量的自由度。

我想这个电话更加主观,并且很大程度上取决于样本量和选择方法。没有更多的上下文,很难在这里给出指导。

因此,现在您可能有一些变量可以作为分类添加到模型中。但是你应该吗?这个问题可以通过似然比检验来回答(尽管它真的取决于你的目标):变量是分类的模型是变量作为连续协变量的模型的超模型。x要看到这一点,请想象一个包含三个值01变量的线性回归2拟合模型:

E[y]=β0+β11x1+β12x2
在哪里xi是一个虚拟变量指标(如果它等于 1x==i) 只是一种更灵活的拟合模型的方式
E[y]=β0+β1x
因为最后一个相当于
E[y]=β0+β1x1+2β1x2

使用超级/子模型结构,您可以通过似然比检验找出数据中是否有证据表明需要更复杂的结构:对数最大似然差异的 -2 倍(通常表示为 R 中的偏差)将跟随χ2df = 参数数量差异的分布(在上面的示例中:4 个参数 - 3 个参数)。