## 2 Collected Data and Research Method
### Modeling of Complex Systems Using Artificial Neural Networks
\begin{table}
\begin{tabular}{l l l l} \hline \hline
**Latent Variable** & **CA** & **CR** & **AVE** \\ \hline Product Design (\(P_{D}\)) & 0.79 & 0.88 & 0.71 \\ Production Processes (\(P_{P}\)) & 0.93 & 0.94 & 0.81 \\ Reuse (\(R\)) & 0.81 & 0.89 & 0.73 \\ Environmental Performance of Product (\(E_{PROD}\)) & 0.45 & 0.69 & 0.34 \\ Environmental Performance of Processes (\(E_{PROC}\)) & 0.90 & 0.92 & 0.63 \\ Economic Performance (\(E_{P}\)) & 0.75 & 0.85 & 0.66 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Reliability and validity of the latent variables. model each latent output variable, allowing for better control of the weights. In addition, this configuration is flexible enough to adapt to relatively low-complexity problems, and does not require a high number of training data. Another advantage of this approach is the low number of parameters to be tuned: the number of neurons in the intermediate hidden layer and the fraction of data dedicated to training. These two parameters must be carefully selected, since they severely impact the modeling and the subsequent sensitivity analysis. Each of the dedicated ANNs is composed of an input layer, with a number of neurons matching the number of input variables (in our case 3), a hidden layer, with a number of neurons \(N_{HL}\) that has to be tuned, and an output layer, with a single neuron. We used the widely adopted perceptron model [24], which is divided into two stages for artificial neurons. First, the inputs \(\mathbf{x}\) are linearly combined by multiplying each input \(x_{i}\) by the corresponding term \(w_{i}\) of the weight vector \(\mathbf{w}\), and a bias term \(x_{0}\) is added. In this way, for a neuron with \(N\) inputs, the variable resulting from the linear combination, \(z\), can be mathematically expressed as:  
\[z=\mathbf{w}\cdot\mathbf{x}+x_{0}=\sum_{i=1}^{N}w_{i}\cdot x_{i}+x_{0}. \tag{4}\]  
In the second stage, a nonlinear function \(h(\cdot)\), also called the activation function, is applied to the weighted combination of inputs, giving, as a result, \(y=h(z)\). Different activation functions can be found in the literature, such as the rectified linear unit (ReLU), the arc-tangent, or the sigmoid function [24]. We chose the sigmoid function, because  
Figure 1: Block diagram showing the relation between input and output latent and manifest variables. its gradient has a closed and simple analytical expression, leading to a simple, updating algorithm. The output of the neuron then acquires the form of:  
\[y = h(z) \tag{5}\] \[= \frac{1}{1-\exp(-z)}\] \[= \frac{1}{1-\exp(-\mathbf{w}\cdot\mathbf{x}-x_{0})}.\]  
Now, considering the whole network, if the input variables of the \(j\)-th data sample are given by the \(3\times 1\) row vector \(\mathbf{x}^{(j)}\), the output vector of the hidden layer \(\mathbf{z}_{1}^{(j)}\) can be expressed in matrix notation as:  
\[\mathbf{z}_{1}^{(j)}=h\Big{(}\mathbf{W}_{1}\cdot\mathbf{x}^{(j)}+\mathbf{x}_{ 01}\Big{)}\,, \tag{6}\]  
where \(\mathbf{W}_{1}\) is the weight matrix with size \(N_{hl}\times 3\), in which the element \((m,n)\) corresponds to the weight of the connection between the \(n\)-th input and the \(m\)-th neuron of the hidden layer. In addition, it is important to note that the bias term \(\mathbf{x}_{01}\) is now a column vector formed by the bias of the \(N_{hl}\) neurons. By simple inspection, it is clear that \(\mathbf{z}_{1}^{(j)}\) is a column vector with dimensions \(N_{hl}\times 1\).