【发布时间】:2022-01-12 14:58:16
【问题描述】:
我有以下数据集
data <- data.frame(height=c(184,163,170,161,162,167,180,175,182,176,180,164,178,155,187,176,176,152,160,190),
weight=c(83,51,80,53,64,70,75,74,86,78,90,66,60,44,81,75,68,63,51,88),
shoe_size=c(44,37,42,35,38,40,43,42,44,43,45,40,40,35,44,40,42,39,36,45),
age=c(26,24,26,26,25,28,28,24,31,25,29,24,38,27,28,32,26,33,26,26))
hoodie = with(data,
ifelse(weight<=45, "XXS",
ifelse(weight>45 & weight<=52, "XS",
ifelse(weight>52 & weight<=57, "S",
ifelse(weight>57 & weight<=64, "M",
ifelse(weight>64 & weight<=75, "L", "XL"))))))
hoodie_data = cbind(hoodie, data)
我必须根据我的鞋子尺码和重量来预测连帽衫尺码,即 S、M、L 等 我尝试这样做
linear_model <- lm(hoodie ~ weight + shoe_size,data = hoodie_data)
它给出了错误:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
NA/NaN/Inf in 'y'
In addition: Warning message:
In storage.mode(v) <- "double" : NAs introduced by coercion
在连帽衫上使用as.factor() 或as.numeric() 时,返回NA
如何进行?
【问题讨论】:
-
问题是您的连帽衫栏完全可以从重量栏预测。将两者都添加到您的节点会导致奇点。决定两者之一并将另一个从模型中删除应该可以解决问题。
-
您正在寻找分类模型 - 尝试多项逻辑回归(而不是线性回归;其中响应是数字)。即
multinom形式nnet
标签: r machine-learning linear-regression