John Fox의 저서 응용 회귀 분석의 R 동반자 는 응용 회귀 모델링에 대한 훌륭한 자원입니다 R
. car
이 답변에서 전체적으로 사용 하는 패키지 는 함께 제공되는 패키지입니다. 이 책 에는 추가 장이있는 웹 사이트 도 있습니다 .
반응 변형 (일명 종속 변수, 결과)
Box-Cox 변환 은 응답 변환을 선택할 수있는 방법을 제공합니다. 으로 변형되지 않은 변수를 포함하여 회귀 모델 피팅 후 R
기능을 lm
, 당신은 기능을 사용할 수 있습니다 boxCox
으로부터 car
패키지 추정 최대 우도로 (즉, 전원 매개 변수). 종속 변수가 엄격하게 양수가 아니기 때문에 Box-Cox 변환이 작동하지 않으며 Yeo-Johnson 변환 을 사용하는 옵션 을 지정해야합니다 ( 여기 의 원본 및 관련 게시물 참조 ).λfamily="yjPower"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
다음과 같은 플롯이 생성됩니다.
의 가장 좋은 추정치는 이 예에서 약 0.2 인 프로파일을 최대화하는 값입니다. 일반적으로 의 추정치 는 여전히 -1, -1/2, 0, 1/3, 1/2, 1 또는 2와 같이 95 % 신뢰 구간 내에있는 익숙한 값으로 반올림됩니다.λλλ
종속 변수를 변환하려면 패키지 의 함수 yjPower
를 사용하십시오 car
.
depvar.transformed <- yjPower(my.dependent.variable, lambda)
함수 사용하기 전에 찾은 lambda
둥근 여야합니다 . 그런 다음 변환 된 종속 변수를 사용하여 회귀를 다시 맞 춥니 다.λboxCox
중요 사항 : 종속 변수를 로그 변환하는 대신 로그 링크가있는 GLM을 맞추는 것이 좋습니다. 다음은 추가 정보를 제공하는 일부 참조입니다. first , second , third . 에서이 작업을 수행하려면 다음을 R
사용하십시오 glm
.
glm.mod <- glm(y~x1+x2, family=gaussian(link="log"))
y
종속 변수는 어디에 x1
있고 x2
등은 독립 변수입니다.
예측 변수의 변환
변환의 엄격히 긍정적 예측기는 종속 변수의 변환 이후 최대 우도 추정 될 수있다. 이렇게하려면 패키지 의 기능 boxTidwell
을 사용하십시오 car
(원본 용지는 여기 참조 ). 다음과 같이 사용하십시오 boxTidwell(y~x1+x2, other.x=~x3+x4)
. 여기서 중요한 것은 옵션 other.x
은 변환 되지 않아야 하는 회귀 항을 나타냅니다 . 이것은 모든 범주 형 변수입니다. 이 함수는 다음 형식의 출력을 생성합니다.
boxTidwell(prestige ~ income + education, other.x=~ type + poly(women, 2), data=Prestige)
Score Statistic p-value MLE of lambda
income -4.482406 0.0000074 -0.3476283
education 0.216991 0.8282154 1.2538274
이 경우 점수 테스트에서 변수 income
를 변환해야한다고 제안합니다 . 최대 우도 추정 에 대한이 -0.348이다. 이는 변환과 유사한 -0.5로 반올림 될 수 있습니다 .소득 n e w = 1 / √λincome
incomenew=1/incomeold−−−−−−−−√
독립 변수의 변형에 관한 사이트에서 매우 흥미로운 또 다른 게시물은 이것 입니다.
변형의 단점
로그 변환 된 종속 및 / 또는 독립 변수는 비교적 쉽게 해석 할 수 있지만 다른 복잡한 변환에 대한 해석은 직관적이지 않습니다 (적어도 나에게는). 예를 들어, 종속 변수가 의해 변환 된 후 회귀 계수를 어떻게 해석 하시겠습니까? 이 사이트에는 그 질문을 정확히 다루는 게시물이 몇 개 있습니다 : first , second , third , four . Box-Cox에서 를 반올림없이 직접 사용하는 경우 (예 : = -0.382) 회귀 계수를 해석하기가 훨씬 더 어렵습니다. λλ1/y√λλ
비선형 관계 모델링
비선형 관계에 맞는 매우 유연한 두 가지 방법은 분수 다항식 과 스플라인 입니다. 이 세 가지 논문은 두 가지 방법 모두에 대한 아주 좋은 소개를 제공합니다 : First , second 및 third . 분수 다항식 및에 대한 전체 책 이 있습니다 R
. 이 R
패키지mfp
는 다 변수 분수 다항식을 구현합니다. 이 표현 은 분수 다항식에 관한 정보가 될 수 있습니다. 스플라인에 맞추기 위해 패키지 또는 함수에서 함수 gam
(일반화 된 추가 모델, 여기 에 대한 우수한 소개를 참조 하십시오R
)를 사용할 수 있습니다mgcv
ns
(천연 큐빅 스플라인) 및 bs
패키지의 (큐빅 B 스플라인) splines
( 이 기능의 사용 예는 여기 참조 ). 를 사용 gam
하면 s()
함수를 사용하여 스플라인을 사용하여 피팅 할 예측 변수를 지정할 수 있습니다 .
my.gam <- gam(y~s(x1) + x2, family=gaussian())
여기에서는 x1
스플라인을 사용하여 x2
일반 선형 회귀에서 와 같이 선형으로 적합 합니다. 내부에서 gam
와 같이 배포 제품군과 링크 기능을 지정할 수 있습니다 glm
. 로그 링크 기능을 가진 모델에 맞게 그래서, 당신은 옵션을 지정할 수 있습니다 family=gaussian(link="log")
에 gam
같이 glm
.
사이트 에서이 게시물 을 살펴보십시오 .