
兩家公司 ROE 同樣是 20%,一家靠產品毛利、一家靠借錢加槓桿,能一樣看待嗎?杜邦分析就是回答這個問題的工具。本文主軸是重跑本站 2020 年公開的杜邦選股策略(總資產週轉率 > 0.3 + 單季 ROE > 5 + PB < 3):2018 到 2026 年化 22.86%、日夏普 1.20,發文後近六年的真實樣本外年化 25.94%,沒有衰退。我們另外用 finlab 對台股約 1,900 家上市櫃公司做了一組對照實驗:把 2018 到 2026 年的高 ROE 股票拆開來看,淨利率或週轉率比去年改善、槓桿未擴張的組合年化 14.36%,槓桿擴張的組合年化 12.25%、最大回撤更深;至於 ROE 維持高檔但營運同步惡化、純靠槓桿支撐的極端組,八年多累積報酬是 -5.1%。本文從公式與例子講起,附三因子分位回測與完整程式碼。
關鍵數字
| 2018-01 ~ 2026-06(策略含 finlab 預設交易成本) | 年化報酬 CAGR | 日夏普 | 最大回撤 | 平均持股 |
|---|---|---|---|---|
| 2020 年原文策略(週轉率>0.3 + ROE>5 + PB<3,本文主角) | 22.86% | 1.20 | -33.96% | 36.8 檔 |
| 營運驅動 ROE(對照實驗:淨利率或週轉率改善、槓桿未擴張、PB<3,前 30 檔) | 14.36% | 0.71 | -36.34% | 25.3 檔 |
| 槓桿驅動 ROE(對照實驗:權益乘數較去年同季擴張,其餘條件相同) | 12.25% | 0.62 | -39.44% | 21.5 檔 |
| 純槓桿支撐 ROE(對照實驗:營運同步惡化;樣本極薄,僅供參考) | -0.61% | 0.12 | -60.88% | 2.9 檔 |
| 0050 含息(純指數算術,不含成本) | 25.05% | 1.22 | -33.96% | 1 檔 |
數字來源是文末可下載的 strategy.py 與 metrics.json,資料截至 2026-06-09;頁首標示的年化 22.86%、夏普 1.20 即第一列 2020 年原文策略在 2018-01 ~ 2026-06 的重跑結果。表格透露兩件事:杜邦拆解確實能分辨「同樣高 ROE」之間的體質差異,但在 0050 年化 25% 的這段多頭裡,這幾個基本面組合都沒有贏過單純買進持有大盤。後面會把這兩件事都攤開講。
杜邦分析是什麼?
杜邦分析(DuPont Analysis)是把股東權益報酬率(ROE)拆解成三個比率相乘的財報分析法:淨利率、總資產週轉率、權益乘數。 它在 1920 年代由美國杜邦公司內部發展出來,用來診斷各事業部的獲利結構,後來成為財務報表分析的標準工具。寫成公式:
右邊三項相乘,分子分母互相約分後就是 ,也就是 ROE 本身。拆解的價值在於:ROE 只告訴你結果,杜邦分析告訴你過程。
| 比率 | 計算 | 衡量什麼 | 台股中位數(2026-Q1,單季) |
|---|---|---|---|
| 淨利率 | 稅後淨利 ÷ 營收 | 每收一塊錢營收,真正留下幾分錢 | 6.39% |
| 總資產週轉率 | 營收 ÷ 總資產 | 一份資產能做出多少生意 | 0.14 |
| 權益乘數 | 總資產 ÷ 股東權益 | 財務槓桿:自有資金被放大幾倍 | 1.70 |
中位數由 finlab 的財報資料計算,樣本為排除金融股後約 1,900 家上市櫃公司。ROE 本身的選股效果,本站在ROE 多高才算好?台股回測與 EPS 與 ROE 選股比較各有專文,本文聚焦「拆開之後」每個零件的資訊。
用一支 iPhone 看懂杜邦公式
以下是一個幫助理解的示意例子,數字為虛構。假設你有 2 萬元,再向家人借 1 萬元,用 3 萬元買進一支熱門 iPhone,然後以 4 萬元轉賣,淨賺 1 萬元。
- 你投入自有資金 2 萬、賺 1 萬,ROE 是 1/2,也就是 50%
- 賣價 4 萬中只有 1 萬是利潤,淨利率是 1/4
- 你用 3 萬元的「總資產」做出 4 萬元的「營收」,總資產週轉率是 4/3
- 自有資金 2 萬被放大成 3 萬可動用資金,權益乘數是 3/2
三個數字相乘:
ROE 像是只看故事的開頭(投入 2 萬)與結尾(賺 1 萬),中間發生的事全部被省略;杜邦分析把中間補回來。同樣賺 50%,你可以靠「賣貴一點」(淨利率)、「轉賣更快、一年多做幾輪」(週轉率),或「跟更多人借錢」(權益乘數)達成,三條路的風險完全不同:前兩條是本事,第三條是負債,市況反轉時會反過來放大虧損。
進階版的五因子杜邦把淨利率再拆成稅負與利息的影響,適合分析稅率變動或利息負擔沉重的公司:
前兩項分別是稅負效率與利息負擔,第三項是營業利益率。台股多數教學與本文實測使用三因子版本,觀念相通。
台股 1,900 家公司的三因子分佈長什麼樣
把 2026-Q1 財報的三個比率畫成直方圖,可以對「多少算高、多少算低」建立直覺(為了可讀性,圖中淨利率的極端值截尾於 ±60%):

| 因子(2026-Q1,排除金融股) | 樣本數 | 25 分位 | 中位數 | 75 分位 |
|---|---|---|---|---|
| 稅後淨利率(%) | 1,922 | 0.37 | 6.39 | 14.04 |
| 總資產週轉率(單季) | 1,926 | 0.09 | 0.14 | 0.20 |
| 權益乘數 | 1,925 | 1.38 | 1.70 | 2.22 |
三個觀察:
- 淨利率在 0 附近有一個突波。 淨利率落在 0% 到 2% 的公司有 154 家,落在 -2% 到 0% 的只有 50 家,三倍的不對稱。Burgstahler & Dichev (1997) 在美股樣本中證實了這種「剛好擠過損益兩平」的分佈缺口:零的左側小虧損異常少、右側小獲利異常多,是公司管理盈餘以避免出現虧損的痕跡。2020 年本文前身觀察到同樣的突波,六年後依然存在。
- 全市場有 458 家公司單季虧損,約佔樣本四分之一。淨利率的極端值非常誇張(最小 -5,387,700%,來自營收近乎零的公司),所以描述統計看分位數比看平均值有意義。
- 權益乘數中間一半的公司落在 1.38 到 2.22 之間(25 與 75 分位),即負債約佔資產三到五成。2020 年舊文觀察到 8 家股東權益為負(理論上資不抵債)的公司;2026-Q1 重算,排除金融股的樣本中已經沒有權益為負的公司。另外金融業因為吸收存款的商業模式,權益乘數動輒 10 倍以上,把它們混進來會污染整個槓桿分佈,這也是本文全程排除金融股的原因。
三個因子哪個能選股?五分位回測
把每一季的全市場股票依各因子排序、均分成五組(Q1 最低、Q5 最高),財報公告截止日換股、組內等權,從 2013 年第一份可得財報一路測到 2026 年 5 月,每組平均約 350 檔:

| 2013-04 ~ 2026-05,年化報酬 CAGR | Q1(最低) | Q2 | Q3 | Q4 | Q5(最高) |
|---|---|---|---|---|---|
| 稅後淨利率 | 3.89% | 6.77% | 12.26% | 13.85% | 14.35% |
| 總資產週轉率 | 8.03% | 9.23% | 11.34% | 12.61% | 12.19% |
| 權益乘數 | 10.55% | 11.30% | 10.19% | 11.56% | 10.55% |
同窗的 0050 含息年化 19.47%、日夏普 1.09、最大回撤 -33.96%;五分位是全市場等權組合,沒有任何一組贏過它,這張表回答的是「因子內部的相對排序」。三個因子的結論差異很大:
- 淨利率:嚴格單調,2020 年的結論成立。 最高分位年化 14.35%(日夏普 1.01、最大回撤 -28.58%),最低分位 3.89%(日夏普 0.36、最大回撤 -47.10%),首尾差超過 10 個百分點。賺不了錢的公司,股價長期就是表現差。
- 總資產週轉率:高分位明顯較抗跌,方向與 2020 年一致。 Q5 的最大回撤 -26.16% 是全部十五個組合中最淺的,日夏普 0.98 也是該因子最高;CAGR 上 Q4(12.61%)略高於 Q5(12.19%),單調性不如淨利率嚴格。
- 權益乘數:沒有方向。 五組年化擠在 10.19% 到 11.56% 之間,看不出單調關係。2020 年舊文曾觀察到「負債最高的一組績效居前、槓桿最小的一組吊車尾」的反直覺現象,這次用排除金融股的股票池、2013 到 2026 的窗口重跑,該現象不再成立。差異可能來自股票池定義(舊文未排除金融股)與時間窗口,無論原因為何,「槓桿高低」本身在台股不是可靠的選股因子。
這個結果跟學術文獻的方向一致:槓桿的「水準」沒有資訊,營運效率的「變化」才有。這正是下一節的主題。
學術研究:ROE 的來源比高度重要
杜邦拆解在會計學裡有相當扎實的實證支持,核心結論可以濃縮成一句:市場看得到 ROE,但常常忽略 ROE 是怎麼來的。
Fairfield & Yohn (2001) 證明,把資產報酬率拆成利潤率與資產週轉率之後,「週轉率的變化」對預測公司下一年獲利變化有顯著增量;只看 ROA 或 ROE 總量則沒有這個效果。Soliman (2008) 進一步把營運資產報酬率寫成
(PM 為利潤率、ATO 為淨營運資產週轉率),發現資產週轉率改善(ΔATO 為正)的公司,後續股票報酬系統性偏高,而分析師與市場對這個訊號反應不足。至於槓桿那一項,Nissim & Penman (2001) 把財務槓桿從營運獲利中分離出來,指出槓桿能放大 ROE,卻不必然創造價值:放大的是好營運時才有利,營運轉差時同樣放大虧損。
三篇合起來就是杜邦分析的選股邏輯:淨利率與週轉率的改善是「品質」,權益乘數的擴張是「音量」。音量調大不代表歌變好聽。要注意的是,這些文獻的樣本是美股、用的是年度財報與更精細的營運資產口徑,台股的適用性需要實測,這正是下一節做的事。
台股實測:營運驅動 ROE vs 槓桿驅動 ROE
我們設計一組對照實驗,把「同樣高 ROE 的股票」依 ROE 的來源分成兩組。共同條件:上市櫃排除金融股、60 日均量大於 50 萬股、單季 ROE 大於 5%、股價淨值比小於 3(估值閘,與本站股價淨值比選股回測同一指標)。在此之上:
- 營運驅動組:淨利率或週轉率比去年同季改善(ΔNPM>0 或 ΔTAT>0),且權益乘數沒有擴張(ΔEM≤0)
- 槓桿驅動組:權益乘數比去年同季擴張(ΔEM>0)
兩組各依 ROE 取前 30 檔等權,財報公告日換股。核心程式碼長這樣,完整可重跑版本在文末下載區:
顯示程式碼
from finlab import data
from finlab.backtest import sim
# 股票池:上市櫃普通股,排除金融股
data.set_universe(market="TSE_OTC", exclude_category="金融")
close = data.get("price:收盤價")
vol = data.get("price:成交股數")
pb = data.get("price_earning_ratio:股價淨值比")
# 杜邦三因子(季頻),index_str_to_date() 轉成財報公告日,避免前視
npm_q = data.get("fundamental_features:稅後淨利率")
roe_q = data.get("fundamental_features:ROE稅後")
tat_q = data.get("financial_statement:營業收入淨額") / data.get("financial_statement:資產總額")
em_q = data.get("financial_statement:資產總額") / data.get("financial_statement:股東權益總額")
roe = roe_q.index_str_to_date()
# 與去年同季比較的變化量(diff(4) 對齊同季,避免季節性)
dnpm = npm_q.diff(4).index_str_to_date()
dtat = tat_q.diff(4).index_str_to_date()
dem = em_q.diff(4).index_str_to_date()
# 共同條件:流動性 + 高 ROE + 估值閘
liquidity = (vol.rolling(60).mean() > 500_000).reindex(roe.index, method="ffill")
pb_at_report = pb.reindex(roe.index, method="ffill")
high_roe = (roe > 5) & liquidity & (pb_at_report < 3)
# 營運驅動:改善來自淨利率或週轉率,且槓桿未擴張
operating_driven = high_roe & ((dnpm > 0) | (dtat > 0)) & (dem <= 0)
# 條件內依 ROE 取前 30 檔,等權持有
position = roe.where(operating_driven).rank(axis=1, ascending=False) <= 30
report = sim(position, upload=False)2018 年初到 2026 年 6 月的結果:

| 2018-01 ~ 2026-06 | 年化報酬 | 日夏普 | 日索提諾 | 最大回撤 | 累積報酬 |
|---|---|---|---|---|---|
| 營運驅動 ROE(前 30 檔) | 14.36% | 0.71 | 0.85 | -36.34% | 209.9% |
| 槓桿驅動 ROE(前 30 檔) | 12.25% | 0.62 | 0.74 | -39.44% | 165.0% |
| 純槓桿支撐 ROE(營運惡化,平均僅 2.9 檔) | -0.61% | 0.12 | 0.15 | -60.88% | -5.1% |
| 0050 含息 | 25.05% | 1.22 | 1.67 | -33.96% | 558.5% |
三個重點:
第一,方向與文獻一致,幅度溫和。 營運驅動組每年比槓桿驅動組多約 2 個百分點,回撤淺 3 個百分點,日夏普 0.71 對 0.62。差距真實存在,但說「槓桿驅動的高 ROE 一定是地雷」就言過其實了:槓桿擴張的公司裡也有營運同步成長的好公司。
第二,極端組才是災難。 把條件收緊到「ROE 仍高於 5%,但淨利率與週轉率同時比去年差,全靠槓桿撐住」,這一組八年多累積報酬 -5.1%、最大回撤 -60.88%。不過符合條件的公司平均只有 2.9 檔,樣本太薄,這個數字當作警示案例看待即可,統計上不足以下強結論。
第三,沒有一組贏過 0050。 2018 到 2026 是 0050 年化 25% 的極端多頭,尾段由台積電與 AI 行情主導。分段來看更清楚:2021 到 2023 年 0050 年化只有 6.36% 時,營運驅動組年化 14.52%、2020 年原文策略 25.92%,都大幅領先;2024 到 2026 年 0050 年化 62.66%,所有選股組合都被甩開。集中度極高的指數行情是這類分散型基本面策略最吃虧的環境,反過來說,押注它持續也是一種風險,這部分的討論可參考多因子策略與 0050 的比較。
持股檔數的選擇不影響結論:前 20 檔年化 15.84%、前 30 檔 14.36%、前 50 檔 15.83%,日夏普都在 0.71 到 0.77 之間。營運驅動組的完整互動回測報告(月報酬熱力圖、每期持股、回撤)可在下方操作:
重跑 2020 年的舊策略:樣本外六年成績單
本文前身是 2020 年 7 月的系列文,當時提出的整合策略是「總資產週轉率 > 0.3 + 單季 ROE > 5 + PB < 3」,並宣稱它「至少近 7 年有效」。發文至今近六年,正好是一段貨真價實的樣本外測試:

| 區間 | 原文策略 CAGR | 同窗 0050 CAGR | 原文策略最大回撤 | 0050 最大回撤 |
|---|---|---|---|---|
| 樣本內 2013-04 ~ 2020-07 | 21.85% | 11.86% | -33.95% | -28.22% |
| 樣本外 2020-07 ~ 2026-05 | 25.94% | 31.09% | -26.16% | -33.96% |
| 全樣本 2013-04 ~ 2026-05 | 23.65% | 19.47% | -33.95% | -33.96% |
兩個結論並列:策略本身沒有衰退,樣本外年化 25.94% 甚至高於樣本內,日夏普 1.33 與樣本內的 1.32 幾乎相同,回撤還比較淺;但它沒有贏過同期的 0050(31.09%),原因同上一節,2024 年後的指數行情極端集中。風險調整後兩者接近:樣本外日夏普 1.33 對 0050 的 1.40,最大回撤 -26.16% 對 -33.96%。對一個 2020 年公開、規則從未修改的三條件策略來說,這份樣本外成績在量化研究裡並不常見,回測過度配適的典型症狀(上線即失效)沒有出現。
有一點必須更正:舊文當年主張「2013 年 IFRSs 上路後策略才轉穩」,並推論公允價值入帳墊高總資產、讓週轉率因子更有鑑別力。目前資料庫的財報起點就是 2013 年第一季,2013 年以前的區間無法重跑,這個說法我們既無法證實也無法否證,本次改寫不再沿用。
回測方法與限制
| 項目 | 本文設定 |
|---|---|
| 回測區間 | 原文策略與對照實驗的 2018 年窗口為 2018-01-01 ~ 2026-06-09;五分位與原文策略全樣本 2013-04(首份可得財報)~ 2026-05-15 |
| 再平衡 | 財報公告截止日換股(index_str_to_date() 公告日對齊,財報延遲已內含),次一交易日生效 |
| 交易成本 | 手續費 0.1425%(未打折)+賣出證交稅 0.3%,finlab sim() 台股預設值,已內含於所有策略數字 |
| 滑價 | 未設定額外滑價;小型股實際成交價差可能更差 |
| 股票池 | 上市櫃普通股(含 KY 股),排除金融股與 ETF;未排除全額交割股 |
| 流動性過濾 | 對照實驗要求 60 日均量 > 50 萬股;五分位與原文策略無流動性過濾(五分位全市場每組約 350 檔,貼近原文做法) |
| 前視偏差 | 財報以公告截止日對齊;變化量用 diff(4) 對齊去年同季 |
| 權重 | 等權,無單檔上限 |
| 周轉率 | 未統計年化周轉率;換股頻率為每季一次,周轉率天然受限 |
| 樣本內外 | 對照實驗與五分位為全段 in-sample;原文策略有 2020-07 後的真實樣本外(規則 2020 年公開後未改) |
| 容量 | 未估算策略容量;平均持股 21 到 37 檔、含中小型股,大資金實際可容納規模本文未量化 |
基準口徑:0050 含息報酬以 etl:adj_close 還原價做買進持有的純指數算術,不含交易成本;策略數字則含上述成本,比較時對基準略偏有利。夏普與索提諾的判讀方式見夏普比率計算器,回測的基本觀念(訊號可得時點、成本、基準)整理在回測是什麼。
杜邦分析的實務用法
回測證據整理成三條可操作的原則:
- 看到高 ROE,先問它是哪裡來的。 打開財報把三個比率各算一次(或用 finlab 三行取出),ROE 上升但淨利率與週轉率都在退步的公司,把它從「績優股」名單移到「觀察名單」。
- 淨利率是長期持有的底線。 五分位回測中最低分位年化 3.89% 對最高分位 14.35%,差距大且單調;長抱不賺錢的公司,時間是敵人。
- 槓桿本身不必閃避,但別當成優點。 權益乘數五分位沒有方向性,負債高不代表會跌;真正的警訊是「營運變差+槓桿變大」同時發生。
舊文還有一個延伸視角:把自己當成一家公司。薪資是營收、生活開銷後的結餘是淨利、動用的資產是總資產,存款全部閒置等於壓低自己的總資產週轉率;同樣的杜邦邏輯可以檢查個人財務的「ROE」是被哪一項拖累。這是類比,幫助記住三個比率的意義,不屬於投資建議。
想自己動手跑,pip install finlab 後執行 finlab.login(),套件會引導你完成登入,照文中程式碼即可重現所有數字;資料取得的入門整理在用 Python 抓台股資料,想把這類條件寫成可自動執行的策略,可從程式交易是什麼與程式交易完整指南接下去。更完整的選股框架(基本面、技術面、籌碼面如何分工)見台股選股完整教學。
常見問題 FAQ
Q1:杜邦分析的三個指標是什麼? 淨利率(稅後淨利 ÷ 營收)、總資產週轉率(營收 ÷ 總資產)、權益乘數(總資產 ÷ 股東權益)。三者相乘等於 ROE,分別代表獲利能力、資產使用效率、財務槓桿。
Q2:杜邦方程式怎麼計算?有簡單例子嗎? 用 2 萬自有資金加 1 萬借款買 3 萬元 iPhone、以 4 萬元轉賣的例子:淨利率 1/4、週轉率 4/3、權益乘數 3/2,相乘得 ROE = 1/2。把任何公司財報的三個數字代入同一條公式即可。
Q3:杜邦分析的五因子版本和三因子差在哪? 五因子版把淨利率再拆成稅負效率與利息負擔兩項,加上營業利益率、週轉率、權益乘數共五項。分析稅率變化大或利息負擔重的公司時比較有用,一般選股用三因子已足夠。
Q4:ROE 很高的股票就值得買嗎? 回測顯示要看來源。同樣是單季 ROE 大於 5% 加 PB 小於 3,營運驅動組 2018 到 2026 年化 14.36%,槓桿驅動組 12.25% 且回撤更深;營運同步惡化、純靠槓桿支撐的極端組累積報酬為負。高 ROE 加上「怎麼來的」這一問,比單看數字可靠。
Q5:權益乘數多少算高?負債多的公司不能買嗎? 台股中位數約 1.70,75 分位約 2.22(皆排除金融股)。五分位回測中槓桿高低與報酬沒有單調關係,負債多不等於該避開;該警惕的組合是槓桿擴張同時營運指標惡化。
Q6:杜邦分析單獨拿來選股有效嗎? 有相對的鑑別力,沒有絕對的超額報酬:淨利率最高與最低分位年化差約 10.5 個百分點,但 2018 到 2026 沒有任何杜邦組合贏過 0050 含息的 25.05%。它更適合當作高 ROE 名單的品質過濾器,與動能、籌碼等其他面向組合使用,作法可參考創新高加 ROE 與 PB 的因子策略。
Q7:2020 年版本文的策略現在還有效嗎? 規則公開後未調整,2020-07 到 2026-05 樣本外年化 25.94%、日夏普 1.33、最大回撤 -26.16%,沒有衰退;同期 0050 年化 31.09%,策略小幅落後但回撤較淺。
Q8:本文數字可以重現嗎?
可以。文末 strategy.py 含五分位、對照實驗與原文策略重跑,pip install finlab 後執行即可;metrics.json 是本文全部數字的單一來源,equity_monthly.csv 是月頻權益曲線。
延伸閱讀
不用先學會寫程式也能驗證選股想法:FinLab 讓你用 AI 對話描述策略,底層由套件跑真實台股回測。免費註冊試用,把這篇的
strategy.py改成你自己的條件,看數據怎麼說。
引用文獻
- Fairfield, P. M., & Yohn, T. L. (2001). Using Asset Turnover and Profit Margin to Forecast Changes in Profitability. Review of Accounting Studies, 6, 371-385. 證明把獲利拆成週轉率與利潤率,對預測下一年獲利變化有增量資訊。
- Soliman, M. T. (2008). The Use of DuPont Analysis by Market Participants. The Accounting Review, 83(3), 823-853. 發現資產週轉率改善的公司後續報酬偏高,市場對杜邦拆解訊號反應不足。
- Nissim, D., & Penman, S. H. (2001). Ratio Analysis and Equity Valuation: From Research to Practice. Review of Accounting Studies, 6, 109-154. 把財務槓桿從營運獲利分離,說明槓桿放大 ROE 但不必然創造價值。
- Burgstahler, D., & Dichev, I. (1997). Earnings Management to Avoid Earnings Decreases and Losses. Journal of Accounting and Economics, 24(1), 99-126. 證明盈餘分佈在損益兩平門檻附近不對稱:小虧損異常少、小獲利異常多,是盈餘管理的證據。
下載資源
| 檔案 | 說明 |
|---|---|
| strategy.py | 完整回測程式碼:三因子五分位+營運驅動對照實驗+2020 原文策略重跑 |
| metrics.json | 本文全部績效數字的單一來源 |
| equity_monthly.csv | 四條權益曲線的月頻數據 |
| report_strategy.html | 營運驅動 ROE 策略互動式回測報告 |
本文所有回測為歷史資料模擬,文中各策略 2018 至 2026 年均未超越同期 0050 含息報酬,數據僅供理解杜邦分析與 ROE 結構之用,非任何形式的實盤推薦。投資有風險,過去績效不代表未來表現。本內容僅供教學參考,不構成投資建議,請依個人風險承受度審慎評估。
最後更新:2026-06|回測區間:2013-04 ~ 2026-06(2018 年窗口為 2018-01-01 ~ 2026-06-09,資料截至 2026-06-09)|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始

