1 Introduction

In a recent article of this journal (Revesz 2023) two iteration solution algorithms of the so- called INSD (‘Improved Normalized Squared Differences’) two-directional matrix adjustment model are discussed and compared. The solution algorithm suggested by Huang et al. (2008) and clarified by Temurshoev et al. (2011) is designed for the sign-preserving case, i.e. when the sign of each element of the matrix is to be preserved. On the other hand, the mentioned recent article deals with the not sign-preserving case and proves that its solution can be achieved by a simpler iteration algorithm developed by the author and named (first by one of the reviewers of the paper) the additive correction algorithm. The revised manuscript of this article stated that in the not sign-preserving case the two algorithms are the same. However, when the reviewers accepted the revised version of the paper, the first reviewer made the following remark about a related sentence in the abstract of the paper:

‘In the sentence “It is also shown that if the sign-preservation requirement is dropped then the iteration procedure suggested by Huang et al. (2008) boils down to the same algorithm”, I think that “then” is a mistake’.

It is difficult to interpret the above remark. Obviously, the reviewer could not think that even in the sign preservation case the two algorithms are the same. Presumably the reviewer questioned the validity of the second part of the statement, i.e. did not see it proven that even in the not sign-preserving case the two algorithms are the same. In any case, since at that time a strict formal proof of the given statement was not available yet, in the final, published version of the paper the questioned sentence was modified as follows:

‘It is also argued that if the sign-preservation requirement is dropped then the iteration procedure suggested by Huang et al. (2008) boils down to the same algorithm’.

Later, however, the strict formal proof of the statement was finally elaborated, and now is duly published—also as a matter of honour—in this paper. To avoid redundancy and pure repetitions only the most important aspects of the problem are summarized in Sect. 2. Section 3 contains the full induction based formal proof. The concluding remarks of the final section highlight some important consequences of the proof and the possible directions of further research on the matter. It highlights that the merit of this proof is mainly providing a tool by which one can check literally ‘step-by-step’ how the solution is affected by the individual parameters of the problem and if no (at least realistic) solution exists which parameters are mainly responsible for this, or in other words, it reveals the inconsistencies of the data, particularly between the initial matrix and the prescribed margins. The conclusion also argues that the presented formal analysis of the INSD-model’s iteration algorithms may help clarify the properties of similar algorithms and of the recent three-dimensional extensions of the two-directional matrix adjustment models.

2 The origin and the formulation of the problem

The INSD model belongs to the matrix adjustment methods that use “restricted least-squares” objective functions. Lahr and de Mesnard (2004), briefly summarizing the history of the application of these methods and biproportional methods, note that Pearson’s χ2 index, or the normalized squared deviation (also known as the normalized least squares method), was first systematically discussed by Deming and Stephan (1940) and then by Friedlander (1961) and made widely known in the social sciences. However, the minimization of objective functions similar to squared deviations does not guarantee the identity of the signs of the elements of the same position (row and column index) of the starting (“reference”) matrix (hereafter denoted by matrix A with general element aij) and the estimated matrix (hereafter denoted by matrix X with general element xij), i.e. ‘sign preservation’.

Generalizing this model based on Lecomber’s (1971) suggestion, Henry (1973), (1974) made it usable (interpretable) also for negative matrix elements and derived its solution mathematically. Huang et al. (2008) supplemented the objective function of the model with a penalty function component and made it de facto sign-preserving, which was important to them lest the estimated values of the non-negative elements of the Input–Output Tables (IOTs) they estimated become negative numbers. They also proposed an iteration algorithm to solve the normal equations of the model.

2.1 Formal presentation of the INSD-model

The INSD model defined by Huang et al. (2008) is as follows:

$${\mathbf{X1}} = {\mathbf{u}},{\mathbf{1}}^{{\text{T}}} {\mathbf{X}} = {\mathbf{v}},\;\mathop \sum \limits_{i = 1}^{m} \mathop \sum \limits_{j = 1}^{n} (z_{i,j} {-}{1})^{{2}} \cdot |a_{i,j} |\, + \,M/{2} \cdot \mathop \sum \limits_{i = 1}^{m} \mathop \sum \limits_{j\, = 1}^{n} |a_{i,j} | \cdot [{\text{min}}(0,z_{i,j} )]^{{2}} {-} > {\text{min}}$$
(1)

where 1 is the summation (column) vector, the T superscript denotes transpose, ai,j is the general element of the A reference matrix (i.e. the matrix to be adjusted which has m rows and n columns), xi,j is the general element of the X estimated matrix (which has the same dimension as A), u and v are the vectors of the prescribed row- and column totals of X respectively, \(z_{i,j} : = x_{i,j} /a_{i,j} ({\text{if}}\;a_{i,j} \, \ne \,0)\), and M is an arbitrarily chosen sufficiently large positive number (to prevent sign-flips).

However, it is more appropriate to call this model “sign-preserving improved normalized squared differences” (SINSD) model, since “normalization” in the formula refers to division by ai,j and the “improved” word refers to the inclusion of the ai,j weights in absolute value.

Huang et al. (2008) derived the following optimality condition for the SINSD-model:

$$z_{i,j} = \left\{ {\begin{array}{*{20}l} 1 \hfill & {if\; a_{i,j} = 0} \hfill \\ {1 + sgn(a_{i,j} )(\lambda_{i} + \tau_{j} )} \hfill & {if\; this\; is \;nonnegative \;or \;M = 0} \hfill \\ {0 } \hfill & {if\; 1 + sgn(a_{i,j} )(\lambda_{i} + \tau_{j} ) < 0 \;and \;M \to \infty } \hfill \\ \end{array} } \right.,$$
(2)
$$\lambda_{{\text{i}}} \, = \,\{ ({\text{u}}_{{\text{i}}} \,{-}\,\Sigma_{{\text{j}}} a_{i,j} )\, + \,\Sigma_{{\text{j}}} (M \cdot a_{i,j} \cdot {\text{min}}(0,z_{i,j} )\,{-}\,\tau_{{\text{j}}} \cdot |a_{i,j} |)\} /\Sigma_{{\text{j}}} |a_{i,j} |, \;{\text{and}}$$
(3)
$$\tau_{{\text{j}}} \, = \,\{ ({\text{v}}_{{\text{j}}} \,{-}\,\Sigma_{{\text{i}}} a_{i,j} )\, + \,\Sigma_{{\text{i}}} (M \cdot a_{i,j} \cdot {\text{min}}(0,z_{i,j} )\,{-}\,\lambda_{{\text{i}}} \cdot |a_{i,j} |)\} /\Sigma_{{\text{i}}} |a_{i,j} |,$$
(4)

where λi and τj are the Lagrangian multipliers of the row- and column sum deviations.

Since the system of Eqs. (2), (3), (4) is simultaneous (λi and τj depend on zi,j and vice versa), an iterative algorithm is proposed (hereafter sometimes just referred to as the INSD-algorithm) for its solution’by iterative calculation of Eqs. (2), (3) and (4)’ with the \(z_{i,j}^{\left( 0 \right)} \, = \,{1},\;\lambda_{i}^{(0)} \, = \,0,\;\tau_{j}^{(0)} \, = \,0\) starting values. Temurshoev et al. (2011) clarified the sequence of steps of the iteration algorithm by stating that in each step (‘round’) first the λi-s have to be computed from (3), then these have to be substituted into (4) to compute the τj-s and only finally have to be computed the zi,j-s by (2).

Unfortunately, Huang et al. (2008) did not prove the convergence or their algorithm nor demonstrated its performance with a convincing numerical example. I reproduced the solution of the numerical example presented in their article (see Table 2 of their article) with a GAMS program created by myself, but it turned out that the sign-preservation requirement was not even necessary! (Its detailed demonstration is given in the Appendix of this paper).

Huang et al. (2008) derive the following alternative optimality condition (see their Eq. (25)) which—naturally together with the \({\mathbf{X1}}\, = \,{\mathbf{u}},\;{\mathbf{1}}^{{\text{T}}} {\mathbf{X}}\, = \,{\mathbf{v}}\) constraints—can be used instead of (2), (3) and (4):

$$x_{i,j} \,{-}\,a_{i,j} \, + \,M \cdot a_{i,j} \cdot {\text{min(}}0,z_{i,j} {)}\, = \,|a_{i,j} | \cdot (\lambda_{{\text{i}}} + \tau_{{\text{j}}} )$$
(5)

2.2 Formal presentation of the additive correction iteration algorithm

To write down the mathematical formulas of the ‘additive correction iteration algorithm’ (hereafter called the ACI algorithm), i.e., that distributes the discrepancies proportionately to the absolute values of the elements of the same row/column of the reference matrix, let’s introduce the following notations:

\({\mathbf{S}}\,: = \,\left| {\mathbf{A}} \right|\) is the matrix of the absolute values of the elements of \({\mathbf{A}},\;{\mathbf{w}}\,: = \,{\mathbf{1}}^{{\mathbf{T}}} {\mathbf{S}},\;{\mathbf{q}}\,: = \,{\mathbf{S1}},\;{\mathbf{R}}\,: = \,{\hat{\mathbf{q}}}^{{ - {1}}} {\mathbf{S}}\) and \({\mathbf{C}}: = {\mathbf{S\hat{w}}}^{{ - {1}}} ,\) where R and C are matrices containing the row- and column-wise shares (structure) of S (for the general elements of which \(r_{i,j} : = s_{i,j} /q_{i}\) and \(c_{i,j} : = s_{i,j} /w_{j}\)). In addition, denote \(g_{i} : = u_{i} \,{-}\,\Sigma_{{\text{j}}} a_{i,j}\) and \(h_{j} \,: = \,v_{j} \,{-}\,\Sigma_{{\text{i}}} a_{i,j}\) the differences of the prescribed row and column totals from those of the matrix A.

Hereafter, for any natural number n and variable k let denote k(n)(r) the current value of k computed in the row-wise adjustment of the n-th iteration, and k(n) its value computed in the subsequent (i.e. n-th) column-wise adjustment.

Therefore, the row-wise adjustment of the first iteration step of the ACI algorithm can be written as

$$x_{i,j}^{{\left( {1} \right)\left( {\text{r}} \right)}} \, = \,a_{i,j} \, + \, g_{i}^{{\left( {1} \right)}} \cdot r_{i,j}$$
(6)

(where gi(1) = gi), while the formula for the subsequent column-wise adjustment can be written as

$$x_{i,j}^{{\left( {1} \right)}} \, = \,x_{i,j}^{{\left( {1} \right)({\text{r}})}} \, + \,h_{j}^{{\left( {1} \right)}} \cdot c_{i,j}$$
(7)

where \(h_{j}^{{\left( {1} \right)}} \, = \,{\text{v}}_{j} \,{-}\,\Sigma_{i} x_{i,j}^{{\left( {1} \right)({\text{r}})}}\).

In general, the n-th iteration (i.e. which contains the n-th row-wise and n-th column-wise adjustments) is

$$x_{i,j}^{{\left( {\text{n}} \right)\left( {\text{r}} \right)}} = x_{i,j}^{{({\text{n}} - {1})}} + g_{i}^{{\left( {\text{n}} \right)}} \cdot r_{i,j}$$
(8)

(where \(g_{i}^{{\left( {\text{n}} \right)}} \, = \,{\text{u}}_{i} \,{-}\,\Sigma_{{\text{j}}} x_{i,j}^{{({\text{n}} - {1})}}\)) and

$$x_{i,j}^{{\left( {\text{n}} \right)}} \, = \,x_{i,j}^{{\left( {\text{n}} \right)({\text{r}})}} \, + \,h_{j}^{{\left( {\text{n}} \right)}} \cdot c_{i,j} \, = \,x_{i,j}^{{({\text{n}} - {1})}} \, + \,g_{i}^{{\left( {\text{n}} \right)}} \cdot r_{i,j} \, + \,h_{j}^{{\left( {\text{n}} \right)}} \cdot c_{i,j}$$
(9)

where \(h_{j}^{{\left( {\text{n}} \right)}} \, = \,v_{j} \,{-}\,\Sigma_{{\text{i}}} x_{i,j}^{{\left( {\text{n}} \right)({\text{r}})}}\).

Based on this the total change in the individual elements, caused by the first n iteration (\(d_{i,j}^{{\left( {\text{n}} \right)}} : = x_{i,j}^{{\left( {\text{n}} \right)}} {-}a_{i,j}\)) is

$$d_{i,j}^{{\left( {\text{n}} \right)}} = \mathop \sum \limits_{l = 1}^{n} (g_{i}^{\left( l \right)} \cdot r_{i,j} { } + h_{j}^{\left( l \right)} \cdot c_{i,j} ) = r_{i,j} \cdot \mathop \sum \limits_{l = 1}^{n} g_{i}^{\left( l \right)} + c_{i,j} \cdot \mathop \sum \limits_{l = 1}^{n} h_{j}^{\left( l \right)} .$$
(10)

If the process converges then obviously its \(\mathop {\lim }\nolimits_{n \to \infty } d_{i,j}^{\left( n \right)}\) series limit value can be computed as

$$d_{i,j}^{\left( \sum \right)} = r_{i,j} \cdot g_{i}^{\left( \sum \right)} + c_{i,j} \cdot h_{j}^{\left( \sum \right)}$$
(11)

where \(g_{i}^{\left( \sum \right)} = \mathop {\lim }\nolimits_{n \to \infty } \mathop \sum \nolimits_{l = 1}^{n} g_{i}^{\left( l \right)} = \mathop \sum \nolimits_{l = 1}^{\infty } g_{i}^{\left( l \right)}\) and \(h_{j}^{\left( \sum \right)} = \mathop {\lim }\nolimits_{n \to \infty } \mathop \sum \nolimits_{l = 1}^{n} h_{j}^{\left( l \right)} = \mathop \sum \nolimits_{l = 1}^{\infty } h_{j}^{\left( l \right)}\).

Revesz (2023) proves that the g(∑) és h(∑) column-vectors composed from the gi(∑) and hj(∑) elements respectively, are the solution of the

$$\left[ {\begin{array}{*{20}c} {{\hat{\mathbf{q}}}} & {\mathbf{S}} \\ {{\mathbf{S}}^{{\text{T}}} } & {{\hat{\mathbf{w}}}} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {{\hat{\mathbf{q}}}^{ - 1} {\mathbf{g}}^{\left( \sum \right)} } \\ {{\hat{\mathbf{w}}}^{ - 1} {\mathbf{h}}^{\left( \sum \right)} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\mathbf{g}} \\ {\mathbf{h}} \\ \end{array} } \right]$$
(12)

homogeneous linear system of equations, where the symbol ^ denotes the formation of the diagonal matrix from the underlying vector.

3 The relationship between the two iteration algorithms for solving the INSD-model

In this section the identity of the INSD and ACI iteration algorithms is proven in three main steps. Each of these steps is formulated as theorem and the three theorems are proven one by one. First, it is shown that the INSD algorithm without the sign preservation requirement can be solved as a set of linear equations. Second, it is shown that the first step of iteration of the INSD and ACI algorithms are the same. The third theorem states that if the n-th iterations of the two algorithms are the same then their n + 1-th iterations are also identical. By proving this theorem, the full induction based proof of the identity of the two iteration algorithms is complete.

Theorem 1

If the sign-preservation requirement is dropped the INSD-model can be solved as a system of linear equations.

Proof

Dropping the sign-preservation requirement means that M = 0 or the \(+ M \cdot a_{i,j} \cdot {\text{ min}}\left( {0,z_{i,j} } \right)\) ‘penalty’ term is dropped from the optimality conditions altogether. Then by multiplying Eqs. (2), (3) and (4) by ai,j and the above defined \(q_{i} \, = \,\Sigma_{{\text{j}}} |a_{i,j} |\) and \(w_{j} \, = \,\Sigma_{{\text{i}}} |a_{i,j} |\) parameters respectively, the optimality conditions boil down to the following set of linear equations:

$$x_{i,j} = a_{i,j} + |a_{i,j} | \cdot (\lambda_{i} + \tau_{j} )$$
(13)
$$\lambda_{i} \cdot q_{i} = g_{i} \,{-}\,\Sigma_{j} (\tau_{j} \cdot s_{i,j} )$$
(14)
$$\tau_{j} \cdot w_{j} = h_{j} \,{-}\,\Sigma_{i} (\lambda_{i} \cdot s_{i,j} )$$
(15)

Since in this set of linear equations λi and τj depend only on each other, first the block of Eqs. (14) and (15) can be solved and then the resulting λi and τj values may be substituted into (13) to compute the optimal (estimated) value of xi,j. Using matrix algebraic notation, Eqs. (14) and (15) can be expressed as

$$\left[ {\begin{array}{*{20}c} {{\hat{\mathbf{q}}}} & {\mathbf{S}} \\ {{\mathbf{S}}^{{\mathbf{T}}} } & {{\hat{\mathbf{w}}}} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {{\varvec{\uplambda}}} \\ {{\varvec{\uptau}}} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\mathbf{g}} \\ {\mathbf{h}} \\ \end{array} } \right]$$
(16)

where λ, τ, g and h are column vectors composed from the λi, τj, gi and hj elements respectively.

Since 1Tg = 1Th, and \({\hat{\mathbf{q}}} {\mathbf{1}} = {\mathbf{q}} = {\mathbf{S1}}\) and \({\hat{\mathbf{w}}\mathbf{1}}\, = \,{\mathbf{w}}\, = \,{\mathbf{S}}^{{\text{T}}} {\mathbf{1}}\), it also holds that

$$\left[ {\begin{array}{*{20}c} {{\hat{\mathbf{q}}}} & {\mathbf{S}} \\ {{\mathbf{S}}^{{\mathbf{T}}} } & {{\hat{\mathbf{w}}}} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} { 1} \\ { - 1} \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 0 \\ 0 \\ \end{array} } \right]$$
(17)

i.e. the \(\left[ {\begin{array}{*{20}c} {{\hat{\mathbf{q}}}} & {\mathbf{S}} \\ {{\mathbf{S}}^{{\mathbf{T}}} } & {{\hat{\mathbf{w}}}} \\ \end{array} } \right]\) (otherwise visibly symmetric) matrix—denoted by S* subsequently—is singular (its rows/columns are linearly interdependent). Therefore the (16) system of linear equations cannot be solved by multiplying it from the left by the (non-existent) inverse of the S* matrix. Instead, one must set (at least) one variable exogenously and the corresponding (same numbered) equation(s) must be dropped. Finally, the reduced set of linear equations (which contains at most (m + n‒1) equations and the same number of variables) can be solved by multiplying it from the left by the inverse of the reduced coefficient matrix.□

In this way, I proved that the INSD model, which does not require sign-preservation, can be solved without iteration—similarly to other models with a quadratic objective function—using the solution formula for systems of linear equations. True, this could have been shown since the publication of Lecomber’s (1975) book, which first proposed the inclusion of absolute values in the objective function (to make Henry’s (1973) model applicable to negative elements), but neither Henry nor, it seems, anyone else dealt with this either, presumably because the professional interest turned in another direction.

Comparing (16) with (12) we can see that both the coefficient matrices and the right-hand-side constant vectors are the same as their counterpart in (16) and (12). Therefore, the solutions of the (12) and (16) set of linear equations are the same too. This means that if λ, τ are the solution of (9), then those g(∑) and h(∑) vectors which satisfy the equations, i.e. which can be computed as

$${\mathbf{g}}^{\left( \sum \right)} = {\hat{\mathbf{q}}} {{\varvec{\uplambda}}}$$
(18)
$${\mathbf{h}}^{\left( \sum \right)} = {\mathbf{\hat{w}\tau }}$$
(19)

the solutions of (12).

By substituting the \(g_{i}^{\left( \sum \right)} \, = \,q_{i} \, \cdot \,\lambda_{{\text{i}}} ,\;h_{j}^{\left( \sum \right)} \, = \,w_{j} \, \cdot \,\tau_{{\text{j}}}\) scalar form expressions of Eqs. (18) and (19) into (11) we obtain the

$$d_{i,j}^{\left( \sum \right)} = r_{i,j} \cdot q_{i} \cdot \, \lambda_{{\text{i}}} + c_{i,j} \cdot w_{j} \cdot \, \tau_{{\text{j}}} = s_{i,j} \cdot \, \lambda_{{\text{i}}} + s_{i,j} \cdot \, \tau_{{\text{j}}} \, = \,|a_{i,j} | \cdot (\lambda_{{\text{i}}} + \, \tau_{{\text{j}}} )$$
(20)

formula for the resulting total changes (in the individual matrix elements) of the additive-correction algorithm. By defining di,j as \(d_{i,j} : = x_{i,j} {-}a_{i,j}\), the right hand-side expression in (20) is just the same as that of the \(d_{i,j} = |a_{i,j} | \cdot (\lambda_{i} + \tau_{j} )\) form of (13), i.e. the (optimal) solution of the INSD-model derived by Huang et al. (2008).

In this way, I proved that the solutions of the INSD model, which does not require sign- preservation, and the additive correction algorithm (more precisely the iterative algorithm that distributes discrepancies in proportion to the absolute value of the reference matrix) are the same (di,j = di,j(∑)).

Below, I prove by full induction that if no sign-preservation is required (i.e. when M = 0) the iteration algorithm suggested by Huang et al. (2008) (i.e. which consists of Eqs. (13), (14) and (15)) and our additive correction algorithm are identical for each iteration step.

To do this, I first prove the following theorem:

Theorem 2

If no sign-preservation is required (i.e. when M = 0) the first step of the iteration algorithm suggested by Huang et al. (2008) (i.e. which consists of Eqs. (13), (14) and (15)) and that of our additive correction algorithm are identical.

Proof

With the \(z_{i,j}^{\left( 0 \right)} \, = \,{1},\;\lambda_{i}^{(0)} \, = \,0,\;\tau_{j}^{(0)} \, = \,0\) initial values suggested by Huang et al. (2008) to solve the system of equations consisting of Eqs. (2), (3) and (4) the first iteration step yields the following values for the variables:

$$\lambda_{i}^{{\left( {1} \right)}} = g_{i} /q_{i}$$
(21)
$$\tau_{j}^{{\left( {1} \right)}} \, = \,[h_{j} \,{-}\,\Sigma_{{\text{i}}} (s_{i,j} \cdot \lambda_{i}^{{\left( {1} \right)}} )]/w_{j} = [h_{j} \,{-}\,\Sigma_{i} (s_{i,j} \cdot g_{i} /q_{i} )]/w_{j} \, = \,[h_{j} \,{-}\,\Sigma_{i} (g_{i} \cdot r_{i,j} )]/w_{j}$$
(22)
$$y_{i,j}^{{\left( {1} \right)}} = a_{i,j} + |a_{i,j} | \cdot (\lambda_{{\text{i}}}^{{\left( {1} \right)}} + \tau_{{\text{j}}}^{{\left( {1} \right)}} )$$
(23)

where to avoid confusion with the ACI algorithm’s first estimate for X (denoted by xi,j(1) below) we introduced the \(y_{i,j}^{{\left( {1} \right)}} : = z_{i,j}^{{\left( {1} \right)}} \cdot a_{i,j}\) notation. Similarly, for any k natural number the estimate of the Huang et al. suggested algorithm in the k-th iteration step is denoted subsequently by \(y_{i,j}^{{\left( {\text{k}} \right)}} : = z_{i,j}^{{\left( {\text{k}} \right)}} \cdot a_{i,j}\).

Since \(g_{i} \, = \,u_{i} \,{-}\,\Sigma_{j} a_{i,j}\) and \(h_{j} \, = \,v_{j} \,{-}\,\Sigma_{i} a_{i,j}\) are the deviations of the prescribed row and column sums from the corresponding row and column sums of matrix A, one can see that in the first iteration step λi(1) means exactly the proportionality factor which has to be used to distribute (pro rata to their |ai,j| values) the row-wise discrepancy of row i among the elements of the i-th row, while τj(1) means the proportionality factor which has to be used to distribute (proportionately to their |ai,j| values) the \(h_{j} \,{-}\,\Sigma_{i} (g_{i} \cdot r_{i,j} )\) column-wise residual (i.e. which remained after the row-wise adjustment) discrepancy among the elements of the j-th column. This is just what the additive correction algorithm always does. Concretely, based on Eqs. (6) and (7), the ACI algorithm in the first iteration step computes xi,j(1) as follows:

$$\begin{aligned} x_{i,j}^{{\left( {1} \right)}} & \, = \,x_{i,j}^{{\left( {1} \right)({\text{r}})}} \, + \,h_{j}^{{\left( {1} \right)}} \cdot c_{i,j} \, = \,a_{i,j} \, + \,g_{i}^{{\left( {1} \right)}} \cdot r_{i,j} \, + \,h_{j}^{{\left( {1} \right)}} \cdot c_{i,j} \, = \,a_{i,j} \, + \,g_{i} \cdot s_{i,j} /q_{i} \, + \,[h_{j} \,{-}\,\Sigma_{k} (g_{k} \cdot r_{k,j} )] \cdot s_{i,j} /w_{j} \\ & = a_{i,j} + |a_{i,j} | \cdot (\lambda_{{\text{i}}}^{{\left( {1} \right)}} + \tau_{{\text{j}}}^{{\left( {1} \right)}} )\, = \,y_{i,j}^{{\left( {1} \right)}} . \\ \end{aligned}$$

As a continuation of the full induction proof, I will prove below that if the steps of the two iteration algorithms are the same in the first n iterations (as we have seen, this holds for n = 1), then it holds also in the (n + 1)-th iteration.

Theorem 3

If the n-th iteration step of the Huang et al. (2008) proposed iteration algorithm without sign-preservation requirement is the same as that of the additive correction algorithm, then their (n + 1)-th iteration steps are the same too.

Proof

Let us consider the formulas of the n + 1. iteration step of the INSD algorithm (for solving the system of equations consisting of Eqs. (13), (14) and (15)), where \(y_{i,j}^{{\left( {{\text{n}} + {1}} \right)}}\) represents the estimate for xi,j obtained at the end of this step:

$$\lambda_{i}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,[g_{i} \,{-}\,\Sigma_{j} (s_{i,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} )]/q_{i}$$
(24)
$$\tau_{j}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,[h_{j} \,{-}\,\Sigma_{i} (s_{i,j} \cdot \lambda_{i}^{{\left( {{\text{n}} + {1}} \right)}} )]/w_{j}$$
(25)
$$y_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = a_{i,j} + |a_{i,j} | \cdot (\lambda_{i}^{{\left( {{\text{n}} + {1}} \right)}} + \tau_{j}^{{\left( {{\text{n}} + {1}} \right)}} )$$
(26)

Substituting the right-hand side of (24) for λi(n+1) and the right-hand side of (25) for τj(n+1) in Eq. (26), and taking into account that \(s_{i,j} \, = \,|a_{i,j} |,\;{\text{and}}\;r_{i,j} \, = \,s_{i,j} /q_{i} ,c_{i,j} \, = \,s_{i,j} /w_{j}\), we get the following relationship:

$$y_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = a_{i,j} + r_{i,j} \cdot (g_{i} {-} \, \Sigma_{m} (s_{i,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} )) \, + c_{i,j} \cdot (h_{j} {-} \, \Sigma_{k} (s_{k,j} \cdot \lambda_{k}^{{\left( {{\text{n}} + {1}} \right)}} ))$$
(27)

Substituting the formula for λi(n+1) on the right side of (24) into this again, we get the

$$y_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,a_{i,j} \, + r_{i,j} \cdot g_{i} {-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ) \, + c_{i,j} \cdot h_{j} {-}c_{i,j} \cdot \Sigma_{k} [s_{k,j} /q_{k} \cdot (g_{k} {-} \, \Sigma_{m} (s_{k,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ))]$$
(28)

relationship. By appropriately changing the order of the components, applying the substitution \(r_{k,j} = s_{k,j} /q_{k}\) repeatedly, and decomposing the last brackets ([] and outer ()), we get the

$$y_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = a_{i,j} + r_{i,j} \cdot g_{i} + c_{i,j} \cdot h_{j} {-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ){-}c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot g_{k} ) \, + c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot \Sigma_{m} (s_{k,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ))$$
(29)

expression on the right-hand side of (29) for the elements of the matrix.

To prove that the same expression can be derived for the results of the n + 1. iteration step of the ACI algorithm (i.e. for the xi,j(n+1) estimate of the matrix), let us rewrite Eqs. (8) and (9) of our ACI algorithm for the n + 1. iteration step:

$$x_{i,j}^{{\left( {{\text{n}} + {1}} \right)\left( {\text{r}} \right)}} = x_{i,j}^{{({\text{n}})}} + g_{i}^{{\left( {{\text{n}} + {1}} \right)}} \cdot r_{i,j}$$
(30)
$$x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = x_{i,j}^{{\left( {{\text{n}} + {1}} \right)({\text{r}})}} + h_{j}^{{\left( {{\text{n}} + {1}} \right)}} \cdot c_{i,j}$$
(31)

where \(g_{i}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,{\text{u}}_{i} \,{-}\,\Sigma_{j} x_{i,j}^{{({\text{n}})}}\) and \(h_{j}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,v_{j} \,{-}\,\Sigma_{i} x_{i,j}^{{\left( {{\text{n}} + {1}} \right)({\text{r}})}}\).

By substituting the expression obtained for xi,j(n+1)(r) on the right side of (30) for xi,j(n+1)(r) in (31), we get the following relation:

$$x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = x_{i,j}^{{({\text{n}})}} + g_{i}^{{\left( {{\text{n}} + {1}} \right)}} \cdot r_{i,j} + h_{j}^{{\left( {{\text{n}} + {1}} \right)}} \cdot c_{i,j}$$
(32)

Since the relation (26) holds for n, and the identity \(x_{i,j}^{{\left( {\text{n}} \right)}} = y_{i,j}^{{\left( {\text{n}} \right)}}\) also exists up to n, therefore the

$$x_{i,j}^{{\left( {\text{n}} \right)}} = a_{i,j} + |a_{i,j} | \cdot (\lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} + \tau_{{\text{j}}}^{{\left( {\text{n}} \right)}} ) \, = a_{i,j} + s_{i,j} \cdot \lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} + s_{i,j} \cdot \tau_{{\text{j}}}^{{\left( {\text{n}} \right)}}$$
(33)

relation is also fulfilled.

By substituting the right-hand side of this for xi,j(n) in relation (32), we get the

$$x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = a_{i,j} + s_{i,j} \cdot (\lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} + \tau_{{\text{j}}}^{{\left( {\text{n}} \right)}} ) + g_{i}^{{\left( {{\text{n}} + {1}} \right)}} \cdot r_{i,j} + h_{j}^{{\left( {{\text{n}} + {1}} \right)}} \cdot c_{i,j}$$
(34)

expression for xi,j(n+1).

By substituting the \(g_{i}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,u_{i} \,{-}\,\Sigma_{m} x_{i,m}^{{({\text{n}})}}\) and \(h_{j}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,v_{j} \,{-}\,\Sigma_{k} x_{k,j}^{{\left( {{\text{n}} + {1}} \right)({\text{r}})}}\) definitional formulas (introduced in Eqs. (8) and (9)) for gi(n+1) and hj(n+1) respectively in (34), the relationship changes shape to the following form:

$$x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} \, = \,a_{i,j} + s_{i,j} \cdot (\lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} + \tau_{{\text{j}}}^{{\left( {\text{n}} \right)}} ) + r_{i,j} \cdot [u_{i} \,{-}\,\Sigma_{m} x_{i,m}^{{({\text{n}})}} ] \, + c_{i,j} \cdot [v_{j} \,{-}\,\Sigma_{k} x_{k,j}^{{\left( {{\text{n}} + {1}} \right)({\text{r}})}} ]$$
(35)

By substituting the last formula in (33) for xi,j(n) and the expression on the right-hand side of (30) for xi,j(n+1)(r) in (35) the relationship takes the

$$\begin{aligned} x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} & \, = \,a_{i,j} \, + \,s_{i,j} \cdot (\lambda_{i}^{{\left( {\text{n}} \right)}} \, + \,\tau_{j}^{{\left( {\text{n}} \right)}} )\, + \,r_{i,j} \cdot [u_{i} \,{-}\,\Sigma_{{\text{m}}} (a_{i,m} + s_{i,m} \cdot \lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} + s_{i,m} \cdot \tau_{{\text{m}}}^{{\left( {\text{n}} \right)}} )] \\ & \quad + \,c_{i,j} \cdot [v_{j} \,{-}\,\Sigma_{k} (x_{k,j}^{{({\text{n}})}} \, + \,g_{k}^{{\left( {{\text{n}} + {1}} \right)}} \cdot r_{k,j} )] \\ \end{aligned}$$
(36)

further ‘complicated’ shape.

In this, by removing the parentheses and by substituting again the right hand side expression in (33) and the definition formula of \(u_{i} \,{-}\,\Sigma_{j} x_{i,j}^{{({\text{n}})}}\) for xi,j(n) and gi(n+1) respectively, and by taking into account that \(g_{i} \, = \,u_{i} \,{-}\,\Sigma_{j} a_{i,j}\), we get the

$$\begin{aligned} x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} \, & = \,a_{i,j} \, + \,s_{i,j} \cdot \lambda_{i}^{{\left( {\text{n}} \right)}} \, + \,s_{i,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} \, + \,r_{i,j} \cdot g_{i} {-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} ){-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \tau_{{\text{m}}}^{{\left( {\text{n}} \right)}} ) \\ & \quad + \,c_{i,j} \cdot [v_{j} \,{-}\,\Sigma_{k} (a_{k,j} + s_{k,j} \cdot \lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} + s_{k,j} \cdot \tau_{{\text{j}}}^{{\left( {\text{n}} \right)}} + r_{k,j} \cdot \{ u_{k} \,{-}\,\Sigma_{m} x_{k,m}^{{({\text{n}})}} \} )] \, , \\ \end{aligned}$$
(37)

seemingly even more hopeless expression for xi,j(n+1).

In this, by substituting the right hand side expression in (33) for xi,j(n), resoluting the brackets [], and substituting hj for \(v_{j} \,{-}\,\Sigma_{i} a_{i,j}\) based on its definition, we get the

$$\begin{aligned} x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} & = a_{i,j} + s_{i,j} \cdot \lambda_{i}^{{\left( {\text{n}} \right)}} + s_{i,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} + r_{i,j} \cdot g_{i} {-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \lambda_{i}^{{\left( {\text{n}} \right)}} ){-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ) \, + c_{i,j} \cdot h_{j} \\ & \quad {-}\,c_{i,j} \cdot \Sigma_{k} (s_{k,j} \cdot \lambda_{k}^{{\left( {\text{n}} \right)}} )\,{-}\,c_{i,j} \cdot \Sigma_{k} (s_{k,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} )\,{-}\,c_{i,j} \cdot \Sigma_{k} [r_{k,j} \cdot \{ u_{k} \,{-}\,\Sigma_{m} (a_{k,m} + s_{k,m} \cdot \lambda_{k}^{{\left( {\text{n}} \right)}} + s_{k,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} )\} ] \\ \end{aligned}$$
(38)

seemingly even more complicated expression for xi,j(n+1). However, in this equation the variable xi,j(n) that causes recursion is no longer included on the right-hand side, the resulting expression needs “only” to be further arranged and simplified. To do this, let us remove the {} parenthesis and substitute gk for \(u_{k} \,{-}\,\Sigma_{m} a_{k,m}\) again. Thus, we get the so far longest expression for xi,j(n+1):

$$\begin{aligned} x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} & = a_{i,j} + r_{i,j} \cdot {\text{g}}_{i} + c_{i,j} \cdot h_{j} + s_{i,j} \cdot \lambda_{{\text{i}}}^{{\left( {\text{n}} \right)}} + s_{i,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} {-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \lambda_{i}^{{\left( {\text{n}} \right)}} ){-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ) \\ & \quad {-}c_{i,j} \cdot \Sigma_{k} (s_{k,j} \cdot \lambda_{k}^{{\left( {\text{n}} \right)}} ){-}c_{i,j} \cdot \Sigma_{k} (s_{k,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} ){-}c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot {\text{g}}_{k} ) + c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot \Sigma_{m} (s_{k,m} \cdot \lambda_{k}^{{\left( {\text{n}} \right)}} )) \\ & \quad + c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot \Sigma_{m} (s_{k,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} )) \\ \end{aligned}$$
(39)

Note that since \(\Sigma_{k} (s_{k,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} ) = (\Sigma_{k} s_{k,j} ) \cdot \tau_{{\text{j}}}^{{\left( {\text{n}} \right)}}\) and \(c_{i,j} \cdot \Sigma_{k} s_{k,j} = s_{i,j}\), therefore \(c_{i,j} \cdot \Sigma_{k} (s_{k,j} \cdot \tau_{j}^{{\left( {\text{n}} \right)}} ) = s_{i,j} \cdot \tau_{{\text{j}}}^{{\left( {\text{n}} \right)}}\), so since the terms on the left and right sides of the latter equality are in Eq. (39) with opposite signs, they cancel each other out.

Similarly, since \(r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \lambda_{i}^{{\left( {\text{n}} \right)}} ) = r_{i,j} \cdot (\Sigma_{m} s_{i,m} ) \cdot \lambda_{i}^{{\left( {\text{n}} \right)}} = s_{i,j} \cdot \lambda_{i}^{{\left( {\text{n}} \right)}}\), and they are also of opposite sign in Eq. (39), so they also cancel each other out.

Finally, since \(c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot \Sigma_{m} (s_{k,m} \cdot \lambda_{k}^{{\left( {\text{n}} \right)}} )) = c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot (\Sigma_{m} s_{k,m} ) \cdot \lambda_{k}^{{\left( {\text{n}} \right)}} ) = c_{i,j} \cdot \Sigma_{k} (s_{k,j} \cdot \lambda_{k}^{{\left( {\text{n}} \right)}} )\), and the terms at the beginning and end of the equality series also appear with opposite signs in Eq. (39), so they also cancel each other out.

After all this, the following remains from Eq. (39):

$$x_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = a_{i,j} + r_{i,j} \cdot {\text{g}}_{i} + c_{i,j} \cdot h_{j} {-}r_{i,j} \cdot \Sigma_{m} (s_{i,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ){-}c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot {\text{g}}_{k} ) + c_{i,j} \cdot \Sigma_{k} (r_{k,j} \cdot \Sigma_{m} (s_{k,m} \cdot \tau_{m}^{{\left( {\text{n}} \right)}} ))$$
(40)

Comparing this with Eq. (29) obtained for yi,j(n+1), it can be seen that the right-hand side of both equations has the same expression. Therefore, the values of the variables on the left side are also equal, i.e.

$$y_{i,j}^{{\left( {{\text{n}} + {1}} \right)}} = x_{i,j}^{{({\text{n}} + {1})}}$$
(41)

Having proved both Theorems 2 and 3, I proved by full induction that all steps of the two iteration algorithms are identical.

One may wonder whether the fact that this was not realized by earlier authors is partly due to the somewhat misleading use of the ‘iteration step’ term. In our case, it would be more fortunate in the case of the ACI algorithm to consider the row- and column adjustments as separate steps,—just as in the case of real walking, we return to the same leg after two steps (where in the case of the ACI algorithm the prescribed row-totals represent one leg, and the prescribed column-totals represented the other one). With this definition, in the ACI algorithm one ‘round’ of iteration consists of two steps. On the other hand, one iteration ‘step’ of the INSD-algorithm does the job of two such steps of the ACI-algorithm. Therefore, it is understandable why no ‘steps’ of the INSD-algorithm could be identified with any steps of the ACI-algorithm.

4 Conclusion

By using the method of mathematical full induction, the paper proved that if we drop the sign-preservation requirement from the SINSD-model of Huang et al. (2008) then the iteration algorithm they suggest to solve the model’s normal equations boils down to the additive correction algorithm elaborated on the basis of ideas expressed by Lecomber (1971, 1975), Günlük-Senesen and Bates (1988) and discussed in Revesz (2023). The merit of this proof is not just finding a simpler algorithm for solving the INSD-model—which in the age of modern computers is less important—but rather providing a tool by which one can check literally ‘step-by-step’ how the solution is affected by the individual parameters of the problem. This refers not only to the cases when a solution can be found—in this case the Lagrange multipliers also represent the effects of the prescribed margins on the solution—but also to those cases when no solution, or at least no realistic (in terms of economic theory or more generally, the theory of the given field of the application) solutions could be found with the given parameters. The steps of the additive correction algorithm would highlight more clearly the possible inconsistencies between the data, particularly between the initial matrix and the prescribed margins.

It also has to be stressed, that since the INSD objective function is the first-order Taylor-series approximation of the sign-preserving IGRAS objective function (Temurshoev et al. (2011)), it also likely produces sign-preserving results (Not surprisingly, Tables 5 and 6 in Huang et al. (2008) show that the solution of the IGRAS and the INSD models are the ‘closest’ of the 4 models compared). Therefore, it is applicable even if one wishes to prevent sign-flips. Although Huang et al. (2008) and other input–output modellers are interested in models and solution algorithms which are sign-preserving, it turned out that even in the case of their numerical example (see Tables 1 and 2 of Huang et al. (2008)) the presented solution could be found with the additive correction algorithm and hence the sign-preservation requirement was irrelevant.

Also note, that recently even input–output modellers like Lenzen et al. (2014) have been reversing the(ir) general negative judgement of the sign-flips and in certain cases (e.g., in the case of the inventory variation component of the input–output table) regard it to be even desirable. This also increases the applicability of the additive error correction algorithm and similar algorithms.

Of the similar algorithms a modification of the additive correction algorithm is presented in Revesz (2023) which dissipates the row- and column-discrepancies not pro-rata of the absolute value of the given elements of the initial matrix, but pro-rata of the absolute value of the given elements of the k-th iteration of the estimated matrix. This is called by Friedlander (1961) ‘dissipating the nth difference pro rata to the nth approximation’ and he regards it to be ‘intractable’. However, even if modern mathematics could not derive nice formulas for the properties of this algorithm, computer simulations (Monte Carlo or other ‘brute force’ simulations) may reveal the nature of this algorithm, for example, whether it is more sign-preserving than the additive correction algorithm. This seems to be more likely since, in that case, the required changes are always proportional to the actual element value. Hence, the sign may change only if the required change is more than 100 percent.

Last but not least, the algorithm can be extended also to the estimate of 3 or more dimensional arrays in a similar way as it is done with the RAS and GRAS algorithm (Holý and Šafr 2020; Valderas-Jaramillo and Rueda-Cantuche 2021).