Haitao Sun Structural Dimension Awareness: A Mechanism for Spreadsheet Fault Detection

This page provides the supplementary material for our paper titled 'Structural Dimension Awareness: A Mechanism for Spreadsheet Fault Detection'.

Structural Dimension Awareness: A Mechanism for Spreadsheet Fault Detection

Haitao Sun1,*, Ying Wang1,2,3, Hai Yu1,2,3,*, Zhiling Zhu1,2,3, Kai Shi1, Donglei Yuan1,*

1Software College, Northeastern University
2National Frontiers Science Center for Industrial Intelligence and Systems Optimization, Shenyang 110819, China
3Key Laboratory of Data Analytics and Optimization for Smart Industry (Northeastern University), Ministry of Education, China

​


Abstract

Spreadsheets are prone to semantic logic faults that are syntactically valid but computationally wrong. Detecting such faults is hindered by extreme class imbalance and structural heterogeneity in the feature space. We propose the Structural Dimension Aware (SDA) mechanism, in which a single structural ontology governs both data augmentation and ensemble classification. The mechanism performs manifold-constrained signal amplification via discriminative grafting and orthogonal subspace decoding via power-set feature masking, ensuring that augmented samples remain physically valid within every classification subspace. To delineate its applicability, we introduce Cross-shaped Neighborhood Formula Sparsity (CNFS), an observable proxy computed without fault labels. On sparse-fault corpora (EUSES1), SDA achieves F1=0.911 with reacall 0.878, surpassing the strongest classical baseline (SMOTE+RF, F1=0.854, p<0.001). The mechanism is therefore effective specifically for sparse, isolated fault regimes characteristic of real-world enterprise spreadsheets.

Datasets

The experiments were conducted on three public datasets. You can download them from the following links.

Spreadsheet corpora as originally published.

Appendices

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
\section{Hyperparameter Sensitivity Tables}\label{app:tables}

Full numerical results for all 32 OFAT configurations ($k$: 9 values,
$\beta$: 12 values, $\gamma$: 10 combinations, $r$: 10 values).

\begin{table}[ht]
\centering
\caption{RQ3b: Sensitivity to ENM neighborhood size $k$ (50-fold CV).
Optimal at $k$=6.}
\label{tab:rq3b_new}
\footnotesize
\begin{tabular}{lcccc}
\toprule
\textbf{$k$} & \textbf{F1} & \textbf{Recall} & \textbf{Precision} & \textbf{MCC} \\
\midrule
1 & 0.848{\tiny$\pm$0.038} & 0.816{\tiny$\pm$0.047} & 0.886{\tiny$\pm$0.056} & 0.849{\tiny$\pm$0.038} \\
2 & 0.881{\tiny$\pm$0.033} & 0.847{\tiny$\pm$0.038} & 0.921{\tiny$\pm$0.058} & 0.882{\tiny$\pm$0.033} \\
3 & 0.894{\tiny$\pm$0.030} & 0.860{\tiny$\pm$0.033} & 0.933{\tiny$\pm$0.050} & 0.895{\tiny$\pm$0.030} \\
4 & 0.905{\tiny$\pm$0.035} & 0.874{\tiny$\pm$0.034} & 0.940{\tiny$\pm$0.059} & 0.906{\tiny$\pm$0.035} \\
5 & 0.908{\tiny$\pm$0.027} & 0.877{\tiny$\pm$0.036} & 0.943{\tiny$\pm$0.043} & 0.909{\tiny$\pm$0.027} \\
6 & \textbf{0.908}{\tiny$\pm$0.030} & \textbf{0.881}{\tiny$\pm$0.037} & 0.940{\tiny$\pm$0.051} & \textbf{0.909}{\tiny$\pm$0.030} \\
7 & 0.907{\tiny$\pm$0.035} & 0.879{\tiny$\pm$0.040} & 0.939{\tiny$\pm$0.055} & 0.908{\tiny$\pm$0.034} \\
8 & 0.906{\tiny$\pm$0.036} & 0.874{\tiny$\pm$0.042} & 0.944{\tiny$\pm$0.058} & 0.907{\tiny$\pm$0.036} \\
9 & 0.900{\tiny$\pm$0.036} & 0.874{\tiny$\pm$0.040} & 0.932{\tiny$\pm$0.058} & 0.901{\tiny$\pm$0.035} \\
\bottomrule
\end{tabular}
\end{table}

\begin{table}[ht]
\centering
\caption{Sensitivity to grafting temperature $\beta$ ($k$=7, 50-fold CV).}
\label{tab:rq3b_beta}
\footnotesize
\begin{tabular}{lcccc}
\toprule
\textbf{$\beta$} & \textbf{F1} & \textbf{Recall} & \textbf{Precision} & \textbf{MCC} \\
\midrule
0.5 & 0.895{\tiny$\pm$0.034} & 0.854{\tiny$\pm$0.049} & 0.942{\tiny$\pm$0.038} & 0.896{\tiny$\pm$0.034} \\
1.0 & 0.905{\tiny$\pm$0.035} & 0.871{\tiny$\pm$0.045} & 0.944{\tiny$\pm$0.043} & 0.906{\tiny$\pm$0.035} \\
1.5 & 0.908{\tiny$\pm$0.030} & 0.873{\tiny$\pm$0.042} & 0.948{\tiny$\pm$0.039} & 0.909{\tiny$\pm$0.030} \\
2.0 & 0.911{\tiny$\pm$0.030} & 0.878{\tiny$\pm$0.041} & 0.948{\tiny$\pm$0.042} & 0.912{\tiny$\pm$0.030} \\
\textbf{2.5} & \textbf{0.911}{\tiny$\pm$0.032} & \textbf{0.878}{\tiny$\pm$0.039} & 0.949{\tiny$\pm$0.044} & \textbf{0.912}{\tiny$\pm$0.032} \\
3.0 & 0.907{\tiny$\pm$0.035} & 0.879{\tiny$\pm$0.040} & 0.939{\tiny$\pm$0.055} & 0.908{\tiny$\pm$0.034} \\
3.5 & 0.906{\tiny$\pm$0.037} & 0.878{\tiny$\pm$0.039} & 0.938{\tiny$\pm$0.058} & 0.907{\tiny$\pm$0.036} \\
4.0 & 0.908{\tiny$\pm$0.034} & 0.879{\tiny$\pm$0.037} & 0.941{\tiny$\pm$0.056} & 0.908{\tiny$\pm$0.034} \\
4.5 & 0.906{\tiny$\pm$0.034} & 0.876{\tiny$\pm$0.039} & 0.940{\tiny$\pm$0.054} & 0.907{\tiny$\pm$0.034} \\
5.0 & 0.906{\tiny$\pm$0.033} & 0.878{\tiny$\pm$0.037} & 0.939{\tiny$\pm$0.056} & 0.907{\tiny$\pm$0.033} \\
5.5 & 0.905{\tiny$\pm$0.035} & 0.877{\tiny$\pm$0.041} & 0.938{\tiny$\pm$0.055} & 0.906{\tiny$\pm$0.035} \\
6.0 & 0.905{\tiny$\pm$0.036} & 0.876{\tiny$\pm$0.040} & 0.940{\tiny$\pm$0.060} & 0.906{\tiny$\pm$0.036} \\
\bottomrule
\end{tabular}
\end{table}

\begin{table}[ht]
\centering
\caption{Sensitivity to elastic range $\gamma$ ($k$=7, $\beta$=3.0, 50-fold CV).}
\label{tab:rq3b_gamma}
\footnotesize
\begin{tabular}{lcccc}
\toprule
\textbf{$\gamma$} & \textbf{F1} & \textbf{Recall} & \textbf{Precision} & \textbf{MCC} \\
\midrule
{[0.0, 0.5]} & 0.833{\tiny$\pm$0.057} & 0.769{\tiny$\pm$0.047} & 0.914{\tiny$\pm$0.094} & 0.837{\tiny$\pm$0.057} \\
{[0.0, 1.0]} & 0.865{\tiny$\pm$0.043} & 0.819{\tiny$\pm$0.049} & 0.920{\tiny$\pm$0.061} & 0.867{\tiny$\pm$0.043} \\
{[0.5, 1.0]} & 0.887{\tiny$\pm$0.032} & 0.837{\tiny$\pm$0.047} & 0.947{\tiny$\pm$0.038} & 0.889{\tiny$\pm$0.032} \\
{[0.5, 1.5]} & 0.897{\tiny$\pm$0.039} & 0.882{\tiny$\pm$0.040} & 0.915{\tiny$\pm$0.063} & 0.898{\tiny$\pm$0.039} \\
{[0.5, 2.0]} & 0.899{\tiny$\pm$0.045} & 0.888{\tiny$\pm$0.040} & 0.915{\tiny$\pm$0.076} & 0.900{\tiny$\pm$0.044} \\
{[0.8, 1.2]} & 0.906{\tiny$\pm$0.035} & 0.874{\tiny$\pm$0.044} & 0.942{\tiny$\pm$0.044} & 0.907{\tiny$\pm$0.035} \\
{[0.8, 1.5]} & 0.907{\tiny$\pm$0.035} & 0.879{\tiny$\pm$0.040} & 0.939{\tiny$\pm$0.055} & 0.908{\tiny$\pm$0.034} \\
{[0.8, 2.0]} & \textbf{0.909}{\tiny$\pm$0.035} & \textbf{0.880}{\tiny$\pm$0.042} & 0.943{\tiny$\pm$0.055} & \textbf{0.910}{\tiny$\pm$0.035} \\
{[1.0, 1.5]} & 0.906{\tiny$\pm$0.033} & 0.860{\tiny$\pm$0.044} & 0.960{\tiny$\pm$0.043} & 0.908{\tiny$\pm$0.032} \\
{[1.0, 2.0]} & 0.905{\tiny$\pm$0.037} & 0.862{\tiny$\pm$0.045} & 0.955{\tiny$\pm$0.057} & 0.906{\tiny$\pm$0.037} \\
\bottomrule
\end{tabular}
\end{table}

\begin{table}[ht]
\centering
\caption{Sensitivity to target ratio $r$ ($k$=7, $\beta$=3.0, 50-fold CV).}
\label{tab:rq3b_r}
\footnotesize
\begin{tabular}{lcccc}
\toprule
\textbf{$r$} & \textbf{F1} & \textbf{Recall} & \textbf{Precision} & \textbf{MCC} \\
\midrule
0.1 & 0.889{\tiny$\pm$0.031} & 0.826{\tiny$\pm$0.046} & 0.965{\tiny$\pm$0.044} & 0.892{\tiny$\pm$0.030} \\
0.2 & 0.900{\tiny$\pm$0.032} & 0.850{\tiny$\pm$0.044} & 0.958{\tiny$\pm$0.045} & 0.902{\tiny$\pm$0.031} \\
0.3 & 0.904{\tiny$\pm$0.029} & 0.861{\tiny$\pm$0.041} & 0.954{\tiny$\pm$0.043} & 0.905{\tiny$\pm$0.029} \\
0.4 & 0.907{\tiny$\pm$0.033} & 0.869{\tiny$\pm$0.043} & 0.951{\tiny$\pm$0.048} & 0.908{\tiny$\pm$0.032} \\
\textbf{0.5} & \textbf{0.909}{\tiny$\pm$0.031} & \textbf{0.874}{\tiny$\pm$0.039} & 0.950{\tiny$\pm$0.046} & \textbf{0.911}{\tiny$\pm$0.031} \\
0.6 & 0.907{\tiny$\pm$0.032} & 0.873{\tiny$\pm$0.041} & 0.946{\tiny$\pm$0.049} & 0.908{\tiny$\pm$0.032} \\
0.7 & 0.908{\tiny$\pm$0.031} & 0.877{\tiny$\pm$0.040} & 0.945{\tiny$\pm$0.048} & 0.909{\tiny$\pm$0.031} \\
0.8 & 0.907{\tiny$\pm$0.035} & 0.879{\tiny$\pm$0.040} & 0.939{\tiny$\pm$0.055} & 0.908{\tiny$\pm$0.034} \\
0.9 & 0.908{\tiny$\pm$0.035} & 0.877{\tiny$\pm$0.041} & 0.945{\tiny$\pm$0.052} & 0.909{\tiny$\pm$0.035} \\
1.0 & 0.909{\tiny$\pm$0.033} & 0.881{\tiny$\pm$0.040} & 0.942{\tiny$\pm$0.050} & 0.910{\tiny$\pm$0.032} \\
\bottomrule
\end{tabular}
\end{table}

\section{Factorial Interaction Results}\label{app:factorial}

Table~\ref{tab:factorial} reports the full $2^4$ factorial
experiment (16 configurations, 50-fold CV each). The maximum
two-way interaction magnitude is $0.57\%$ ($\beta\times\gamma$),
confirming the absence of significant parameter coupling.

\begin{table}[ht]
\centering
\caption{$2^4$ Factorial interaction verification (EUSES, 50-fold
CV, $n=50$ per config). Factor levels: $k\in\{5,8\}$,
$\beta\in\{2.0,4.0\}$, $\gamma\in\{(0.8,1.2),(0.8,2.0)\}$,
$r\in\{0.4,1.0\}$.}
\label{tab:factorial}
\footnotesize
\begin{tabular}{lcccc}
\toprule
\textbf{Config} & \textbf{F1} & \textbf{Recall} & \textbf{Precision} & \textbf{MCC} \\
\midrule
$k$=5 $\beta$=2.0 $\gamma$=(0.8,1.2) $r$=0.4 & 0.901$\pm$0.032 & 0.855$\pm$0.043 & 0.954$\pm$0.031 & 0.902$\pm$0.032 \\
$k$=5 $\beta$=2.0 $\gamma$=(0.8,1.2) $r$=1.0 & 0.906$\pm$0.032 & 0.864$\pm$0.044 & 0.953$\pm$0.031 & 0.907$\pm$0.031 \\
$k$=5 $\beta$=2.0 $\gamma$=(0.8,2.0) $r$=0.4 & 0.909$\pm$0.036 & 0.866$\pm$0.048 & 0.958$\pm$0.035 & 0.910$\pm$0.036 \\
$k$=5 $\beta$=2.0 $\gamma$=(0.8,2.0) $r$=1.0 & 0.908$\pm$0.036 & 0.874$\pm$0.046 & 0.946$\pm$0.041 & 0.909$\pm$0.036 \\
$k$=5 $\beta$=4.0 $\gamma$=(0.8,1.2) $r$=0.4 & 0.902$\pm$0.038 & 0.862$\pm$0.047 & 0.947$\pm$0.038 & 0.903$\pm$0.037 \\
$k$=5 $\beta$=4.0 $\gamma$=(0.8,1.2) $r$=1.0 & 0.905$\pm$0.037 & 0.871$\pm$0.046 & 0.943$\pm$0.039 & 0.906$\pm$0.037 \\
$k$=5 $\beta$=4.0 $\gamma$=(0.8,2.0) $r$=0.4 & 0.904$\pm$0.040 & 0.863$\pm$0.047 & 0.951$\pm$0.045 & 0.905$\pm$0.040 \\
$k$=5 $\beta$=4.0 $\gamma$=(0.8,2.0) $r$=1.0 & 0.903$\pm$0.042 & 0.869$\pm$0.047 & 0.941$\pm$0.052 & 0.904$\pm$0.042 \\
$k$=8 $\beta$=2.0 $\gamma$=(0.8,1.2) $r$=0.4 & 0.895$\pm$0.038 & 0.850$\pm$0.044 & 0.947$\pm$0.040 & 0.897$\pm$0.038 \\
$k$=8 $\beta$=2.0 $\gamma$=(0.8,1.2) $r$=1.0 & 0.896$\pm$0.032 & 0.856$\pm$0.039 & 0.940$\pm$0.040 & 0.897$\pm$0.032 \\
$k$=8 $\beta$=2.0 $\gamma$=(0.8,2.0) $r$=0.4 & 0.905$\pm$0.030 & 0.862$\pm$0.040 & 0.953$\pm$0.035 & 0.906$\pm$0.030 \\
$k$=8 $\beta$=2.0 $\gamma$=(0.8,2.0) $r$=1.0 & 0.906$\pm$0.031 & 0.869$\pm$0.038 & 0.948$\pm$0.042 & 0.907$\pm$0.030 \\
$k$=8 $\beta$=4.0 $\gamma$=(0.8,1.2) $r$=0.4 & 0.902$\pm$0.036 & 0.862$\pm$0.041 & 0.948$\pm$0.045 & 0.904$\pm$0.036 \\
$k$=8 $\beta$=4.0 $\gamma$=(0.8,1.2) $r$=1.0 & 0.899$\pm$0.030 & 0.867$\pm$0.039 & 0.934$\pm$0.042 & 0.899$\pm$0.030 \\
$k$=8 $\beta$=4.0 $\gamma$=(0.8,2.0) $r$=0.4 & 0.903$\pm$0.030 & 0.863$\pm$0.038 & 0.948$\pm$0.044 & 0.904$\pm$0.030 \\
$k$=8 $\beta$=4.0 $\gamma$=(0.8,2.0) $r$=1.0 & 0.905$\pm$0.032 & 0.874$\pm$0.038 & 0.941$\pm$0.045 & 0.906$\pm$0.032 \\
\bottomrule
\end{tabular}
\end{table}

\section{RQ2 Detailed Results}\label{app:rq2}

\begin{table}[ht]
\centering
\caption{RQ2 CNFS threshold sweep (EUSES fault cells, 50-fold CV).}
\label{tab:rq2_sweep}
\footnotesize
\begin{tabular}{lrrr}
\toprule
\textbf{Threshold $\tau$} & \textbf{Coverage (\%)} & \textbf{SDA F1} & \textbf{Best Baseline F1} \\
\midrule
0.0  & 100.0\% & 0.938 & 0.902 \\
0.1  & 99.6\%  & 0.939 & 0.902 \\
0.2  & 99.6\%  & 0.939 & 0.902 \\
0.3  & 96.4\%  & 0.940 & 0.903 \\
\textbf{0.4} & \textbf{86.8\%} & \textbf{0.941} & \textbf{0.903} \\
0.5  & 71.8\%  & 0.941 & 0.900 \\
0.6  & 49.0\%  & 0.944 & 0.899 \\
0.7  & 28.5\%  & 0.946 & 0.910 \\
0.8  & 7.0\%   & 0.957 & 0.921 \\
0.9  & 3.2\%   & 0.977 & 0.952 \\
\bottomrule
\end{tabular}
\end{table}

\begin{table}[ht]
\centering
\caption{Marginal contribution decomposition by CNFS bin
($n=688$ fault cells). F1 equals recall because the detection
matrix contains only fault cells. SDA-exclusive TP: cells detected
by SDA but missed by all three baselines.}
\label{tab:rq2_marginal}
\footnotesize
\begin{tabular}{lrrrrr}
\toprule
\textbf{CNFS bin} & \textbf{Cells} & \textbf{SDA F1} & \textbf{Best base F1} & \textbf{$\Delta$F1} & \textbf{SDA-excl TP} \\
\midrule
{[0.1,0.2)} &   3 & 1.000 & 1.000 &  0.000 & 0 \\
{[0.2,0.3)} &  22 & 0.955 & 0.864 & +0.091 & 0 \\
{[0.3,0.4)} &  66 & 0.894 & 0.833 & +0.061 & 4 \\
{[0.4,0.5)} & 103 & 0.816 & 0.757 & +0.058 & 5 \\
{[0.5,0.6)} & 157 & 0.898 & 0.822 & +0.076 & 7 \\
{[0.6,0.7)} & 141 & 0.894 & 0.830 & +0.064 & 9 \\
{[0.7,0.8)} & 148 & 0.892 & 0.824 & +0.068 & 4 \\
{[0.8,0.9)} &  26 & 0.885 & 0.923 & $-0.038$ & 0 \\
{[0.9,1.0]} &  22 & 0.864 & 0.818 & +0.045 & 2 \\
\midrule
All         & 688 & 0.884 & 0.821 & +0.062 & 31 \\
\bottomrule
\end{tabular}
\end{table}

Cite

*

You can access the repository here: https://github.com/dangerwolf/sda.