Carbon Conversion - Take 2: Plot Measurements

Modeling forest carbon pools as a function of aboveground biomass and static climate and topographic predictors.

Lucas Johnson
2022-06-21

AGC Model

Random Forest Model - Test Set 1:1

Params

$formula
agc ~ .

$num.trees
[1] 500

$mtry
[1] 5

$min.node.size
[1] 1

$replace
[1] FALSE

$sample.fraction
[1] 1

Stepwise Linear Model - Test Set 1:1

Params


Call:
lm(formula = agc ~ live_agb + dem + slope + twi + tmin + tmax + 
    precip + chm, data = training_agc)

Residuals:
       Min         1Q     Median         3Q        Max 
-9.638e-04 -2.886e-04  4.513e-05  2.294e-04  1.975e-03 

Coefficients:
              Estimate Std. Error    t value Pr(>|t|)    
(Intercept)  5.615e-04  9.568e-05  5.868e+00 4.58e-09 ***
live_agb     5.000e-01  5.688e-08  8.790e+06  < 2e-16 ***
dem         -6.300e-08  3.197e-08 -1.971e+00  0.04881 *  
slope        7.138e-06  1.189e-06  6.004e+00 2.02e-09 ***
twi          3.616e-05  5.442e-06  6.645e+00 3.24e-11 ***
tmin        -1.226e-05  4.533e-06 -2.705e+00  0.00684 ** 
tmax        -3.820e-05  5.770e-06 -6.621e+00 3.81e-11 ***
precip      -6.994e-08  3.053e-08 -2.291e+00  0.02200 *  
chm          5.977e-06  7.895e-07  7.571e+00 4.15e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.0003334 on 7748 degrees of freedom
Multiple R-squared:      1, Adjusted R-squared:      1 
F-statistic: 1.124e+13 on 8 and 7748 DF,  p-value: < 2.2e-16

Test Set Accuracy

RF LM
RMSE 0.330 0
MAE 0.172 0
MBE 0.011 0
R2 1.000 1

BGC Model

Random Forest Model - Test Set 1:1

Params

$formula
bgc ~ .

$num.trees
[1] 450

$mtry
[1] 5

$min.node.size
[1] 1

$replace
[1] FALSE

$sample.fraction
[1] 0.75

Stepwise Linear Model - Test Set 1:1

Params


Call:
lm(formula = bgc ~ live_agb + dem + aspect + twi + tmin + precip + 
    chm, data = training_bgc)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.2472 -0.2897 -0.1161  0.1433  3.6464 

Coefficients:
              Estimate Std. Error  t value Pr(>|t|)    
(Intercept)  2.914e-01  6.876e-02    4.237 2.29e-05 ***
live_agb     9.904e-02  8.502e-05 1164.859  < 2e-16 ***
dem         -3.192e-04  4.551e-05   -7.014 2.51e-12 ***
aspect       4.392e-04  6.312e-05    6.957 3.76e-12 ***
twi          2.825e-02  5.352e-03    5.279 1.34e-07 ***
tmin        -8.773e-02  4.497e-03  -19.510  < 2e-16 ***
precip      -1.163e-04  4.574e-05   -2.542    0.011 *  
chm          5.678e-03  1.183e-03    4.798 1.63e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.5014 on 7749 degrees of freedom
Multiple R-squared:  0.9951,    Adjusted R-squared:  0.9951 
F-statistic: 2.234e+05 on 7 and 7749 DF,  p-value: < 2.2e-16

Test Set Accuracy

RF LM
RMSE 0.410 0.474
MAE 0.291 0.336
MBE 0.034 0.008
R2 0.996 0.995

Deadwood C Model

Random Forest Model - Test Set 1:1

Params

$formula
deadwood ~ .

$num.trees
[1] 80

$mtry
[1] 1

$min.node.size
[1] 4

$replace
[1] TRUE

$sample.fraction
[1] 0.5

Stepwise Linear Model - Test Set 1:1

Params


Call:
lm(formula = deadwood ~ live_agb + tmin + tmax, data = training_deadwood)

Residuals:
   Min     1Q Median     3Q    Max 
-8.659 -3.499 -1.246  2.482 16.310 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 10.514464   3.700497   2.841  0.00468 ** 
live_agb     0.020798   0.003539   5.877 7.82e-09 ***
tmin        -0.734992   0.259211  -2.835  0.00477 ** 
tmax        -0.448465   0.315681  -1.421  0.15607    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.839 on 480 degrees of freedom
Multiple R-squared:  0.1858,    Adjusted R-squared:  0.1807 
F-statistic: 36.52 on 3 and 480 DF,  p-value: < 2.2e-16

Test Set Accuracy

RF LM
RMSE 4.031 4.463
MAE 3.153 3.497
MBE -0.161 -0.300
R2 0.413 0.280

Litter C models

Random Forest Model - All Data (Train + Test) 1:1

Params

$formula
litter ~ .

$num.trees
[1] 500

$mtry
[1] 4

$min.node.size
[1] 1

$replace
[1] TRUE

$sample.fraction
[1] 0.95

Stepwise Linear Model - All Data (Train + Test) 1:1

Params


Call:
lm(formula = litter ~ live_agb + twi + tmax + precip, data = training_litter)

Residuals:
    Min      1Q  Median      3Q     Max 
-13.332  -5.178  -2.687   3.239  45.603 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept) -0.020337  12.654842  -0.002  0.99872   
live_agb     0.036272   0.012602   2.878  0.00472 **
twi          1.446577   0.685519   2.110  0.03688 * 
tmax        -1.858113   0.571105  -3.254  0.00147 **
precip       0.020024   0.006318   3.169  0.00193 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.43 on 122 degrees of freedom
Multiple R-squared:  0.2487,    Adjusted R-squared:  0.2241 
F-statistic:  10.1 on 4 and 122 DF,  p-value: 4.287e-07

All Data (Train + Test) Accuracy

RF LM
RMSE 5.605 8.812
MAE 3.067 6.076
MBE -0.488 -0.580
R2 0.703 0.266

Soil C model

Random Forest Model - All Data (Train + Test) 1:1

Params

$formula
soil ~ .

$num.trees
[1] 20

$mtry
[1] 2

$min.node.size
[1] 5

$replace
[1] TRUE

$sample.fraction
[1] 0.25

Stepwise Linear Model - All Data (Train + Test) 1:1

Params


Call:
lm(formula = soil ~ live_agb + slope + tmax, data = training_soil)

Residuals:
   Min     1Q Median     3Q    Max 
-71.29 -31.61 -15.87  12.38 404.58 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) 255.2768    82.0059   3.113  0.00274 **
live_agb      0.2868     0.1236   2.320  0.02345 * 
slope        -2.9930     1.6348  -1.831  0.07164 . 
tmax        -13.2780     5.8765  -2.260  0.02716 * 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 66.21 on 66 degrees of freedom
Multiple R-squared:  0.1546,    Adjusted R-squared:  0.1162 
F-statistic: 4.024 on 3 and 66 DF,  p-value: 0.01085

All Data (Train + Test) Accuracy

RF LM
RMSE 56.546 59.072
MAE 37.371 35.443
MBE 13.100 0.280
R2 0.218 0.146

Corrections

If you see mistakes or want to suggest changes, please create an issue on the source repository.

Citation

For attribution, please cite this work as

Johnson (2022, June 24). CAFRI Labs: Carbon Conversion - Take 2: Plot Measurements. Retrieved from https://cafri-labs.github.io/acceptable-growing-stock/posts/carbon-conversion-take-2-plot-measurements/

BibTeX citation

@misc{johnson2022carbon,
  author = {Johnson, Lucas},
  title = {CAFRI Labs: Carbon Conversion - Take 2: Plot Measurements},
  url = {https://cafri-labs.github.io/acceptable-growing-stock/posts/carbon-conversion-take-2-plot-measurements/},
  year = {2022}
}