R.에서 가중치가 가장 적은 사각형
-
21-12-2019 - |
문제
내 데이터 세트가 매우 크므로 10 개의 데이터 라인을 예로 사용합니다 (Excel에서 응답을 해결했지만 코드에 도움이 필요할 때 R-replicate에서 복제 할 수 없습니다). < / P>
constant<-c(6.10,5.12,5.04,4.97,4.89,4.89,4.87,4.87,4.88,4.99)
years.star<-c(219.87,153.69,146.19,139.35,127.27,127.27,121.91,121.91,112.28,99.98)
years.sq.star<-c(7915.41,4610.71,4239.78,3901.93,3309.27,3309.27,3047.95,3047.95,2582.58,1999.62)
ln.salary<-c(28.43,23.12,21.59,21.44,22.71,23.33,20.29,21.76,21.48,22.92)
try<-data.frame(constant,years.star,years.sq.star,ln.salary)
.
ln.Salary는 종속 변수입니다. 당신이 받아야 할 대답은 다음과 같습니다 :
intercept- 6.474922
beta1- -0.15026
beta2- 0.002769
.
내 문제는 r에서 LM 함수를 사용하면 차단 값이 위의 값이 있음을 알지 못합니다. 그것은 단지 6.10,5.12 등 대신 1,1,1,1,1,1,1,1,1,12를 사용합니다
그래서 test<-lm(ln.salary~years.star+years.sq.star,data=try,weights=constant)
이 답변을 생성하기 때문에 작동하지 않습니다 :
intercept- 207.1706
beta1- -3.13214
beta2- 0.064416
.
본질적으로 데이터를 가져 와서 heteroscavediatistity를 조정하려고했습니다. 마지막 단계에서는 내 일정한 별과 내 변형 된 X 변수가 있습니다. 마지막 단계는 상수와 x 변수에 ln.Salary를 회귀시키는 것입니다.
나는 Excel에서 그것을 할 수 있지만 r에서는 그렇지 않아서 코드를 오른쪽으로 가져 오지 않는다는 것을 알고 있습니다. 인터셉트를 생성하는 LM 기능이 문제가 있습니다 (1,1,1 ...). 제발 도와 주시겠습니까?
종류의 D
해결책
각 행에 대해 "가로 챈"을 변경하려면 '무게'가 아닌 '오프셋'을 사용해야합니다.
test<-lm(ln.salary~years.star+years.sq.star+0,data=try,offset=constant)
Call:
lm(formula = ln.salary ~ years.star + years.sq.star + 0, data = try,
offset = constant)
Coefficients:
years.star years.sq.star
0.236355 -0.003881
.
나는 이것이 Excel에 동의하지 않는다는 사실에 너무 깊은 인상을받지 못했습니다.그 프로그램의 선형 회귀 프로그램은 다소 플레이크로 알려져 있습니다.다른 한편으로는 무게를 사용해야합니다. 그런 다음 용어의 3 가지 다른 해석 중 어느 것이 사용되고 있는지 명확히해야합니다.선택 (선택 사항 : 복제, 샘플링, 역 차이)."무게"의 lm
해석은 역 차단 버전입니다.(그 도움말 페이지는 "분산에 반비례 함)이므로"상수 "-Terms가 차이가 있으면 다음을 원할 것입니다.
> (test<-lm(ln.salary~years.star+years.sq.star+0, data=try, weights=1/constant) )
Call:
lm(formula = ln.salary ~ years.star + years.sq.star + 0, data = try,
weights = 1/constant)
Coefficients:
years.star years.sq.star
0.309391 -0.005189
. 다른 팁
특정 상수에서 가로 촬영을 "수정"하고 싶다면 응답에서 해당 상수의 값을 빼서 절편 모델을 끼 웁니다.예를 들어
test <- lm( ln.salary - 6.474922 ~ years.star + years.sq.star + 0,
data=try, weights=constant)
.
여기서는 차단 용어를 뺀 다음, 가로 촬영 용어에 맞지 않도록 수식에 +0
를 추가합니다.그 모델을 사용하면
Call:
lm(formula = ln.salary - 6.474922 ~ years.star + years.sq.star +
0, data = try, weights = constant)
Coefficients:
years.star years.sq.star
0.197384 -0.002842
.