>source

nls() 를 사용하려고합니다 하지만 오류가 계속 발생합니다

Error in nlsModel(formula, mf, start, wts) : singular gradient matrix at initial parameter estimates

문제가 어디에 있는지 잘 모르겠습니다.

아래 코드 :

TI <- c(0.5, 2, 5, 10, 30)
prices <- cbind(zi, TI)
prices = as.data.frame(prices)
lnz_i <- function(TI, Alpha, Beta, Sigma) -TI*(Alpha*(1 - exp(-Beta*TI)) / (Beta) - (Sigma^2/2)*(1 - exp(-Beta*TI)) / (Beta)^2) - 0.02*(1 - exp(-Beta*TI)) / (Beta)
nls(zi ~ lnz_i(TI, Alpha, Beta, Sigma), start = c(Alpha = 0.02, Beta = 0.3, Sigma = 0.06), data = prices)

도움을 주시면 감사하겠습니다.

  • 답변 # 1

    계수알파시그마사이에 상호 상관이 있습니다. 간단한 해결책은 그중 하나를 일정하게 유지하는 것입니다. 아마도 방정식을 재구성하고 알파 나 시그마로 대체하는 것이 좋습니다.

    set.seed(1)
    lnz_i <- function(TI, Alpha, Beta, Sigma) -TI*(Alpha*(1 - exp(-Beta*TI)) / (Beta) - (Sigma^2/2)*(1 - exp(-Beta*TI)) / (Beta)^2) - 0.02*(1 - exp(-Beta*TI)) / (Beta)
    TI <- c(0.5, 2, 5, 10, 30)
    prices <- data.frame(TI, zi=lnz_i(TI, 0.02, 0.3, 0.06)*runif(length(TI), .9, 1.1))
    #Hold Alpha Fixed
    Alpha <- 0.02 
    nls(zi ~ lnz_i(TI, Alpha, Beta, Sigma), start = c(Beta=0.3, Sigma = 0.06), data = prices)
    Alpha <- 0.04
    nls(zi ~ lnz_i(TI, Alpha, Beta, Sigma), start = c(Beta=0.3, Sigma = 0.06), data = prices)
    Alpha <- 0.1
    nls(zi ~ lnz_i(TI, Alpha, Beta, Sigma), start = c(Beta=0.3, Sigma = 0.2), data = prices)
    #Estimate for Beta is all the time 0.401 and residuals are at 0.003768,
    #only Sigma is changing when Alpha is changed
    #Hold Sigma Fixed
    Sigma <- 0.06
    nls(zi ~ lnz_i(TI, Alpha, Beta, Sigma), start = c(Alpha = 0.02, Beta = 0.3), data = prices)
    Sigma <- 0.03
    nls(zi ~ lnz_i(TI, Alpha, Beta, Sigma), start = c(Alpha = 0.02, Beta = 0.3), data = prices)
    
    

  • 이전 Connecting to Wifi via python script - 파이썬 스크립트를 통해 wi-fi에 연결 - 라즈베리 파이 3
  • 다음 html - 처음에 빈 페이지로 라우팅 한 다음 각도 6에서 클릭하면 템플릿을로드하는 방법은 무엇입니까?