R에서 lm() 함수를 사용하여 데이터 프레임의 하위 집합을 사용하는 방법
R에서 회귀 모델을 맞추기 위해 lm() 함수를 사용할 때 subset 인수를 사용하면 데이터 프레임의 하위 집합만 사용할 수 있습니다.
fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 ))
이 특별한 예는 점을 반응 변수로 사용하고 군중 과 시간을 예측 변수로 사용하는 회귀 모델에 해당합니다.
하위 집합 인수는 회귀 모델을 피팅할 때 분 변수가 10보다 큰 데이터 프레임의 행만 사용해야 함을 지정합니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: R에서 lm()을 사용하여 데이터 프레임 하위 집합을 사용하는 방법
10명의 농구 선수가 플레이한 시간, 총 파울, 총 득점에 대한 정보를 포함하는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.
#create data frame df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40), fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1), points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30)) #view data frame df minutes fouls points 1 5 5 6 2 10 5 8 3 13 3 8 4 14 4 7 5 20 2 14 6 22 1 10 7 26 3 22 8 34 2 24 9 38 1 28 10 40 1 30
다음과 같은 다중 선형 회귀 모델을 적합화한다고 가정합니다.
포인트 = β 0 + β 1 (분) + β 2 (파울)
그러나 분 변수가 10보다 큰 데이터 프레임의 행만 사용한다고 가정해 보겠습니다.
이 회귀 모델에 맞게 하위 집합 인수와 함께 lm() 함수를 사용할 수 있습니다.
#fit multiple linear regression model (only for rows where minutes>10) fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 )) #view model summary summary(fit) Call: lm(formula = points ~ fouls + minutes, data = df, subset = (minutes > 10)) Residuals: 3 4 5 6 7 8 9 10 1.2824 -2.5882 2.2000 -1.9118 2.3588 -1.7176 0.1824 0.1941 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -11.8353 4.9696 -2.382 0.063046 . fouls 1.8765 1.0791 1.739 0.142536 minutes 0.9941 0.1159 8.575 0.000356 *** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 2.255 on 5 degrees of freedom Multiple R-squared: 0.9574, Adjusted R-squared: 0.9404 F-statistic: 56.19 on 2 and 5 DF, p-value: 0.0003744
nobs() 함수를 사용하여 회귀 모델을 맞추기 위해 실제로 데이터 프레임의 관측값이 얼마나 많이 사용되었는지 확인할 수 있습니다.
#view number of observations used to fit model
nobs(fit)
[1] 8
모델을 적합시키기 위해 데이터 프레임의 8 개 행이 사용되었음을 알 수 있습니다.
원본 데이터 프레임을 보면 정확히 8개의 행이 분 변수에 대해 10보다 큰 값을 갖고 있음을 알 수 있습니다. 이는 회귀 모델을 피팅할 때 해당 행만 사용되었음을 의미합니다.
또한 하위 집합 인수에 & 연산자를 사용하여 여러 조건에 따라 데이터 프레임의 하위 집합을 지정할 수도 있습니다.
예를 들어 다음 구문을 사용하여 분이 10보다 크고 오류가 4보다 작은 데이터 프레임의 행만 사용하여 회귀 모델을 맞출 수 있습니다.
#fit multiple linear regression model (only where minutes>10 & fouls<4) fit <- lm(points ~ fouls + minutes, data=df, subset=(minutes> 10 & fouls< 4 )) #view number of observations used to fit model nobs(fit) [1] 7
결과에서 우리는 이 특정 모델을 맞추기 위해 데이터 프레임의 7 개 행이 사용되었음을 알 수 있습니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R에서 단순 선형 회귀를 수행하는 방법
R에서 다중 선형 회귀를 수행하는 방법
R에서 잔차 플롯을 만드는 방법