【发布时间】:2015-09-07 20:11:21
【问题描述】:
我有一个包含 12 列和 20000 行的单元格类型变量。我称之为总:
Atotal= [ATY1;ATY2;ATY3;ATY4;ATY5;ATY6;ATY7;ATY8;ATY9;ATY10;ATY11;ATY12;ATY13;ATY14;ATY15;ATY16;ATY17];
Atotal={ 972 1 0 0 0 0 0 21 60 118 60110 2001
973 0 0 1 0 0 0 15 46 1496 60110 2001
980 0 0 0 0 1 0 4 68 142 40502 2001
994 1 0 0 0 0 0 13 33 86 81101 2001
995 0 0 0 1 0 0 9 55 183 31201 2001
1024 1 0 0 0 0 0 10 26 3 80803 2001}
我从那里得到我的因变量和自变量:
Y1=cell2mat(Atotal(:,2));
X1=cell2mat(Atotal(:,3));
然后我对它们进行回归。考虑到我的因变量Y1是二元的,而我的自变量X1也是分类变量,所以我使用下面的代码,仍然不确定是否这是正确的。
mdl1 = fitlm(X1,Y1,'CategoricalVars',logical([1]));
然后我添加更多的假人并尝试相同的代码:
X2=cell2mat(Atotal(:,4));
X3=cell2mat(Atotal(:,5));
X4=cell2mat(Atotal(:,6));
X5=cell2mat(Atotal(:,7));
mdl2 = fitlm(X1,X2,X3,X4,X5,Y1,'CategoricalVars',logical([1,2,3,4,5]));
但现在它给了我很多错误:
Error using internal.stats.parseArgs (line 42)
Parameter name must be text.
Error in LinearModel.fit (line 849)
[intercept,predictorVars,responseVar,weights,exclude, ...
Error in fitlm (line 117)
model = LinearModel.fit(X,varargin{:});
有人可以帮我吗?谢谢
【问题讨论】:
-
逻辑 reg 在这里似乎是个好主意
-
@STNYU Code2 你说?
-
@STNYU - 你的意思是逻辑回归,对吧?
-
@rayryeng 你的意思是 logit 模型?
-
@rayryeng 我的因变量 y 的值确实不平衡(只有不到 10% 的值是 1),因此就“结果”而言,它们将与线性的结果非常相似概率。模型。但是,如果这是我在 Matlab 中做到这一点的唯一方法,我会尝试,因为我根本没有成功。现在看看怎么做!谢谢
标签: matlab regression categorical-data