gpt4 book ai didi

r - GLM:警告消息: 'newdata' 有 16623 行,但找到的变量有 22488 行

转载 作者:行者123 更新时间:2023-11-30 08:33:28 24 4
gpt4 key购买 nike

我在论坛上进行了广泛的搜索,发现了很多类似的文章,但是没有一个能解决我的问题。

现在,我转向你了。

我有类似的数据:

ontime currency incoterms price month
1 USD FOB 234.2 01
1 CAD FOB 92.4 01
0 USD DAP 238.9 02
0 EUR FOB 100 03
1 CNY DAP 739.8 04

我这段代码:

g = df$ontime      #binary
a = df$currency #String
b = df$INCOTERMS #String
c = df$price #float
f = df$month #string

mod1 <- glm(g~a+b+c,family=binomial(link="logit"), data=df[f=="01",])
pred_ontime1 <- predict(mod1,df[f%in%c("02","03","04"),],type="response")

我的愿望是测试我的模型,我使用 01 月、02 月、03 月和 04 月的数据进行训练。

我的结果是这样的:

Warning message:
'newdata' had 16623 rows but variables found have 22488 rows

我尝试过在 01 月进行训练,并在 01、02、03 和 04 月进行测试,这并没有给我错误消息,但是,对我的训练集中包含的数据进行测试似乎不合适。

值 16623 当然是 02、03 和 04 中的行数之和,而 22488 是 01、02、03 和 04 中的行数之和。

我能做什么?

最佳答案

尝试运行模型,而不先将每列保存到向量中。我认为 predict() 无法判断它与其建模的变量名称相同。

mod1 <- glm(ontime ~ currency + INCOTERMS + price, family = binomial(link = "logit"), data = df[df$month == "01",])
pred_ontime1 <- predict(mod1,df[df$month %in% c("02","03","04"),], type = "response")

看看是否有效。

<小时/>

对于任何感兴趣的人来说,这是一个可重现的示例:

df <- read.table(textConnection("ontime currency incoterms price month
0 USD DAP 234.2 01
1 CAD FOB 92.4 01
0 USD DAP 238.9 02
0 USD FOB 100 03
1 CAD DAP 739.8 04"), header = TRUE)

mod1 <- glm(ontime ~ currency + incoterms + price, family = binomial(link = "logit"), data = df[df$month == 1,])
pred_ontime1 <- predict(mod1, df[df$month %in% c(2:4),], type = "response")
pred_ontime1
3 4 5
5.826215e-11 5.826215e-11 1.000000e+00

关于r - GLM:警告消息: 'newdata' 有 16623 行,但找到的变量有 22488 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50358471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com