私は分位点回帰を使用しています(たとえば、R を介して、gbm
またはquantreg
Rで)-中央値ではなく、上位の分位点(たとえば75番目)に焦点を当てています。予測モデリングの背景から、モデルがテストセットにどの程度適合するかを測定し、これをビジネスユーザーに説明できるようにします。私の質問はどうですか?継続的なターゲットの典型的な設定では、次のことができます。
- 全体のRMSEを計算する
- データセットを予測値で十分位取りし、実際の平均値を各十分位数で予測された平均値と比較します。
- 等。
この場合、予測と比較する実際の値が実際にない(少なくとも考えていない)場合、何ができますか?
コードの例を次に示します。
install.packages("quantreg")
library(quantreg)
install.packages("gbm")
library(gbm)
data("barro")
trainIndx<-sample(1:nrow(barro),size=round(nrow(barro)*0.7),replace=FALSE)
train<-barro[trainIndx,]
valid<-barro[-trainIndx,]
modGBM<-gbm(y.net~., # formula
data=train, # dataset
distribution=list(name="quantile",alpha=0.75), # see the help for other choices
n.trees=5000, # number of trees
shrinkage=0.005, # shrinkage or learning rate,
# 0.001 to 0.1 usually work
interaction.depth=5, # 1: additive model, 2: two-way interactions, etc.
bag.fraction = 0.5, # subsampling fraction, 0.5 is probably best
train.fraction = 0.5, # fraction of data for training,
# first train.fraction*N used for training
n.minobsinnode = 10, # minimum total weight needed in each node
cv.folds = 5, # do 3-fold cross-validation
keep.data=TRUE, # keep a copy of the dataset with the object
verbose=TRUE) # don’t print out progress
best.iter<-gbm.perf(modGBM,method="cv")
pred<-predict(modGBM,valid,best.iter)
では、条件付き分布のパーセンタイルが観測されないため、どうなりますか?
追加:
私はいくつかの方法を仮定しましたが、それらが正しいかどうか、より良い方法があるかどうか、また最初の方法をどう解釈するかを知りたいです:
損失関数から平均値を計算します。
qregLoss<-function(actual, estimate,quantile) { (sum((actual-estimate)*(quantile-((actual-estimate)<0))))/length(actual) }
これは、変位値回帰の損失関数ですが、値をどのように解釈するのでしょうか?
たとえば、テストセットで75パーセンタイルを計算する場合、予測値は実際の値の75%程度よりも大きくなるはずだと考えるべきでしょうか。
モデルが新しい事例をどれだけうまく予測できるかを説明するための正式なまたは発見的な方法はありますか?