请教各位老师,我现在用quantreg包里面的nlrq函数跑模型,发现设置不同的初始值,结果可能出现截然不同,这个要如何处理?比如下面的例子,
n <- 1000
df <- 8
delta <- 8
x <- sort(rt(n, df))
u <- runif(n)
v <- -log(1 - (1 - exp(-delta))/(1 + exp(-delta pt(x, df)) ((1/u) - 1)))/delta
y <- qt(v, df)
Dat <- NULL
Dat$x <- x
Dat$y <- y
deltas <- matrix(0, 3, length(us))
FrankModel <- function(x, delta, mu, sigma, df,tau) {
z <- qt(-log(1 - (1 - exp(-delta))/(1 + exp(-delta
pt(x, df)) ((1/tau) - 1)))/delta, df)
mu + sigma * z
}
us <- c(0.25, 0.5, 0.75)
for (i in 1:length(us)) {
tau = us
fit <- nlrq(y ~ FrankModel(x, delta, mu, sigma, df = 8, tau = tau), method = "SANN",data = Dat, tau = tau,start = list(delta = 5, mu = 0, sigma = 1),trace = TRUE)
deltas[i, ] <- coef(fit)
}
改变dalta,mu和sigma的初始值,结果会变很大,有些系数会从正变为负。