确定多项式回归的顺序

时间:2018-10-07 22:16:58

标签: r algorithm regression polynomials

假设您有 enter image description here

我试图编写一种算法来选择一个大的M,以使m

set.seed(1234)
x <- rnorm(100,0,1)
y <- x + rnorm(100,x+0.5,0.5)
dat <- data.frame(cbind(x,y))

func <- function(dat,M) {
  dat <- as.matrix(dat)
  p_value <- list()
  if(length(dat[,1])>M){
    M=M-1
   break
  }
  for (i in 1:M) {
    model <- lm(dat[,1] ~ poly(dat[,-1],i,raw=TRUE))
    p_value[[i]] <- summary(model)$coefficients[i+1, 4]
    if (p_value[[i]]>0.05) {
      break
    } else {
      i=i+1
    }
    p_value1 = do.call(rbind, p_value)
  }
  return(c(p_value1,i-1))
}

func(dat,200)
# Error in func(dat, 200) : object 'p_value1' not found 

但是,使用上面的代码,我没有得到我想要的错误。我想知道是否有人会帮助我。

更新:当我运行上面的代码时,我已经获得

> func(dat,200)
[1] 9.255452e-61 1.000000e+00

但是,如何真正考虑“选择一个大的M,使m

0 个答案:

没有答案