2014-04-07 6 views
11

, 난 추가 최소 모델 변수들의 집합을 지정 (또는 추가 할 수 없다)순방향 단계적 회귀 R 단계적 순방향 회귀

min.model = lm(y ~ 1) 
fwd.model = step(min.model, direction='forward', scope=(~ x1 + x2 + x3 + ...)) 

매트릭스 내의 모든 변수를 사용하여 지정할 수있는 방법이 있는가 /data.frame, 그래서 그들을 열거하지 않아도됩니까?

예를 들면 내가하고 싶은 것을 설명하기 위해,하지만 그들은 작동하지 않습니다

# 1 
fwd.model = step(min.model, direction='forward', scope=(~ ., data=my.data.frame)) 

# 2 
min.model = lm(y ~ 1, data=my.data.frame) 
fwd.model = step(min.model, direction='forward', scope=(~ .)) 

답변

16

scope 예상하는이

중 하나의 식 (도움말 페이지 ?step를 인용), 또는 두 수식 모두 구성 요소 'upper'와 'lower'가 포함 된 목록입니다. 수식을 지정하는 방법과 그 수식이 어떻게 사용되는지는 세부 정보 ( )를 참조하십시오.

"~."에 해당하는 수식을 추출하여 사용할 수 있습니다. 같은 :

> my.data.frame=data.frame(y=rnorm(20),foo=rnorm(20),bar=rnorm(20),baz=rnorm(20)) 
> min.model = lm(y ~ 1, data=my.data.frame) 
> biggest <- formula(lm(y~.,my.data.frame)) 
> biggest 
y ~ foo + bar + baz 
> fwd.model = step(min.model, direction='forward', scope=biggest) 
Start: AIC=0.48 
y ~ 1 

     Df Sum of Sq RSS  AIC 
+ baz 1 2.5178 16.015 -0.44421 
<none>    18.533 0.47614 
+ foo 1 1.3187 17.214 0.99993 
+ bar 1 0.4573 18.075 1.97644 

Step: AIC=-0.44 
y ~ baz 

     Df Sum of Sq RSS  AIC 
<none>    16.015 -0.44421 
+ foo 1 0.41200 15.603 1.03454 
+ bar 1 0.20599 15.809 1.29688 
> 
+0

감사 등의 한 단계에서 그것을 할 수 있습니다. –

+9

가변 선택으로 추측과 추측의 심각한 문제를 일으키는 엄청난 양의 증거에 대해 읽었습니까? 최소한 단계별 접근법은 임의적임을 보여주기 위해 부트 스트랩되어야합니다. –

+0

@FrankHarrell - 단계별 회귀를 부트 스트랩하는 것에 대해 더 자세히 알 수 있습니까? – EngrStudent

0

당신은 완벽하다 해결이

fwd.model = step(lm(y ~ 1, data=my.data.frame), direction='forward', scope=~ x1 + x2 + x3 + ...)