-1
我從事的是團聚效應,我想用包nls2運行非線性迴歸。使用nls2包的非線性迴歸
我試圖運行這個模型有R
dens=runif(100)
surf=rnorm(100, 10, 2)
zone=seq(1,100,1)
donnees<-data.frame(dens,surf,zone)
attach(donnees)
donnees$salaire<-rnorm(100, 1000,3)
mp<-rep(0,100)
MP<-rep(0,100)
MPfonc<-function(alpha){
for (i in 1:100){
for (j in 1:100){
if(j!=i){
mp[j]<- dens[j]/(surf[i]-surf[j])^alpha
}
}
MP[i]<-sum(mp)
}
return(MP)
}
fo <- salaire ~ const+ gamma1*dens+gamma2*surf+gamma3*MPfonc(alpha)
gstart <- data.frame(const = c(-100, 100), gamma1 = c(-10, 10),
gamma2 = c(-10, 10),gamma3 = c(-10, 10), alpha=c(-10, 10))
fm <- nls2(fo, start = gstart, alg = "plinear-random")
它不運行,我認爲這是阿爾法的問題。 可以nls2
函數接受函數(MP(alpha))
作爲輸入嗎?
這裏是我的模型的規格:
非常感謝。但爲什麼模型沒有收斂:實現了收斂容差:不適用。這是正常的? – THIOYE
這是我第一次在這個網站上提出問題,因爲我發現我搜索的每一件東西都沒有提出問題。通常,所有數學都應該存在。但是我只專注於MPfonc,因爲其他人都是線性形式。我還有另一個問題,女巫算法應該適合我的模型?阿爾法影響他的估計的初始值? – THIOYE
收斂在這裏沒有意義 - 這就是爲什麼它是NA。 'nls2'的目的是找到初始值。使用指定的'alg =',只需在50個隨機點評估模型,然後返回找到的最好模型。然後,您可以使用生成的coefs作爲'nls'中的起始值。 –