全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1624 1
2010-04-24
R编写的局部多项式回归程序,刚接触R,不知道如何修改。。
麻烦大家帮我修改一下。。谢谢!!!!!

LPR=function(n,c,p)
{
    e=rnorm(n,0,0.25)
    x<-seq(0,1,length=n)     
    y=sin(2*pi*x)+e
    z=sin(2*pi*x)
    plot(x,y)
    lines(x,z,lwd=2)
    h=c*n^(-1/5)
    mx=rep(0,n)
    for(i in 1:n)
     {
         mx[i]=sum(((y-qx(x[i],x,p)%*%(solve(t(X(x[i],x,n,p))%*%W(x[i],x,h,c)%*%X(x[i],x,n,p))%*%t(X(x[i],x,n,p))%*%W(x[i],x,h,c)%*%y))^2)*K(x[i],x,h))         
     }
    lines(x,mx)
}
##########################################################
qx=function(t.val,t,p)
{
    qx=rep(1,p+1)  
           for(i in 2:p+1)
             qx[i]=qx[i]*((t.val-t)^(i-1))
         
}
##########################################################
X=function(t.val,t,n,p)
{
   X=matrix(1,nrow=n,ncol=p+1)
            for(i in 1:n)
              for(j in 2:p+1)
                 X[i,j]=X[i,j]*((t.val-t)^(j-1))
         
}
##########################################################
W=function(t.val,t,h,c)
{
    h.d=c*n^(-1/5)
           h.s=1/h.d
           diag=matrix(0,n,n)
           for(i in 1:n)
              diag[i,i]=h.s*K(t.val,t,h)
           
           
}
############################################
K=function(t.val,t,h)
{
    return(kernel((t.val-t)/h))
}
############################################
kernel<-function(x)
{
    return ((15/16)*(1-x^2)*(abs(x)<=1))
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-2-3 17:08:53
R语言中进行局部多项式回归拟合,用loess函数不是就可以了么...比如:
plot(cars,pch=19)
model1=loess(dist~speed,data=cars,span=0.4)
lines(cars$speed,model1$fit,col='red',lty=2,lwd=2)
model2=loess(dist~speed,data=cars,span=0.8)
lines(cars$speed,model2$fit,col='blue',lty=2,lwd=2)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群