2013-07-01 4 views
5

회귀를 y~x (단지 1 개의 독립 변수와 1 개의 독립 변수)으로하고 싶습니다. 그러나 저는 이분 산성을가집니다. x의 증가에 따라 y의 변동성이 증가합니다. 이 문제를 해결하기 위해 R에서 "gls()" 함수를 통해 가중치가 적용된 최소 제곱을 사용하고 싶습니다. 하지만 사용 방법을 모르겠다는 것을 인정해야합니다. gls 함수의 "가중치"인수에 분산 함수를 적용해야합니다. 그러나 나는 그것을 선택할 방법과 사용 방법이 하나도 없습니다. 제발 좀 도와 줄래?가중치 최소 제곱 - R

감사합니다.

답변

5

다음은 데이터와 같은 포아송 개수를 처리하는 예입니다. 변형은 평균과 비례합니다 (사용자가 가지고있는 것처럼 보임).

fit = lm (y ~ x, data=dat,weights=(1/dat$x^2)) 

값을 곱하기 때문에 recipricol을 가중치로 사용합니다. 분산에 단위 제곱이 있으므로 Poisson 계수 데이터를 처리하기 위해 사각형을 정합니다. 다음과 같이 할 수 있습니다 :

fit = lm (y ~ x, data=dat,weights=(1/dat$x)) 

단순히 x 값으로 크기를 조정하고 더 잘 작동하는지 확인합니다.

+0

더 잘 작동하는지 어떻게 평가할 수 있습니까? Bartlett 테스트에서 반환 된 값은 "weights"인수가 있든 없든 같습니다. 내 코드는 다음과 같습니다 a2 = read.table ("total37.txt", header = TRUE) m1 = lm (Res ~ ModeF, a2, weights = 1/a2 $ ModeF^2) m2 = lm (입술 ~ ModeF, A2) bartlett.test (잔차 (M1) ~ $ ModeF A2)) 바틀 테스트 데이터 : $ ModeF 바틀의 K 제곱 잔차 (M1) 및 (A2) = 35.2706, DF = 11, P- 값 = 0.0002236 bartlett.test (잔차 (m2) ~ A2 $ ModeF)) 바틀 시험 데이터 : 잔차 (m2)와 (A2) $ ModeF 바틀의 K 제곱 = 35.2706, DF = 11, P 값 = 0.0002236 – user1671537