[问题] glm跑logistic

楼主: pk790127 (<>)   2017-04-26 00:58:01
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:当我使用glm套件中逻辑式回归(y为二元变量"binomial")时
modle <-glm(model1, family = "binomial" ,data = train )
跑出警告讯息
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
上网搜寻了一下解法... 得出 https://goo.gl/aNHEtU
1.用 bayesglm 在arm这个套件
modle <-bayesglm(model1, family = "binomial" ,data = train )
2.用 glmnet套件
modle1 <-glmnet(x=as.matrix(train[,-c(1,26)]) ,y=train[,1] ,family =
"binomial" )
两个作法都可以跑,也可以预测,但是想知道原先glm的错误原因是什么
train跟test资料应该都没问题 y是二元的数值型态 x有连续也有二元都是数值型态
另外在glmnet预测中 s这个值不填的话字段很奇怪,看解释是指惩罚参数,但我原先的
logistic没有lamba参数阿..
glm_result <-predict(modle1, s=0.01, as.matrix(test[, -c(1,26)]),
type="response")
这些问题可能是我方法论不熟悉,但请有使用过这些套件的前辈们提点一下
谢谢~
楼主: pk790127 (<>)   2017-04-26 00:59:00
说明一下 前面的model1是有转成as.model的方式glmnet是要吃矩阵 所以那边的model1是另外的
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-26 01:49:00
经常是完美预测造成。例如x=A则一定Y=T。另见 http://tinyurl.com/mou43rh可多利用 http://tinyurl.com/mnerchs 搜本看板旧文
楼主: pk790127 (<>)   2017-04-26 02:22:00
谢谢前辈,有看过旧文,但是我照文中连结上面的方法做的解是代表什么意思…都是logistic regression
作者: andrew43 (讨厌有好心推文后删文者)   2017-04-26 11:38:00
bayesglm 是贝氏推论。glmnet是lasso算法。这些东西比较复杂,还没搞懂前套用要小心。
作者: clansoda (小笨)   2017-04-26 16:37:00
所以用glmnet就能跑正规化了吗?
楼主: pk790127 (<>)   2017-04-26 17:32:00
是的 调整lambda=0之后可行 但是还是想知道glm的错误或是有其他logistic regression的套件 可以让我尝试
作者: fox1375 (阿吠)   2017-04-27 04:07:00
第一个警告要增加iteration次数 第二个则要检查资料资料怎么收集的? 有多少cases? 变项有哪些?要跑电脑都会让你跑 但是有警告就代表资料有点问题
楼主: pk790127 (<>)   2017-04-27 07:12:00
样本大约260个 变量有24个其中有类别(二元)有连续
作者: fox1375 (阿吠)   2017-04-27 14:29:00
变量有点多......如三楼所说有overfitting的问题这种情况下分析结果未必能用 因为很可能机率预测值大于1建议用相关系数矩阵看一下,拿掉一些自变项类别变量(包含依变量)则用交叉表,可能有完美预测的情形
作者: Wush978 (拒看低质媒体)   2017-04-27 16:52:00
变量这么多,应该会有perfect split, 也就是在某些类别型变量的状态下有y全0或1的状况。这时候training会因为机率值是0 or 1, 导致你的logistic regression在linear part必须要是-Inf / Inf ,进而导致数值收敛的困难实务上除了去找方法修剪feature外,也可以把lambda打开用regularization解决收歛性的问题。你可以利用crossvalidation来挑适当的lamda值,对你的预测也有帮助最后,小心若资料的label的0/1比率差很大,那准确率没有参考性。
楼主: pk790127 (<>)   2017-04-28 01:09:00
谢谢两位前辈

Links booklink

Contact Us: admin [ a t ] ucptt.com