我需要对响应数据进行多元回归分析,表示为一个区间(下限和上限),我假设它是对数正态分布的,在许多解释变量上。
我发现包intReg
可以执行此操作,但由于我不断收到消息,所以没有取得多大成功。
There were 50 or more warnings (use warnings() to see the first 50)
这些是我的回复数据的日志:
> head(y)
lb ub
[1,] 6.756932 6.852243
[2,] 6.246107 6.400257
[3,] 6.063785 6.246107
[4,] 7.019297 7.093405
[5,] 6.756932 6.852243
[6,] 6.400257 6.533789
以下是我认为最重要的两个变量作为示例:
> head(inc_lev)
[1] low high high low high middle
Levels: high low middle
> head(usage)
[1] 12.9 8.6 4.3 17.2 12.9 12.9
然后我尝试运行回归,但我得到的只是:
> intreg<-intReg(y~inc_lev+usage, data=data)
There were 50 or more warnings (use warnings() to see the first 50)
Warning messages:
1: In Sys.setlocale("LC_COLLATE", loc) :
OS reports request to set locale to "" cannot be honored
等...
所以我的问题是:1)这里有什么问题,2)我做错了什么,3)是否有另一种方法在R中执行区间回归?
感谢您的帮助!
答案 0 :(得分:0)
我在日期处理方面遇到了同样的问题,到目前为止已经忽略了它,但发现了这个(旧的)帖子,并决定确定它的修复。
您需要做的是在开始R(LC_COLLATE
)之前的环境中或从R中开始将export LC_COLLATE=C
设置为合理的值:
> as.gset(as.POSIXct(Sys.time()))
{<<POSIXct>>}
Warning message:
In Sys.setlocale("LC_COLLATE", loc) :
OS reports request to set locale to "" cannot be honored
> Sys.getenv("LC_COLLATE")
[1] ""
> Sys.setenv("LC_COLLATE"="C")
> as.gset(as.POSIXct(Sys.time()))
{<<POSIXct>>}
> Sys.unsetenv("LC_COLLATE")
> as.gset(as.POSIXct(Sys.time()))
{<<POSIXct>>}
Warning message:
In Sys.setlocale("LC_COLLATE", loc) :
OS reports request to set locale to "" cannot be honored
请注意,对于带日期的gset操作,Sys.setenv(LC_COLLATE="C")
后没有错误消息。我知道你没有使用套装或日期,但我认为两种情况下的警告可能都是由相同的根本原因(整理和区域设置)引起的。
如果有人发出了类似的警告并且可以测试Sys.setlocale
是否有帮助,请写一下它是如何工作的评论。