장착 된 선형 모델 개체에서 샘플링하여 얻을 것으로 예상되는 것은 무엇입니까?
sample(model[i], size=300)
데이터를 샘플링하고 모델을 다시 만들고 싶습니다. 즉, 2000 번 수행하여 2000 번 데이터를 샘플링하고 2000 회진 모델에 맞 춥니 다.
데이터에서 샘플링이 핵심입니다. 이것은 lm
에 subset
인수를 사용하여 유망한 방법이 될 것입니다. 프로세스를 여러 번 복제해야하는 모든 문제의 경우, 한 번 이러한 실험을 수행하는 함수를 작성하는 것이 편리합니다.
f <- function() {
fit <- lm(price ~ mileage, data = dat, subset = sample(nrow(dat), 300))
coef(fit)
}
지금, 우리는 매트릭스 얻을이 2000 번 반복 replicate
를 사용
z <- t(replicate(2000, f()))
replicate
는 항상 평평한 매트릭스로 끝날 수 cbind()
않습니다 sapply
에 기반을; 가독성을 높이기 위해 long matrix를 얻기 위해 을 사용하여 전치했습니다.
다음은 R의 기본 제공 데이터 세트 cars
을 예로 들어 설명합니다. 이 데이터 세트에는 50 개의 관측치가 있으므로 교체하지 않고 300 개의 샘플을 샘플링 할 수 없습니다. 대신 샘플 30을 사용하겠습니다.
f <- function() {
fit <- lm(dist ~ speed, data = cars, subset = sample(nrow(cars), 30))
coef(fit)
}
한 번 실행하면 계수 벡터가됩니다. set.seed
부분은 재현하기위한 것입니다.이 복제하여
set.seed(0); f()
#(Intercept) speed
# -22.69112 4.18617
50 회 말, 우리는 매트릭스 얻을 :
계수의 분포가 대략 히스토그램에 의해 평가 될 수
set.seed(0); z <- t(replicate(50, f()))
head(z) ## show first few rows
# (Intercept) speed
#[1,] -22.69112 4.186170
#[2,] -21.31613 4.317624
#[3,] -12.98734 3.454305
#[4,] -22.59920 4.274417
#[5,] -22.53475 4.584875
#[6,] -18.88185 4.104758
:
par(mfrow = c(1,2))
hist(z[,1], main = "intercept")
hist(z[,2], main = "slope")
많은 복제를하지 않았기 때문에 결과가 거칠어 보입니다.
감사합니다. 그게 내가 달성하려고 시도한 것입니다. 목표는 계수의 분포를 관찰하는 것입니다. 계수의 분포는 충분한 시간 복제하면 정규 분포와 같이 작동합니다. – Senun