다중 선형 회귀 시뮬레이션


14

저는 R 언어를 처음 사용합니다. 회귀에 대한 네 가지 가정을 모두 충족시키는 다중 선형 회귀 모델에서 시뮬레이션하는 방법을 알고 싶습니다.


알았어. 고마워

이 데이터 세트를 기반으로 데이터를 시뮬레이션하고 싶다고합시다.

y<-c(18.73,14.52,17.43,14.54,13.44,24.39,13.34,22.71,12.68,19.32,30.16,27.09,25.40,26.05,33.49,35.62,26.07,36.78,34.95,43.67)
x1<-c(610,950,720,840,980,530,680,540,890,730,670,770,880,1000,760,590,910,650,810,500)
x2<-c(1,1,3,2,1,1,3,3,2,2,1,3,3,2,2,2,3,3,1,2)

fit<-lm(y~x1+x2)
summary(fit)

그런 다음 출력을 얻습니다.

Call:
lm(formula = y ~ x1 + x2)

Residuals:
     Min       1Q   Median       3Q      Max 
-13.2805  -7.5169  -0.9231   7.2556  12.8209 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) 42.85352   11.33229   3.782  0.00149 **
x1          -0.02534    0.01293  -1.960  0.06662 . 
x2           0.33188    2.41657   0.137  0.89238   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 8.679 on 17 degrees of freedom
Multiple R-squared:  0.1869,    Adjusted R-squared:  0.09127 
F-statistic: 1.954 on 2 and 17 DF,  p-value: 0.1722

내 질문은 위의 원래 데이터를 모방 한 새 데이터를 시뮬레이션하는 방법입니다.

답변:


29
  1. 아직없는 경우 일부 예측 변수 , 을 설정하여 시작하십시오 .x 2x1x2

  2. 인터셉터의 포함 하여 's 예측 변수의 모집단 ('true ') 계수를 선택하십시오 .β 0βiβ0

  3. 오차 분산, 또는 동등한 제곱근 인 σσ2σ

  4. 평균이 0이고 분산이 인 오류 랜덤 항 독립적 인 랜덤 법선 벡터로 생성합니다.σ 2εσ2

  5. 하자y=β0+β1x1+β2x2+...+βkxk+ε

다음은 퇴보 할 수 온 '들xyx

예를 들어 R에서는 다음과 같이 할 수 있습니다.

x1 <- 11:30
x2 <- runif(20,5,95)
x3 <- rbinom(20,1,.5)

b0 <- 17
b1 <- 0.5
b2 <- 0.037
b3 <- -5.2
sigma <- 1.4

eps <- rnorm(x1,0,sigma)
y <- b0 + b1*x1  + b2*x2  + b3*x3 + eps

모형에서 의 단일 시뮬레이션을 생성합니다 . 그런 다음 실행y

 summary(lm(y~x1+x2+x3))

준다

Call:
lm(formula = y ~ x1 + x2 + x3)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.6967 -0.4970  0.1152  0.7536  1.6511 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 16.28141    1.32102  12.325 1.40e-09 ***
x1           0.55939    0.04850  11.533 3.65e-09 ***
x2           0.01715    0.01578   1.087    0.293    
x3          -4.91783    0.66547  -7.390 1.53e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 1.241 on 16 degrees of freedom
Multiple R-squared:  0.9343,    Adjusted R-squared:  0.9219 
F-statistic: 75.79 on 3 and 16 DF,  p-value: 1.131e-09

이 절차를 여러 가지 방법으로 단순화 할 수는 있지만 철자를 먼저 작성하면 도움이 될 것이라고 생각했습니다.

모집단 계수가 동일한 새로운 랜덤 를 시뮬레이션 하려면 알고리즘의 3 단계와 4 단계에 해당하는 위의 프로 시저의 마지막 두 줄을 다시 실행하십시오 (새 랜덤 및 ).yepsy


추정치의 표준 오차를 변경할 수 있습니까? () rnorm()대신 약간 수정 된 스크립트를 사용 11:30했지만 오류 (시그마)를 아무리 많이 늘리더라도 추정의 표준 오류는 대략 비슷합니다.
Daniel

2

다음은 정규 분포를 따르는 오류로 여러 선형 회귀를 생성하는 또 다른 코드입니다.

sim.regression<-function(n.obs=10,coefficients=runif(10,-5,5),s.deviation=.1){

  n.var=length(coefficients)  
  M=matrix(0,ncol=n.var,nrow=n.obs)

  beta=as.matrix(coefficients)

  for (i in 1:n.var){
    M[,i]=rnorm(n.obs,0,1)
  }

  y=M %*% beta + rnorm(n.obs,0,s.deviation)

  return (list(x=M,y=y,coeff=coefficients))

}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.