以下のコードを見てください。この質問は以前に尋ねられましたが、シャットダウンされました-おそらく問題を再現するためのRコードが不足しているためです。
基本的に、データに多重共線性がある場合、Polr でトレーニングされたモデルを使用すると、 の呼び出し中に問題が発生しpredict()ます。ここで何が欠けていますか?
以下の太字の部分は、R が私に言ったことです。残りは私のコードです。
r = c(2,2,2,3,3,3,1,1,1,1)
r = as.factor(r)
x = c(0,0,0,4,5,6,0,-1,-1,1)
y = c(5,5,2,1,0,3,10,4,3,8)
z = c(0,0,0,4,5,6,0,-1,-1,1)
a = data.frame(r,x,y,z)
library(MASS)
model <- polr(r~x+z, data=a, Hess=TRUE)
警告メッセージ: In polr(r ~ x + z, data = a, Hess = TRUE) : 計画は階数不足のように見えるため、いくつかの係数を削除します
test = model.frame(r~x+ z, data=a)
predict(model, test, type="class", s=model$lambda.min)
X %*% object$coefficients のエラー: 適合しない引数
test2 = model.frame(r~x, data=a)
predict(model, test2, type="class", s=model$lambda.min)
X %*% object$coefficients のエラー: 適合しない引数
test3 = model.frame(~x, data=a)
predict(model, test2, type="class", s=model$lambda.min)
X %*% object$coefficients のエラー: 適合しない引数
model2 = polr(r~x, data=a, Hess=TRUE)
predict(model2, test, type="class", s=model$lambda.min)
[1] 1 1 1 3 3 3 1 1 1 2
レベル: 1 2 3
predict(model2, test2, type="class", s=model$lambda.min)
[1] 1 1 1 3 3 3 1 1 1 2
レベル: 1 2 3
predict(model2, test3, type="class", s=model$lambda.min)
[1] 1 1 1 3 3 3 1 1 1 2
レベル: 1 2 3