R에서 자연 입방 스플라인에서 매듭 설정


23

상호 관련 기능이 많은 데이터가 있으며 LDA를 실행하기 전에 부드러운 기본 기능으로 기능을 줄이는 것으로 시작하고 싶습니다. 함수 splines와 함께 패키지 에 자연스러운 큐빅 스플라인을 사용하려고 ns합니다. 매듭을 지정하는 방법은 무엇입니까?

기본 R 코드는 다음과 같습니다.

library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))

그러나에서 매듭을 선택하는 방법에 대해서는 전혀 모른다 ns.


3
매듭을 지정하는 방법에 대해 (예, ns에 대한 인수를 통해 ) 질문하거나 매듭을 배치 할 위치를 결정하는 전략에 대해 질문하고 있습니까? R
추기경

1
매듭을 배치 할 위치에 대한 자세한 내용은 Harrell, Regression Strategies 2015를 참조하십시오. 매듭의 수 (N에 따라 3, 4 또는 5)
statsguy

답변:


40

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) 최선의 선택이라는 것을 의미하지는 않습니다.

다른 선택도 가능하며 도메인에 따라 다릅니다. 데이터에 대해 "정식"의 선택이 없다면, 예측 자의 히스토그램 및 밀도 추정값을 통해 매듭이 필요한 위치에 대한 힌트를 얻을 수 있습니다.

회귀 해석의 관점에서, 매듭 배치로 확실히 "연주"할 수는 있지만,이를 신중하게 평가하고 추론을 조정해야하는 모델 선택 페널티가 발생 함을 알아야합니다. 결과.


주어진 x <- 0:100브레이크 포인트를 정의하는 "적절한"방법은 그렇게 knots_x <- quantile(x, probs=c(.2, .35, .5))하는 것인데 ns(x, knots=knots_x), 각각 25, 50, 75 위치에서 3 개의 내부 매듭 점을 정의하는 데 사용 됩니다. 대답에서 혼란 스러웠던 점은 knots인수 에서 원하는 Quantile을 지정 해야하는 반면, x벡터 에서 실제 값을 입력해야한다는 것입니다 .
landroni

건강 조사 분석, Edward L. Korn, Barry I. Graubard p.98에 따르면 Durrleman과 Simon (1989)은 자연 스플라인에 대해 (0.05,0.50,0.95)을 권장한다고 밝혔습니다.
Chris
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.