Определение порядка полиномиальной регрессии - PullRequest
0 голосов
/ 08 октября 2018

Давайте предположим, что у вас есть 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...