2016-12-21 13 views
3

제한된 3 차 스플라인을 사용하여 모델링 한 일부 데이터가 있습니다. rms 패키지에서 rcs 변환 함수를 사용하여 선형 모델의 변형 된 변수를 생성합니다. 다음은 5 노트를 사용하는 예제입니다. 나는 데이터에 맞게 후제한된 3 차 스플라인을 사용하는 새로운 데이터의 예상 값

library('rms') 

my_df <- data.frame(
    y = -4 * -100:100 + -1.5 * (-100:100)**2 + 3 * (-100:100)**3 + rnorm(201, 0, 1e5), 
    x = -100:100 
) 

mod <- lm(y ~ rcs(x, 5), data = my_df) 

, 나는 x 값의 특정 도메인에 대한 예측 y 값을 찾을 싶습니다. 여기에 내가 지금 무엇을하고 있어요된다

new_data <- data.frame(x = -3:3) 

predict(mod, newdata = new_data) 

을하지만,이 경고 메시지가 생성

Warning message: 
In rcspline.eval(x, nk = nknots, inclx = TRUE, pc = pc, fractied = fractied) : 
    5 knots requested with 7 unique values of x. knots set to 5 interior values. 
이 무슨 뜻 무엇

, 그리고 무슨 일이 일어나고 있는지를? 나는 매듭 위치가 이미 mod에 정의되어 있어야한다고 생각했기 때문에 나는 그것을 줄 수있는 7 개의 x 값에 대한 새로운 매듭을 찾는 이유가 무엇인지 이해하지 못한다. 에 x 값을 더 제공하여 경고 메시지를 피할 수 있으며 필요하지 않은 메시지는 무시하지만 실제로는 predict에 대해 우려하고 있습니다.

답변

1

해들리의 언급에 따르면 questionlmrcs으로 작동하지 않아야합니다. 문제가 왜 빠른 데모 :

mod <- lm(y ~ rcs(x, 5), data = my_df) 

new_data <- data.frame(x = -3:3) 
new_data2 <- data.frame(x = -300:300/100) 

plot(new_data2$x, predict(mod, newdata = new_data2), type='l') 
lines(new_data$x,predict(mod, newdata = new_data), col='red') 

Graph produced as code output

예측도 동일한 범위에 대해, x 값의 수에 따라 달라질 수 있으므로 확실히 좋은 생각은 이러한 기능을 결합합니다.

+0

어디에서 문서화되어 있습니까? – user102162