所有文章 · 發布於 2026-07-23

多益預估分數怎麼算?單手刷990 的估分方法

給好奇的你的技術說明。本文假設你學過一點機率與統計——知道機率、平均值、標準差是什麼——但不需要更進階的背景。其餘的一切都會從頭建立起來。

問題所在

每當你回答一題練習,就等於告訴 app 一個位元的資訊:對,或錯。從這一長串橫跨 TOEIC 七大題的 1 與 0 之中,我們想估算出單一數字——你在 990 分制下的可能分數——而且希望這個數字可信、穩定,並且對自身的不確定性誠實。

這比聽起來更難,原因有四:

  1. 答題帶有雜訊。 即使實力固定,純粹因為運氣,你也會出現一連串的答對與答錯。好的估計不該因為你偶爾失手就劇烈跳動。
  2. 你的實力會改變。 你正在進步。三週前的資料,價值低於今天的資料。若估計對所有紀錄一視同仁,就無法反映你的進步。
  3. 冷啟動。 才答三題,我們仍得顯示某個數字,卻又不能假裝三題告訴我們的訊息和三百題一樣多。
  4. 我們應該知道自己不知道什麼。「Reading 320」與「Reading 320,但我們其實沒什麼把握」是很不一樣的兩句話,而 app 應該能分辨它們。

本文說明我們採用的方法——衰減式 Beta–Bernoulli 事後分布(decayed Beta–Bernoulli posterior)——它如何一次解決這四個問題,以及我們為何選擇它,而非其他更顯而易見的做法。


初步的嘗試,以及它們為何不夠好

單純的累計平均

最簡單的想法:對每個大題,追蹤 (答對題數)/(作答題數)

這個做法不偏不倚,也極為單純,但它沒有記憶的衰減。答了 500 題之後,一題幾乎動不了它——如果你的實力永遠不變,這沒問題;但只要實力會變,就沒用了。一位三週前是 50%、今天已經 75% 的學習者,會看到累計平均長時間卡在中間某處。它也把你昨天才看過的一題,和一整份完整的模擬考一視同仁。我們需要的是能以「受控的速率」遺忘遠久過去的東西。

固定的指數移動平均(我們先前的做法)

經典的補救方式是指數移動平均(exponential moving average,EMA)。只保留一個數字,也就是估計值 m,每答一題就把它往最新結果推一點:

mα·(100 if correct, else 0)+(1α)m,α=0.1

每個新答案佔 10%,而全部過去合計佔 90%。這確實會遺忘過去——它的有效記憶大約是最近 1/α ≈ 10–20 題——而這正是單手刷990最初採用的方式。但它有三個實際的缺點:

  • 學習率永遠不變。 在你第 3 題時是 α = 0.1,到你第 3,000 題時還是 α = 0.1。一開始這太慢(我們把手上本就稀少的資料丟掉了 90%);到後來,它又成了永久雜訊的來源。
  • 它永遠不會收斂——會一直抖動。 因為每個答案都以固定比例推動它,即使你的真實實力完全平穩,估計值仍會不停抽動。對一個真實正確率為 50% 的大題,固定 α 的 EMA 其長期標準差大約是
sdα2α·p(1p)·100±11 percentage points, forever.

把這樣的抖動推進一個大節的各大題,就是 990 分制上數十分、反映運氣而非學習成果的擺盪。 - 它不帶任何信心的概念。 m 只是一個赤裸裸的數字。它無法告訴你自己是建立在 3 題還是 3,000 題之上,因此無法顯示一個誠實的範圍,也無法在資料稀薄時避免反應過度。

我們想要 EMA好的那一面(有界的記憶),卻不想付出這三項代價。而達成之道,是不再只追蹤單一數字,改為追蹤一個分布


貝氏的核心想法:追蹤「信念」,而非一個點

把你在某個大題上的正確率想成一個未知的機率 p——也就是你答對該類型隨機一題的機會。每一次作答都是一次 Bernoulli(伯努利)試驗:一枚以機率 p 落在「答對」的硬幣。我們不知道 p;我們想從這些拋擲中把它學出來。

貝氏的關鍵一步是:不去鎖定 p 的單一猜測,而是持有一整個關於 p 可能是多少的機率分布——我們的信念——並隨著證據到來而更新這個信念。當你看到的資料很少,信念是寬的(我們沒把握);隨著資料累積,它會集中到真實值附近(我們有信心)。這份寬度正是 EMA 所欠缺的信心資訊。

Beta 分布

對於一個介於 0 與 1 之間的機率 p,承載這份信念的自然形狀是 Beta 分布,寫作 Beta(a, b)。你可以把它的兩個參數想成虛擬計數(pseudo-counts)

  • a 的作用像是答對數的累計計數,
  • b 像是答錯數的累計計數。

Beta 分布有兩個性質,讓它在此處恰到好處:

1. 它的平均值恰好是你會預期的那個:

estimated accuracy=mean[Beta(a,b)]=aa+b

就是「答對除以總數」,只不過用的是虛擬計數,而非原始的次數。

2. 更新它極為簡單。 Beta 分布是 Bernoulli 試驗的共軛(conjugate)事前分布——這是一項數學上的好運,意味著更新規則會停留在同一個分布家族裡。觀察到一題答對,你的新信念就只是 Beta(a+1, b);一題答錯則是 Beta(a, b+1)。沒有積分、沒有近似:你只是把 1 加到一個計數器上。 這正是為什麼整個方法每答一題只需一把算術,並且能完全在你的裝置上執行。

我們的起點(事前分布)

在你還沒作答之前,我們從 Beta(3, 3) 開始。它的平均值是 3/6 = 50%——一個中性的起始猜測——而它的總和 a + b = 6 刻意取得很小,用以表達「我們認為是 50%,但信念很弱,所以真實資料會很快把我們拉走」。答上幾題,你貢獻的虛擬計數就會淹沒事前分布;那個 50% 的假設會自行淡出。

信心不必額外付費

因為我們攜帶的是一整個分布,我們就能不做任何額外記帳而得到它的變異數。對 Beta 分布而言,

Var(mean)=m(1m)N+1,m=aa+b,N=a+b

看看它做了什麼:分子 m(1−m) 是尋常的硬幣拋擲變異數,而分母隨 N(總證據量)增長。答得越多 ⇒ 變異數越小 ⇒ 估計越緊。 它的標準差(也就是開根號)正是 app 用來轉成你在分數旁看到那個「±」範圍的東西。它會隨著你練習而縮小,這既誠實,我們也希望它能激勵人心。


「衰減」的部分:以受控的速率遺忘

純粹的貝氏更新,會再一次陷入累計平均的問題:它永遠不遺忘。答了 500 題之後,N = 506,而一個新答案幾乎毫無份量——這對正在進步的學習者毫無好處。

補救方式只有一行。在把每個新答案納入之前,先用一個略小於 1 的衰減因子 ρ 溫和地縮小現有的虛擬計數。每答一題(x = 1 表答對、0 表答錯):

{aρa+xbρb+(1x)ρ=1140=0.975

每一步都把 ab 縮小一點,可讓總證據量不再無限增長。它會停在一個固定的上限:

steady-state total evidenceN*=11ρ=40 answers.

所以無論你答了幾千題,每個大題的行為就像只記得最近約 40 題,並平滑地偏向最新的那些。這正是我們喜歡 EMA 的那份「有界記憶」——但現在多了兩項好處。

好處一:學習率會自我調整

這裡是最精巧的部分。算算看單一答案讓平均值移動多少。以 N = a + b 表示答題「前」的證據量,N′ = ρN + 1 表示答題「後」剛更新的證據量,幾行代數就會塌縮成:

mnew=m+xmN

正是一個 EMA——但它的步幅是 1/N′,而這並非固定。當 N 很小(你才剛開始),N′ 也小——在你的第一題大約是 7,所以步幅約為 1/7 ≈ 0.15,估計值移動得快,積極地運用你稀少的資料。隨著 N 爬向它的上限,N′ 穩定在 40,步幅便安定在 1/40 = 0.025,估計值也變得沉穩安定。換句話說:

衰減式 Beta 事後分布就是一個指數移動平均——但它的學習率一開始很高、之後自行退火到一個低值,而且它攜帶一個證據計數器,因此總是知道該有多少信心。

固定的 EMA,只是把那份自適應能力丟掉的特例罷了。

好處二:一半的雜訊,而且它會收斂

因為安定後的學習率(≈ 0.025)遠小於舊有的固定 α = 0.1,長期抖動的標準差約降為一半——變異數約為四分之一。估計值不再因運氣而抽動,於是趨勢圖和「本次進步分數」都反映真實的變化,而非雜訊。然而,多虧了衰減,它永遠不會凍結:真正的進步依舊會透出來,只是少了那份虛假的精確。


另外兩種「並非所有證據都等值」

同一套機制,也能吸收幾項固定 EMA 根本無從表達的細緻調整——因為 EMA 沒有地方安放它們。

隨日曆時間老化

有界記憶計的是答題數,但一次兩個月的停練,即使你期間一題都沒答,也理應讓你損失一些信心。因此,一旦某個大題閒置超過一週的寬限期,我們就依閒置的每一天略微縮小它的虛擬計數(每天乘以 0.99)。關鍵在於,我們用相同的因子同時縮小 a b——這讓平均值 a/(a+b) 維持不變,卻降低總量 N。效果是:你顯示的分數不動,但它的 ± 範圍變寬,而你回歸後的頭幾個答案份量更重。「我們沒忘記你曾經到哪,只是不太確定它是否還成立」——用一次乘法就表達了出來。

Happysaur 在翻過一頁的日曆旁放鬆繞著木樁的繩圈;木樁未動而繩圈變寬,表示停練後估分不變、把握降低。

為個別答案加權

並非每個答案都同等地富含資訊,所以我們讓一個答案以一個權重 w 納入(更新式變成 a ← ρa + w·xb ← ρb + w·(1−x)):

  • 你先前看過的題目以一半權重計。答對一題重複題,部分靠的是記憶而非實力,所以它不該像新題那樣推動估計。這也抵銷了一個微妙的偏差:一旦你把某個類別做完,練習會開始重新端出你先前答錯的題目,否則這會不公平地把你的估計往下拉。
  • 來源很重要。 一個在真實考試情境下(一份限時的完整模擬考)作答的答案,價值高於一次隨手練習,所以它以較高的權重納入(最高可達兩倍)。有了約 40 題的記憶上限,一份完成的模擬考便能真正主導某大題近期的證據,而非到隔天就被稀釋殆盡。
  • 一個回報的真實分數(如果你輸入的話)會以一個強力的事前分布為信念播種——約相當於 25 題份量的信心,落在其所隱含的正確率上——因此後續單獨一題練習無法抹去它,但幾十題最終會。

以上都不需要新的架構。它們全都只是那個權重 w 和那兩個計數器。這份彈性,正是選用一個具有明確「有多少證據」概念的模型(而非單一不透明數字)的直接結果。


從各大題的信念,到 990 分

十個題目類別各自攜帶自己的衰減式 Beta 事後分布。要把它們化為一個大節分數,我們用該類型題目在真實考試中出現的題數(每個大節加總為 100)為各類別的平均值加權,得到一個滿分 100 的預估答對題數。這個數字再透過官方 TOEIC 答對題數 → 量尺分數對照表映射,產生 5–495 的大節分數,兩個大節相加,就是你的 /990 預估分數。

不確定性也隨之同行。因為各類別彼此獨立,它們的變異數會以平方相加的方式合併(各以其考試題數的平方加權),而合併後的標準誤便成為你大節與總分上的 ± 範圍。

針對閱讀的現實檢核

TOEIC 閱讀是有時間壓力的:75 分鐘 100 題——平均每題 45 秒,而且沒辦法多買時間。因此,在無時限練習中量到的正確率會高估慢讀者,因為在真實時鐘下他們根本做不到最後幾題,而一題來不及作答,計分時就像隨機猜測——25%,四分之一的機會——而非你練習出來的正確率。

於是 app 會跑一個簡單的模擬。它用為每個閱讀大題量到的每題速度,依考試順序——Part 5、接著 6、再來 7——「花用」你 75 分鐘的預算,直到時間用完,並把每一題你來不及做到的,以 0.25 計分,而非你真實的正確率。

舉個具體例子。假設你 Part 5 每題讀 30 秒、Part 6 每題 45 秒、Part 7 每題 80 秒。Part 5 與 6(30 + 16 題)用掉 30×30 + 16×45 = 1,620 秒,剩下 2,880 秒給 Part 7。每題 80 秒,你只做得完 Part 7 共 54 題中的 2,880 / 80 ≈ 36 題——另外 18 題來不及作答。若你的 Part 7 正確率是 70%,這 18 題會各自從 0.70 掉到 0.25,損失約 0.45 × 18 ≈ 8 個原始分——很粗略地說,會讓你的量尺閱讀分數少掉 30–40 分。讀得越快,就有越多題目能在你真實的正確率下被做到,罰分因而縮小;到了從容的速度,它便完全消失。

當你的速度像這樣會讓你失分時,app 會把它顯示為一個明確的「以考試節奏計」數字——提醒你閱讀講究的是速度,而不只是正確率。(聽力由機器控速,因此不需要這樣的調整。)

Happysaur 一邊閱讀並移動練習頁,一邊緊張地看著將流完的沙漏,說明估算考試表現也要考慮作答速度。


為何這勝過其他做法

我們評估過常見的候選方案。以下是誠實的比較。

做法 它給了什麼 我們為何沒有就此打住
單純累計平均 不偏、極簡 永不遺忘;無法追蹤進步;把所有答案一視同仁
固定 α 的 EMA 有界記憶、廉價 學習率固定;永久抖動;沒有不確定性;沒有地方加權
衰減式 Beta 事後分布(我們的做法) 自適應速率、有界記憶、內建信心、天然的加權
試題反應理論(IRT) 「黃金標準」的能力模型 需要從數千名應試者校準出每一題的難度——這是我們在裝置上沒有的資料
Elo / Glicko 評分 優雅、自適應 同樣需要我們無法信任的各題「對手」難度;它那套不確定性記帳,也重複了我們的衰減已經給出的東西
卡爾曼濾波(Kalman filter) 追蹤帶有不確定性的變動量 對是非題資料而言,它其實化約成本質相同的模型,卻帶著更笨拙的概似函數;Beta 形式才是自然的貼合

決定性的一點在此。那兩個「更精密」的模型——IRT 與 Elo——把它們的全部威力都放在各題的難度參數上,而要可靠地估出這些參數,需要一大群應試者作答同一批題目。單手刷990私密地在你的裝置上執行,並沒有這種全體規模的統計。把我們手上確實有的那些未經校準的難度標籤餵給這些模型,它們就會是一套精密機器、卻建立在搖晃的輸入之上。

與此同時,使用者真正感受到的每一個問題——抖動、遺忘、缺席的信心範圍、把模擬考和熱身題一視同仁——都活在更新規則裡,而非各題難度裡。衰減式 Beta 事後分布,是同時修好這一切的最小、最有原則的模型:

  • 它是真正貝氏的,所以估計值與其不確定性出自同一條乾淨的規則,而非事後硬加。
  • 它是一個自適應增益的 EMA,所以起步快、安定後沉穩、且永不凍結。
  • 它是共軛的,所以每次更新只是幾個加法與乘法——快速、精確、且離線可行。
  • 它有明確的證據計數,所以依近時性、重複、與來源加權,都能自然地推導出來。

簡言之,對於我們誠實擁有的資料而言,它是恰到好處的統計量。


誠實的但書

  • 它是學習輔助,不是官方分數。 真實 TOEIC 對受保護的題目採用 IRT 量尺;我們只能從你的練習中盡力逼近它。
  • 這些常數是推理得來的,不是擬合出來的。 記憶上限(約 40)、事前分布的強度、各個衰減率、以及答案權重,都是合理的預設值,而非對照一個大型校準集調校出來的數字。當你輸入一個真實回報的分數時,我們會(私密地)記錄我們的估計與那份真實基準之間的落差,正是為了讓這些數字能隨時間被精修。
  • 稀薄的資料就是稀薄的資料。 一開始,大多數大題仍停在 50% 的事前分布,所以早期的估計是粗略的——這也正是 app 在你給它更多資料以前,會顯示一個很寬的 ± 範圍的原因。

我們並沒有涵蓋一切——而且我們心裡有數。 上述那些因素,是我們能從你的練習中建模出來的:近時性、重複、考試情境加權、閱讀速度。但真實考試還取決於我們從這裡根本看不到的東西——當天的緊張與疲勞、你抽到的特定試卷、不熟悉的題目措辭、我們題庫的難度與真實考試的落差、以及你那天猜題的純粹運氣,還有其他種種。我們權衡了許多因素,但絕對不是全部,所以這個估計永遠不會精準,本來也不打算精準。如果你去考了真正的 TOEIC,而結果讓你意外——比我們顯示的高或低——我們非常希望能透過 app 的意見回饋功能聽到你的分享。告訴我們你認為是什麼牽動了你的分數,能幫助我們找出遺漏的因素,並為所有人把估計做得更準。

這個承諾誠實的版本是:在更多大題上、以更貼近真實的情境、答更多題,估計就會既朝真值移動,也告訴你它變得更有把握。這正是這個衰減式貝氏估計量所要交付的行為。


續集來了:當你考完試、真實成績單到手,這套估計會怎麼利用它——以及成績單上被多數人略過的 ABILITIES MEASURED 能力分析能做什麼?請讀〈多益成績單不只有分數〉。

← 所有文章