我在R中使用betareg函数来拟合一个模型,然后我必须预测给定新的X的新Y。这些数据是我(从excel和)用来训练模型的数据:
y x1 x2 x3 x4
0,419634945 1,014238952 1,011464532 1,192017359 1,191387415
0,361534322 1,636566118 1,485164213 1,460187325 1,597295162
0,486509921 1,000498651 1,328485546 1,894474004 1,3618722
0,580568633 1,238241644 1,15981677 1,038092521 1,594942532
0,478963289 1,434048004 1,079663345 1,144157369 1,009562412
0,852646616 1,235856992 1,385227035 1,133296831 1,160178886
0,767787659 1,14211818 1,864746836 1,170483824 1,183169424
0,43807267 1,04318058 1,109918772 1,104738116 1,311819983
0,301183957 1,495354353 1,190626472 1,338857694 1,083106967
0,445263455 1,22351354 1,777189298 1,085002195 1,159102384这是使用的代码:
library(betareg)
library(openxlsx)
input_data<- read.xlsx("dati.xlsx")
Y <- input_data[,1]
X <- input_data[,2:ncol(input_data)]
beta_reg_fit <- betareg(formula = Y ~ data.matrix(X), link = "logit", link.phi = NULL, model = TRUE, y = TRUE, x = FALSE)
new_data <- data.frame(cbind(1.1, 1.2, 1.4, 1.3))
predictions <- predict(beta_reg_fit, new_data)变量new_data代表我的新观察..。但我在使用“预测”时会得到以下警告信息
Warning message: 'newdata' had 1 row but variables found have 10 rows
有人能帮我吗?我找不到预测函数的正确用法。我需要在某个日期上训练我的模型,并对给定的一组独立变量(只有一个)进行预测。
发布于 2018-06-19 15:50:04
当您将一个模型与betareg函数相匹配,然后使用“预测”进行预测时,“预测”尝试在新数据上找到相同的名称(不是new_data变量,而是新数据--预测函数的参数)。在您的第一个例子中,名称new_data与X冲突,因此您将得到警告。
为了解决您的问题,您应该运行以下命令:
library(betareg)
library(openxlsx)
input_data<- read.xlsx("dati.xlsx")
Y <- input_data[,1]
X <- input_data[,2:ncol(input_data)]
beta_reg_fit <- betareg(formula = Y ~ data.matrix(X), link = "logit", link.phi = NULL, model = TRUE, y = TRUE, x = FALSE)
X <- data.frame(cbind(1.1, 1.2, 1.4, 1.3))
predictions <- predict(beta_reg_fit, X) https://stackoverflow.com/questions/50932142
复制相似问题