Overview
The RAS Method (or Technique/Procedure/Algorithm) is a widely used methodology to balance matrices. A matrix is balanced when the sum of the values in both rows and columns sum to the control total for each. RAS is utilized when some values in the matrix are missing and must be estimated or when new row or column values become available and you want to update the values inside the matrix to reflect the change.
RAS in IMPLAN
At IMPLAN, the RAS technique is used both in the production of the annual data sets and in the construction of IMPLAN models (i.e., the construction of balanced Social Accounting Matrices (SAMs)). The biggest undertaking using RAS that IMPLAN performs is adjusting all the annually-released data values to the BEA Benchmark Tables (Use and Byproducts matrices). Because the BEA only releases these tables every five years, and are always lagged relative to the annual IMPLAN data, a rebalancing of the matrix is required annually. Additionally, once the national model’s Social Accounting Matrix (SAM) has been balanced, a RAS is also used for filling in the missing values for subnational SAMs. When producing the annual IMPLAN data sets, the RAS technique is also used to ensure that the economic data estimates balance across geographical and industrial hierarchies simultaneously, and across geographical and other hierarchies, such as household income groups.
How RAS Works
RAS is known as biproportional balancing. It is an iterative process that adjusts rows and columns back and forth, over and over. Each time the changes that need to be made to values being adjusted get smaller and smaller until all the row and column values add up to their control values.
First, the rows are balanced by adjusting the values in the row so that they sum to the control value (row total). For example, if the sum of the values in a row is 160 and the control for that row is 100, then each value in that row is too big, so each value in the row will be multiplied by 100/160 (0.625) so that the row sums to 100.
Industry |
1 |
2 |
3 |
4 |
5 |
Row Sum |
Control Value |
Adjustment Factor |
Original Values |
15 |
50 |
35 |
40 |
20 |
160 |
100 |
0.625 |
Balanced Value |
9.38 |
31.25 |
21.88 |
25 |
12.5 |
100 |
Next, the columns must be balanced following the same method as outlined in the first step. But when we change some of the values in a column, that corresponding row will be unbalanced again! So the rows will be unbalanced, but this time around they will be less unbalanced than before, with a smaller difference between their sum and the row total.
So we rebalance the rows, and then once again have unbalanced columns (but less so than the last round), so we return to the columns and rebalance them. Then back to the rows. Then back to the columns. This is done until all the rows and columns add up to their respective control values.
Holding Known Values Constant
In some cases, we only want to adjust a subset of the values in a matrix, like those that are estimates versus those that are known raw values. If Industry 2 has a known value of 50, then we want to hold that value constant while adjusting all the other values in that row.
In this case, we subtract the sum of the values we want to hold constant (50 in this example) from the control total, leaving us with a control total that pertains only to the non-disclosed values (i.e., the numbers we’ll be adjusting): (100 - 50 = 100). This means that our non-disclosed values must sum to 50. That way, the sum of non-disclosed values plus the sum of the disclosed values will still sum to the overall row total (100) without having changed/adjusted any disclosed values!
In this example, our adjustment factor will be 0.4545 (50/110). Then we multiply the adjustment factor by only those values we want to estimate to get our balanced values.
Industry |
1 |
2 |
3 |
4 |
5 |
Sum of Non Disclosed Values |
Control less Known Values |
Adjustment Factor |
Original Values |
15 |
50 |
35 |
40 |
20 |
110 |
50 |
0.4545 |
Balanced Value |
6.82 |
50 |
15.91 |
18.18 |
6.82 |
100 |
Negative Values
If a row or a column contains a mix of positive and negative values, simple proportional multiplication won’t work the way we want. If the current sum of values is too small, all the values will be multiplied by a value greater than 1, which means that the negative values will become even more negative (larger). What we really want is for the positive values to get bigger and the negative values to get smaller (less negative). If the current sum of the values is too large, all values will be multiplied by a value less than 1, which means that the negative values will become less negative (smaller). The RAS will work in the sense that it will produce a balanced matrix, but it will result in extreme values. Good news for you: IMPLAN has a proprietary method for ensuring that these intense adjustments aren’t created within our datasets.
Zero Values
RAS never changes a zero value into a non-zero value or vice-versa. Only values that are not zero will be adjusted up or down.
Why is it Called RAS?
No one knows. Some think that it is named for a pioneer in this field, Richard Stone. However, his middle name was Nicholas, so that is an unlikely explanation(Trinh & Phong, 2013).
Other Resources
Video with Chief Economist Jenny Thorvaldson on RAS
References
Trinh, B. & Phong, N.V. (2013). A Short Note on RAS Method. Advances in Management & Applied Economics, 3 (4), 133-137. https://www.scienpress.com/Upload/AMAE/Vol%203_4_12.pdf
Written December 29, 2022