'newdata' 有 1 行,但找到的变量有 10 行
'newdata' had 1 row but variables found have 10 rows
我在 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
代表我的新观察...但是我在使用 predict
时收到以下警告消息
Warning message:
'newdata' had 1 row but variables found have 10 rows
有人可以帮助我吗?我找不到预测函数的正确用法。我需要在某个日期训练我的模型,并在给定的一组独立变量
上预测(仅一个)依赖变量
当您使用 betareg
函数拟合模型然后使用 predict 进行预测时,predict 会尝试在 newdata 上找到相同的名称(不是 new_data
您的变量,而是 newdata 的参数预测功能)。在您的第一个案例中,名称 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)
我在 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
代表我的新观察...但是我在使用 predict
Warning message:
'newdata' had 1 row but variables found have 10 rows
有人可以帮助我吗?我找不到预测函数的正确用法。我需要在某个日期训练我的模型,并在给定的一组独立变量
上预测(仅一个)依赖变量当您使用 betareg
函数拟合模型然后使用 predict 进行预测时,predict 会尝试在 newdata 上找到相同的名称(不是 new_data
您的变量,而是 newdata 的参数预测功能)。在您的第一个案例中,名称 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)