从gamlss R对象预测二进制响应概率

时间:2018-02-18 18:30:37

标签: r regression linear-regression gamlss

我想从gamlss R函数预测二进制类概率/类标签,如何使用预测函数来获取它们?

我有以下示例代码

library(gamlss)
X1 <- rnorm(500)
X2 <- sample(c("A","C","D","E"),500, replace = TRUE)
Y <- ifelse(X1>0.2& X2=="A",1,0)

n <- 500
training <- sample(1:n, 400)
testing <- (1:n)[-training]

fit <- gamlss(Y[training]~pcat(X2[training],Lp=1)+ri(X1[training],Lp=1),family=BI())

pred <- predict(fit,newdata = data.frame(X1,X2)[testing,],type = "response")
  

predict.gamlss中的错误(fit,newdata = data.frame(X1,X2)[testing,] ,:      使用选项数据

定义原始数据

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要使用data的{​​{1}}选项定义原始数据:

gamlss

不幸的是,library(gamlss) set.seed(1) n <- 500 X1 <- rnorm(n) X2 <- sample(c("A","C","D","E"), n, replace = TRUE) Y <- ifelse(X1>0.2 & X2=="A", 1, 0) dtset <- data.frame(X1, X2, Y) training <- sample(1:n, 400) XYtrain <- dtset[training,] XYtest <- dtset[-training,] fit <- gamlss(Y ~ pcat(X2, Lp=1) + ri(X1, Lp=1), family=BI(), data=XYtrain) pred <- predict(fit, type="response", newdata=XYtest) 现在生成了一条新的错误消息:

  

if(p!= ap)停止时出错(“惩罚矩阵的维数和   设计矩阵是不兼容的“):参数是长度的   零

修改predict

使用的gamlss.ri函数可以解决此问题
predict.gamlss