Matlab的fitrm函数必须具有完整的列级别

时间:2014-08-05 05:57:41

标签: matlab matrix regression anova

提前感谢您的帮助。

我正在尝试创建一个重复的度量模型。我有一个包含几个响应变量和几个预测变量的表。我使用Wilkinson符号创建了一个模型,然后将模型传递给fitrm。

mdl = fitrm(t,model);

我收到以下错误。

Error using RepeatedMeasuresModel.fit (line 1331)
The between-subjects design must have full column rank.

Error in fitrm (line 67)
s = RepeatedMeasuresModel.fit(ds,model,varargin{:});

这个错误究竟是什么意思?当我将我的模型改为'response~1'(除了我发现的其他几个)之外,fitrm运行得很好。我相当肯定我的问题必须是我的模型的制定,或者(我认为是问题)我的桌子有问题。

错误本身暗示我的表(如果我要转换为矩阵)的等级不满。但是,我已经检查过以确保我的行和列都不是线性独立的。特别是,我隔离了两个功能,让我们称之为x和y,当它出现时给我上面的错误。当我使用

model = 'response ~ y'  %or
model = 'response ~ x'

我没有错误。当我使用

model = 'response ~ y + x

我收到上述错误。 y和x是线性无关的。可能会发生什么?

请注意,由于数据和模型(医疗数据)的性质,我无法提供比我已提供的信息更多的信息。

编辑:

我的大多数功能都是分类号码。例如,x可以是1,2或3,其中x的值是分类的。我通过将所有预测变量都视为数值来确定我的特征的线性独立性。我的想法是,如果它们在数字形式上是线性独立的,那么当以不同的格式表示时它们肯定是如此;例如ASCII。但是,两个特征集的二进制表示可能是线性相关的。考虑到我的数据集的大小,我认为这不太可能。

当我运行我的代码将所有分类变量视为数字变量时,我没有收到错误。这可能意味着这是一个内部的matlab错误。当表示为字符串,分类或名义值时,我的要素是否可能是线性相关的? (这些是我试图对我的分类变量进行分类以测试这是否确实是问题的方法; matlab wiki表明这些变量类型都被视为分类变量)。

0 个答案:

没有答案