Terms
Plain definitions of the terms used in the project.
The four approaches
This site uses plain names for the four things you can do with a borrowed model. Each has a technical name too, given here so you can look it up elsewhere.
Borrow — apply a model built elsewhere without giving it any local examples. Known technically as zero-shot, meaning it has seen zero examples from the new population. The term comes from zero-shot learning, and is the same sense as “zero-shot prompting” for language models.
Adjust — start from the borrowed model and keep training it on whatever local records you have. Technically fine-tuning.
Combine — build a local model and hand it the borrowed model’s verdict as one extra piece of evidence, letting it decide how much to trust it. Technically stacking.
Build your own — ignore the borrowed model entirely and use only local records. Technically training from scratch.
Transfer learning, or domain adaptation, is the umbrella term for reusing a model built on one population for a different one.
Data and setup
Horizon — how far ahead the label looks. Poland’s “3year” file records whether a firm went bankrupt within three years of the accounts being reported.
Base rate — the share of the population with the outcome. Between 3.2% and 6.9% here, which is what makes this an imbalanced problem.
Class imbalance — when one outcome is far rarer than the other. A model that predicts “healthy” for every firm is 96% accurate and completely useless. Accuracy is not reported here for that reason.
Stratified — when splitting data, preserving the distressed/healthy proportion in every piece. This keeps a small sample from being accidentally all-healthy.
Feature mapping — mapping two differently-named datasets onto one shared set of variables. A model can then move between them.
Transformations
Rank / percentile transform — replacing a raw value with its position within its own population: “this firm’s debt ratio is at the 80th percentile of Polish firms”. Used here because Taiwan’s published values are pre-scaled to [0, 1] and Poland’s are not.
Min-max normalisation — rescaling a column until its smallest value is 0 and its largest value is 1. Taiwan’s publishers did this; Poland’s did not. That creates the scale mismatch.
Winsorising — clipping extreme outliers back to a percentile instead of deleting the rows.
Imputation — filling missing values. Here, with the training set’s median, computed without looking at test data.
Metrics
ROC-AUC — the probability that the model scores a randomly chosen distressed firm above a randomly chosen healthy one. 0.5 is a coin flip, 1.0 is perfect. Optimistic under heavy imbalance. It is never reported alone here for that reason.
Average precision — summarises how much of the top of your ranked alert list is real. Best suited here for top-alert quality when only about 4% of firms fail.
Cross-validation — splitting data into folds, training on some and testing on the rest, rotating through so every row is tested once.
Models
XGBoost — gradient-boosted decision trees. Builds many small trees in sequence, each correcting the previous ones’ errors.
Logistic regression — a linear model producing a probability; the interpretable reference point.
scale_pos_weight — XGBoost’s setting for telling the model the rare class matters proportionally more. How imbalance is handled throughout this project.
SMOTE — builds extra minority-class examples between existing ones. Deliberately not used here: with 25 sampled firms at a 3.9% base rate there is about one real distressed firm, and stretching one example into many can create patterns that are not actually in the data.
SHAP — a method for attributing a prediction to individual input features, used here to compare which ratios each market’s model uses most.
Finance
Altman Z-score — Altman’s 1968 bankruptcy formula, built from five ratios: working capital/assets, retained earnings/assets, EBIT/assets, equity/liabilities, and sales/assets. Both datasets contain all five, which is what anchors the shared feature space in theory rather than in name-matching.
EBIT — earnings before interest and taxes: operating profit before financing and tax effects.
Working capital — current assets minus current liabilities; short-term financial slack.
Retained earnings — cumulative profit kept in the business rather than paid out. The strongest single distress signal in both markets here.
Current ratio / quick ratio — short-term liquidity. Current assets over short-term liabilities; the quick ratio excludes inventory, which is harder to convert to cash.
Turnover ratios — how efficiently assets generate sales (receivable turnover, inventory turnover, and so on). Found here to carry almost no distress signal in either market.
Listed vs private firms — listed companies trade publicly and face stricter disclosure requirements; private ones do not. Taiwan’s dataset is listed firms, while Poland’s is largely private.
Sanity checks
Spearman correlation (ρ) — correlation of ranks rather than values. Used here to ask whether the two markets agree on which ratios matter most.