gpt4 book ai didi

matlab - 预测变量和响应变量必须具有相同的长度; MATLAB

转载 作者:行者123 更新时间:2023-12-03 08:30:48 28 4
gpt4 key购买 nike

在此先感谢您的帮助。

我正在尝试对一组数据使用逐步回归。我有一个表中的数据,表的最右边有一个预测变量(作为一列)。这是我的代码的样子。

mdl = stepwiseglm(dummyTrainingTable,'modelspec',modelTech,'Criterion',criterion);

其中modelTech 和criteria 是包含指示两个名称-值对选项的字符串的变量。我收到以下错误
Error using classreg.regr.FitObject/assignData (line 257)
Predictor and response variables must have the same length.

Error in classreg.regr.TermsRegression/assignData (line 349)
model =
assignData@classreg.regr.ParametricRegression(model,X,y,w,asCat,varNames,excl);

Error in GeneralizedLinearModel/assignData (line 794)
model =
assignData@classreg.regr.TermsRegression(model,X,y,w,asCat,dummyCoding,varNames,excl);

Error in GeneralizedLinearModel.fit (line 1165)
model =
assignData(model,X,y,weights,offset,binomN,asCatVar,dummyCoding,model.Formula.VariableNames,exclude);

Error in GeneralizedLinearModel.stepwise (line 1271)
model = GeneralizedLinearModel.fit(X,y,start.Terms,'Distribution',distr,
...

Error in stepwiseglm (line 148)
model = GeneralizedLinearModel.stepwise(X,varargin{:});

这对我来说没有意义,因为很明显我的响应变量和预测变量具有相同的长度;他们在一张 table 上。如果它们的长度不同,它们就不可能在 table 上,对吧?这是 Matlab 的问题,还是我缺少一些简单的东西?

请注意,当我将表格转换为矩阵时,stepwiseglm 运行得很好。 IE。,
dummyTrainingArray = table2array(dummyTrainingTable);

mdl = stepwiseglm(dummyTrainingArray(:,1:size(dummyTrainingArray,2) - 1), dummyTrainingArray(:,size(dummyTrainingArray,2)),modelTech,'VarNames', ...
dummyTrainingTable.Properties.VariableNames,'Criterion', criterion);

最佳答案

我想出了一个解决办法。尽管在线文档声明输入可以是表格,但当我在我的 Matlab 版本中查看手册时(运行“帮助 stepwiseglm”),我发现该函数仅与数据集兼容。然后我将我的表转换为数据集,它运行良好。

编辑,我有 Matlab 版本
8.2.0.701 (R2013b)

关于matlab - 预测变量和响应变量必须具有相同的长度; MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938897/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com