楼主: liusuem
3222 7

[程序分享] R语言:报错:Error in lrm.fit(logit[i], y[i], [推广有奖]

  • 0关注
  • 1粉丝

小学生

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
33 点
帖子
3
精华
0
在线时间
1 小时
注册时间
2022-7-12
最后登录
2023-2-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
代码:model <- glm(NSSI ~sex+ grade + suicide_attempt + only_child+ psychotic_symptom + CDI, data = tlog, family = binomial(link="logit"))  #建立多因素回归模型

summary(model)

model.step <-step(model,direction='backward')

summary(model.step)

tlog$premodel<-predict(newdata=tlog,model.step,"response")  #premodel指生成预测概率这个新变量。

val.prob(tlog$premodel,tlog$NSSI)


报错:Error in lrm.fit(logit, y, initial = c(0, 1), maxit = 1L) :

  must have >=3 non-missing observations

In addition: Warning message:

In Ops.factor(p, y) : ‘+’ not meaningful for factors


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:logit Error err fit Log

沙发
llb_321 在职认证  发表于 2022-7-13 14:12:13 |只看作者 |坛友微信交流群
先查看一下数据类型:
str(tlog)
代码应该没问题,可能的原因还在原数据。

使用道具

藤椅
liusuem 发表于 2022-7-14 17:10:01 |只看作者 |坛友微信交流群
是因为年龄这种定量数据识别成定性数据了吗?str(tlog)需要加在哪一行呢?求大佬回复

使用道具

板凳
llb_321 在职认证  发表于 2022-7-14 21:28:37 |只看作者 |坛友微信交流群
那个指令,只是让您自己检查一下数据,看看有什么问题。
如果有的变量,类型是factor,用as.integer(),或as.numeric()把那个变量转为整数或数值型,再试试。

使用道具

报纸
菲affffff 发表于 2023-1-28 14:45:18 |只看作者 |坛友微信交流群
你好,我的也是这个错误代码,请问这个问题有得到解决吗,在线等回复,拜托了

使用道具

地板
dengxianlian94 发表于 2023-9-27 14:02:15 |只看作者 |坛友微信交流群
llb_321 发表于 2022-7-14 21:28
那个指令,只是让您自己检查一下数据,看看有什么问题。
如果有的变量,类型是factor,用as.integer(),或 ...
$ group: Factor w/ 2 levels "单纯糖尿病肾病DKD",..: 1 1 2 1 2 2 1 1 1 1 ...
$ sex  : Factor w/ 2 levels "男性","女性": 1 1 2 1 1 1 1 2 1 1 ...
$ age  : num [1:215] 60 57 60 59 62 66 54 26 50 46 ...
$ time : num [1:215] 120 120 0.5 84 12 0.3 240 48 84 36 ...
$ sbp  : num [1:215] 117 122 210 138 133 164 139 170 136 152 ...
$ dbp  : num [1:215] 67 74 110 87 77 92 80 116 82 89 ...
$ DR   : Factor w/ 2 levels "有糖尿病视网膜病变",..: 1 2 2 1 1 2 1 1 1 1 ...
$ UA   : num [1:215] 379 549 542 420 445 358 409 309 561 435 ...
$ KC   : num [1:215] 9.15 7.68 9.22 8.09 4 ...
$ TC   : num [1:215] 7.8 3.7 3.6 3.2 6.2 4.1 5.2 12.7 6 4.3 ...
$ TG   : num [1:215] 10.81 1.43 1.77 1.41 1.97 ...
$ HDL  : num [1:215] 0.88 0.86 0.64 1.01 1.28 1.28 1.34 2.49 1.03 1.08 ...
$ LDL  : num [1:215] 3.67 2.4 2.34 2 4.29 2.41 3.33 8.02 4.05 2.59 ...
$ UIgG : num [1:215] 117.4 24.4 233.4 101 117 ...
- attr(*, "na.action")= 'omit' Named int [1:75] 1 2 9 13 15 18 19 24 27 28 ...
  ..- attr(*, "names")= chr [1:75] "1" "2" "9" "13" ...

model<-glm(formula,data=data,family = "binomial")
#计算logit P
pred.logit2<-predict(model)
#预测概率P
P2<-predict(model,type = "response")
```
val.prob(P2, data$group, m=m, cex=0.8)  # m, subgroups obs.

Error in lrm.fit(logit, y, initial = c(0, 1), maxit = 1L) :
must have >=3 non-missing observations
我的也是这样,请问怎么弄,您说的as.integer()是放在哪里呢

使用道具

7
oliyiyi 发表于 2023-10-2 11:53:08 |只看作者 |坛友微信交流群
根据错误信息,在进行Logistic回归模型预测时,出现了不足3个非缺失观测值的问题

使用道具

8
oliyiyi 发表于 2023-10-2 11:54:14 |只看作者 |坛友微信交流群
扩大测试集样本量,确保 >= 3 个非缺失观测。

在生成预测概率时指定新数据为测试集:

predict(model.step, newdata = 测试集, type="response")

检查数据集缺失值情况,必要时进行填补或删除过多缺失样本。

仔细检查数据集分割情况,确保测试集标记正确。

将因变量转换为数值型,避免出现factor运算问题。

尝试减少模型变量,以增加可用样本量。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 13:14