我需要找出为什么R的logit函数(包“car”)中的adjust选项似乎不起作用。
我在具有450K记录的数据文件的项目上使用R 3.2.2。该文件包含五列:四个离散变量(允许值0,1,2或3)和响应变量“sharer_prob”(允许值0 - 1 - 数据集包含无值= 0,但很多= 1) 。
因为看起来logit在大文件上呕吐(我在这台机器上只有8GB的RAM),我创建了一个没有替换的随机样本(“sampleset”包含4125条记录,R应该能够处理,对吧?)。该文件的前30行如下所示:
Index Sympathy Trust Fear Greed sharer_prob 817394 2 2 1 2 0.369541 167050 1 1 3 2 0.715611 822867 2 3 2 0 0.818810 323684 2 1 0 0 0.636559 515278 2 2 2 0 0.947242 133239 3 3 0 0 0.938594 459271 3 2 0 0 0.647838 29310 3 2 1 1 0.749249 534875 2 2 2 3 0.608888 656900 3 2 0 0 0.653784 418271 3 2 1 0 0.539343 616221 2 1 0 0 0.600135 592467 3 3 0 0 0.798354 905925 3 2 0 0 0.797031 612514 1 1 3 2 0.554193 8564 1 1 3 2 0.498373 319957 3 3 0 0 1.000000 867410 3 2 0 0 0.581564 551327 3 2 0 0 0.671110 864973 3 3 0 0 1.000000 450469 3 1 2 0 0.578244 877834 2 1 0 0 0.291015 410507 3 3 0 0 0.705201 198044 3 3 0 0 0.772060 548567 3 2 0 0 0.799164 435068 3 2 0 0 0.805771 518144 3 2 1 1 0.396816 609747 3 3 0 0 0.814917 398375 2 1 0 0 0.428143 854396 1 1 3 2 0.511154
因为我试图识别输入变量对之间的重要交互效果,所以我使用以下代码创建交互术语:
IX_greed <- sampleset$greed * sampleset$sharer_prob
IX_sympathy <- sampleset$sympathy * sampleset$sharer_prob
IX_fear <- sampleset$fear * sampleset$sharer_prob
IX_trust <- sampleset$trust * sampleset$sharer_prob
我使用这行代码尝试回归响应变量logit中的一对(sharer_prob):
lm.FG=lm( logit( sharer_prob, adjust=TRUE ) ~ IX_fear * IX_greed, na.action=NULL, data=sampleset )
但是R给出了以下错误,表示无法将值调整为1到0.975:
**Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
NA/NaN/Inf in 'y'**
谁能告诉我我做错了什么以及如何解决?
非常感谢您提供的任何帮助。
拉里·约翰