非线性回归与广义可加模型详解
1. 非线性回归示例
在样本量 N = 100 的情况下,我们将 λ 值从 1 变化到 50,绘制有效自由度( H[λ] 的迹)和交叉验证预测误差( CV [λ] )的图形。以下是实现该操作的代码:
## Data Generation
n=100; x=runif(n,−5,5); y=x−0.02*sin(x)−0*1*rnorm(n)
index=order(x); x=x[index];y=y[index]
d=function(j,u)(max((u−x[j])^3,0)−max((u−x[n])^3,0))/(x[n]−x[j])
h=function(j,u)if(j==1)1 else if(j==2)u else d(j−2,u)−d(n−1,u)
X=matrix(nrow=n,ncol=n); X[,1]=1; for(j in 2:n)for(i in 1:n)X[i,j]=h(j,x[i], x)
GG=G(x)
## Plot of the effective degree of freedom and predictive square error for each lambda.
u=seq(1,50,1); v=NULL; w=NULL
for(lambda in u){
result=cv.ss.fast(X,y,lambda,GG,n); v=c(v,result$df); w=c(w,result$score)
}
plot(v,z,type="l",col
超级会员免费看
订阅专栏 解锁全文
3301

被折叠的 条评论
为什么被折叠?



