2015-06-04 38 views
3

我使用dplyr和掃帚組合(每個以下)和以下Fitting several regression models with dplyr提取逐組迴歸的迴歸係數。然而 - 我也對每個迴歸的R2值(不僅是整個模型)感興趣。我試圖玩增強和一目瞭然的功能 - 但還沒有能夠提取R2值。是否有捷徑可尋?R2值 - dplyr和掃帚

非常感謝提前!

library(dplyr) 
library(broom) 

df.h = data.frame( 
    hour  = factor(rep(1:24, each = 21)), 
    price = runif(504, min = -10, max = 125), 
    wind  = runif(504, min = 0, max = 2500), 
    temp  = runif(504, min = - 10, max = 25) 
) 

dfHour = df.h %>% group_by(hour) %>% 
    do(fitHour = lm(price ~ wind + temp, data = .)) 

# get the coefficients by group in a tidy data_frame 
dfHourCoef = tidy(dfHour, fitHour) 
dfHourCoef 

    hour  term  estimate std.error statistic  p.value 
1  1 (Intercept) 92.173945687 21.82132710 4.2240302 5.102470e-04 
2  1  wind -0.020840948 0.01335945 -1.5600151 1.361653e-01 
3  1  temp -0.162495052 0.90573269 -0.1794073 8.596220e-01 
4  2 (Intercept) 53.569821889 20.90439474 2.5626105 1.957638e-02 
5  2  wind 0.006492773 0.01273038 0.5100220 6.162329e-01 
6  2  temp -0.493028932 0.78353239 -0.6292387 5.370978e-01 
7  3 (Intercept) 93.949047453 14.55042590 6.4567902 4.483106e-06 
8  3  wind -0.010084298 0.01179878 -0.8546902 4.039553e-01 
9  3  temp -0.096177966 0.68416185 -0.1405778 8.897647e-01 
10 4 (Intercept) 68.429142611 20.37382251 3.3586796 3.497149e-03 

回答

3

Broom::glance工作對我來說:

dfHourCoef = glance(dfHour, fitHour) 
dfHourCoef 

Source: local data frame [24 x 12] 
Groups: hour 

    hour r.squared adj.r.squared sigma statistic p.value df logLik  AIC  BIC deviance df.residual 
1  1 0.08223448 -0.01973947 34.02159 0.80642638 0.4619401 3 -102.2460 212.4921 216.6701 20834.44   18 
2  2 0.07546305 -0.02726328 36.19379 0.73460277 0.4935356 3 -103.5458 215.0915 219.2696 23579.83   18 
3  3 0.02395679 -0.08449245 37.17711 0.22090326 0.8039358 3 -104.1087 216.2174 220.3955 24878.47   18 
4  4 0.04916169 -0.05648701 40.38246 0.46533173 0.6352725 3 -105.8454 219.6909 223.8690 29353.38   18 
5  5 0.16704225 0.07449138 34.47921 1.80486969 0.1930220 3 -102.5266 213.0532 217.2313 21398.69   18 
6  6 0.13615197 0.04016886 41.64294 1.41849921 0.2678774 3 -106.4909 220.9818 225.1599 31214.42   18 
7  7 0.01979010 -0.08912211 39.22426 0.18170693 0.8353563 3 -105.2343 218.4687 222.6467 27693.76   18 
8  8 0.00171480 -0.10920578 31.29634 0.01545971 0.9846722 3 -100.4927 208.9853 213.1634 17630.30   18 
9  9 0.19935534 0.11039483 36.02611 2.24094183 0.1351943 3 -103.4482 214.8965 219.0746 23361.85   18 
10 10 0.16950148 0.07722387 36.99197 1.83686463 0.1879532 3 -104.0038 216.0077 220.1858 24631.31   18 
.. ...  ...   ...  ...  ...  ... ..  ...  ...  ...  ...   ...