2
Link to dataset`predict.nls`回報在指定`newdata`
定義的參數擬合值,而不是預測:
M <- maximum.oxygen.uptake
m <- mass
a <- age
s <- sex
v <- as.numeric(vigorous.exercise>0)
sv <- s*v
asv <- a*s*v
as <- a*s
av <- a*v
lnm=log(m)
lnms <- log(m)*s
lnmv <- log(m)*v
lnmsv <- log(m)*s*v
y <- M/m^(2/3)
我適合成功使用nls
型號:
nls.full <- nls(M ~ (m^(alpha0 + alpha1 * s + alpha2 * v + alpha3 * s * v)) *
(beta0 + beta1 * s + beta2 * v + beta3 * sv +
a * gamma0 + gamma1 * as + gamma2 * av + gamma3 * asv),
trace=TRUE,
start=list(alpha0=2/3, alpha1=0, alpha2=0, alpha3=0,
beta0=est[1], beta1=est[2], beta2=est[3],beta3=est[4],
gamma0=est[5],gamma1=est[6],gamma2=est[7],gamma3=est[8]))
問題:無法預測
xpredict <- seq(10,120,length.out=300)
data1 <- data.frame(a=35,s=0,v=1,m=seq(10,120,length.out=300))
ypredict <- predict(nls.full, newdata=data1, type="response")
plot(log(maximum.oxygen.uptake) ~ log(mass), subset = (s=='0' & v=='1'))
lines(xpredict,ypredict)
y和x的長度不同。
我不明白爲什麼它應該,我定義了一個新的數據框與300變量,我應該只有300個結果在y
預測。