728x90
지금까지 공부를 하면서는 다음과 같이 모델을 생성하고 평가하는데 summary() 함수를 많이 사용했다. 회귀분석을 예시로 생각해보자. 회귀분석 후에 우리는 예측 값, 잔차, r.squared등 살펴봐야 할 값들이 많다.
m<- lm(dist~speed, data = cars)
summary(m)
Call:
lm(formula = dist ~ speed, data = cars)
Residuals:
Min 1Q Median 3Q Max
-29.069 -9.525 -2.272 9.215 43.201
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -17.5791 6.7584 -2.601 0.0123 *
speed 3.9324 0.4155 9.464 1.49e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438
F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12
그런데 여러 모델을 실험하게 될때는 조금 불편함이 있었다. 그러던 중 효자템을 발견했다. 그게 바로 broom이다!! broom은 summary()에서 출력된 값들을 데이터프레임 형태로 표현을 해준다.
#install.packages('broom')
library('broom')
설치는 다음과 같이 해준다. 참고로 broom은 tidymodels에도 들어있기 때문에 install.packages('tidymodels')를 해도 된다!
broom 에서는 크게 tidy, glance, augment 이 사용된다.
tidy()
tidy는 모형 작업의 결과를 데이터프레임 형태로 보여준다. 다음과 같이 estimate, p.value등이 있다. 군집분석의 경우 군집별 정보도 출력해준다고 한다. 굿!
m %>%
tidy()
# A tibble: 2 × 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) -17.6 6.76 -2.60 1.23e- 2
2 speed 3.93 0.416 9.46 1.49e-12
glance()
glance는 모형의 성능을 데이터프레임 형태로 보여준다. r.squared, adj.r.squared, AIC등이 있다.
m %>%
glance()
# A tibble: 1 × 12
r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0.651 0.644 15.4 89.6 1.49e-12 1 -207. 419. 425. 11354.
# … with 2 more variables: df.residual <int>, nobs <int>
augment()
augment는 예측값, 잔차, 등을 알려주는데 원래 데이터프레임에 추가해서 출력을 해준다
m %>%
augment()
# A tibble: 50 × 8
dist speed .fitted .resid .hat .sigma .cooksd .std.resid
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2 4 -1.85 3.85 0.115 15.5 0.00459 0.266
2 10 4 -1.85 11.8 0.115 15.4 0.0435 0.819
3 4 7 9.95 -5.95 0.0715 15.5 0.00620 -0.401
4 22 7 9.95 12.1 0.0715 15.4 0.0255 0.813
5 16 8 13.9 2.12 0.0600 15.5 0.000645 0.142
6 10 9 17.8 -7.81 0.0499 15.5 0.00713 -0.521
7 18 10 21.7 -3.74 0.0413 15.5 0.00133 -0.249
8 26 10 21.7 4.26 0.0413 15.5 0.00172 0.283
9 34 10 21.7 12.3 0.0413 15.4 0.0143 0.814
10 17 11 25.7 -8.68 0.0341 15.5 0.00582 -0.574
# … with 40 more rows
'R' 카테고리의 다른 글
[R] 산점도 그래프: geom_point() vs geom_jitter() (0) | 2021.09.30 |
---|---|
[R] ggplot2: facet_wrap(집단별로 분할하여 시각화 하기) (0) | 2021.09.01 |
[R] with 함수 (0) | 2021.04.19 |
[R] gregexpr, regmatches(패턴 추출) (0) | 2021.04.12 |
[R] assign(객체 생성), get(변수 불러오기) (0) | 2021.04.12 |