下面的循環對我的作品,但是應該降低度(多項式)的情況下,所述唯一的(列)的點的長度是小於3,
data(Boston)
nams = colnames(Boston)[-1]
for (i in nams) {
cat(i, " ", length(unique(Boston[, i])), '\n')
degree = 3
if (length(unique(Boston[, i])) < degree) {
degree = length(unique(Boston[, i])) - 1
}
tmp_formula = as.formula(paste(c('crim ~ poly(', i, ",", degree, ")"), collapse = ""))
print(tmp_formula)
fit = lm(tmp_formula, data = Boston)
}
示例輸出:
zn 26
crim ~ poly(zn, 3)
indus 76
crim ~ poly(indus, 3)
chas 2
crim ~ poly(chas, 1)
nox 81
crim ~ poly(nox, 3)
rm 446
crim ~ poly(rm, 3)
age 356
crim ~ poly(age, 3)
dis 412
crim ~ poly(dis, 3)
rad 9
crim ~ poly(rad, 3)
tax 66
crim ~ poly(tax, 3)
ptratio 46
crim ~ poly(ptratio, 3)
black 357
crim ~ poly(black, 3)
lstat 455
crim ~ poly(lstat, 3)
medv 229
crim ~ poly(medv, 3)
謝謝@lampros! –