R에서 매듭을 지정하는 방법
이 ns함수 는 입력 벡터가 주어지면 자연스런 회귀 스플라인을 생성합니다 . 매듭은 df정수를 취하는 자유도 인수 또는 원하는 매듭 배치를 제공 knots하는 벡터 를 취하는 매듭 인수 를 통해 지정할 수 있습니다 . 작성한 코드에서
library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))
5 개의 매듭을 요청하지 않았지만 위치 5 에서 단일 (내부) 매듭을 요청했습니다 .
df인수 를 사용 하면 벡터의 Quantile을 기준으로 내부 매듭 점이 선택됩니다 x. 예를 들어 전화를 걸 경우
ns(x, df=5)
그런 다음 기준은 각각 20 번째, 40 번째, 60 번째 및 80 번째 Quantile에 배치 된 2 개의 경계 매듭 및 4 개의 내부 매듭을 포함합니다 x. 경계 매듭은 기본적으로 최소값과 최대 값에 배치됩니다 x.
다음은 매듭의 위치를 지정하는 예입니다
x <- 0:100
ns(x, knots=c(20,35,50))
대신을 호출 ns(x, df=4)하면 각각 25, 50 및 75 위치에 3 개의 내부 매듭이 생깁니다.
절편을 원하는지 여부를 지정할 수도 있습니다. 일반적으로은 ( 는 ) 강제로 포함하지 않는 인터셉트를 포함 ns하는와 함께 가장 자주 사용 되므로 지정 lm되지 않습니다. intercept=TRUE에 대한 호출에 사용하는 경우 왜 그렇게하고 ns있는지 알고 있는지 확인하십시오. 이렇게하면 순진하게 호출 하면 디자인 매트릭스에 순위가 부족하게됩니다.lm
매듭을 세우기위한 전략
노트는 기본 동작 인과 같이 Quantile에 가장 일반적으로 배치됩니다 ns. 직관은 많은 데이터가 서로 가깝게 클러스터되어 있으면 해당 지역의 잠재적 비선형 성을 모델링하기 위해 더 많은 노트를 원할 수 있다는 것입니다. 그러나 이것이 이것이 (a) 유일한 선택이거나 (b) 최선의 선택이라는 것을 의미하지는 않습니다.
다른 선택도 가능하며 도메인에 따라 다릅니다. 데이터에 대해 "정식"의 선택이 없다면, 예측 자의 히스토그램 및 밀도 추정값을 통해 매듭이 필요한 위치에 대한 힌트를 얻을 수 있습니다.
회귀 해석의 관점에서, 매듭 배치로 확실히 "연주"할 수는 있지만,이를 신중하게 평가하고 추론을 조정해야하는 모델 선택 페널티가 발생 함을 알아야합니다. 결과.