共用方式為


Excel 統計函數:GROWTH

總結

本文說明 Excel 中的 GROWTH 函式、說明函式的使用方式,以及比較 Excel 2003 和更新版本的 Excel 函式結果,以及舊版 Excel 中 GROWTH 的結果。 GROWTH 是藉由呼叫相關函式 LINEST 來評估。 針對 Excel 2003 及其後續版本,已對 LINEST 進行了廣泛的變更,並已概要說明,指出其對 GROWTH 的影響。

Microsoft Excel 2004 for Macintosh 資訊

Excel 2004 for Mac 中的統計函式是使用相同的演算法更新 Excel 2003 和更新版本中的統計函數。 本文中描述函式的運作方式或 Excel 2003 或更新版本的 Excel 如何修改函式的任何資訊,也適用於 Mac 版 Excel 2004。

詳細資訊

GROWTH(known_y,known_x,new_x,constant)函數用於執行回歸分析,其中會擬合一條指數曲線。 會使用最小平方準則,而 GROWTH 會嘗試在該準則下找出最佳適配。 Known_y 代表「相依變數」的數據,而known_x代表一或多個「獨立變數」上的數據。 GROWTH 說明文件討論了罕見的情況,即可以省略第二或第三個參數。

假設有 p 預測變數,GROWTH 基本上會呼叫 LOGEST。 LOGEST 擬合一種形式的方程:

y = b * (m1^x1) * (m2^x2) * ... * (mp^xp)

決定係數 b、m1、m2、...、mp 的值,以便最佳地擬合 y 數據。

如果最後一個自變數 「constant」 設定為 TRUE,您希望回歸模型在回歸模型中包含乘法係數 b。 如果設定為 FALSE,則基本上將 b 設定為 1 來排除。 最後一個自變數是選擇性的;如果省略自變數,則會解譯為 TRUE。

為了方便本文其餘部分的說明,假設數據會排列在數據行中,讓 known_y 的 是 y 數據的數據行,而 known_x 是 x 數據的一或多個數據行。 每個數據行的維度(長度)必須相等。 New_x 也會假設在數據行中排列,而且new_x的數據行數目必須與 known_x 相同。 如果數據未在數據行中排列,則以下的所有觀察都同樣正確,但更容易討論單一(最常使用的)案例。

在您計算最適合的回歸模型之後(基本上呼叫 Excel 的 LOGEST 函式),GROWTH 會傳回與 new_x 相關聯的預測值。

本文使用範例來示範 GROWTH 與 LOGEST 的關聯性,以及指出在 Excel 2003 之前的 Excel 版本中,LOGEST 的問題會轉譯成 GROWTH 的問題。 GROWTH 會有效地呼叫 LOGEST、執行 LOGEST、在 LOGEST 輸出中使用回歸係數來計算與 new_x 的每個數據列相關聯的預測 y 值,並將這個預測的 y 值數據行呈現給您。 因此,您必須知道執行 LOGEST 時發生問題。 呼叫 LOGEST 時,它會有效地呼叫 LINEST。 雖然 GROWTH 和 LOGEST 的程式代碼尚未針對 Excel 2003 和更新版本的 Excel 重寫,但已對 LINEST 程式代碼進行大量變更(和改進)。

作為本文的補充,強烈建議使用下列有關 LINEST 的文章。 其中包含在 Excel 2003 之前的 Excel 版本中,LINEST 的數個範例和文件問題。

如需 LINEST 的詳細資訊,請選取下列文章編號,以檢視Microsoft知識庫中的文章:

828533 Excel 2003 和 Excel 2004 for Mac 中 LINEST 函式的描述

建議使用針對 Excel 2003 修訂的 LINEST 說明檔。

下列有關 LOGEST 的文章說明 LOGEST 如何與 LINEST 互動。 此處會省略這些詳細數據。

如需詳細資訊,請參閱 Excel 統計函數:LOGEST

由於本文的重點在於 Excel 2003 之前的 Excel 版本中的數值問題,因此本文沒有許多使用 GROWTH 的實際範例。 GROWTH 中的說明檔包含實用的範例。

語法

GROWTH(known_y's, known_x's, new_x's, constant)

自變數、known_y、known_x 和 new_x 必須是具有相關維度的陣列或單元格範圍。 如果 known_y 是一個依 m 列的數據行,則 known_x 是 c 數據行,其中 c 大於或等於一個。 C 是預測變數的數目;m 是數據點的數目。 New_x 必須是 c 列和 r 行,其中 r 大於或等於一。 (如果數據是在數據行中配置而不是數據列中,則維度中的類似關聯性必須持續存在。)常數是一個必須設定為 TRUE 或 FALSE 的邏輯參數(或 Excel 解讀為 FALSE 或 TRUE 的 0 或 1)。 GROWTH 的最後三個自變數都是選擇性的;如需省略第二個自變數、第三個自變數或兩者的選項,請參閱 GROWTH 說明檔;省略第四個自變數會解譯為TRUE。

GROWTH 最常見的用法包括兩個包含數據的單元格範圍,例如 GROWTH(A1:A100、B1:F100、B101:F108、TRUE)。 由於通常有多個預測變數,因此此範例中的第二個自變數包含多個數據行。 在此範例中,有100個主體,每個主體有一個因變數值(known_y),以及五個自變數值(known_x的數值)。 還有八個假設主題,您想要使用 GROWTH 來計算預測的 y 值。

使用方式範例

提供 Excel 工作表範例來說明下列重要概念:

  • GROWTH 如何與 LOGEST 互動
  • GROWTH(或 LOGEST 和 LINEST)在 Excel 版本早於 Excel 2003 使用共線性 known_x's 所發生的問題

備註

LINEST 內容中第二個專案符號專案的廣泛討論,請參閱 LINEST 相關文章。

若要說明 GROWTH 函數,請建立空白 Excel 工作表、複製下表、選取空白 Excel 工作表中的儲存格 A1,然後貼上資料,讓表格填滿工作表中的儲存格 A1 至 K35。

一個 B C D E F G H J K
y: x's:
=EXP(F2) 1 2 1 1
=EXP(F3) 3 4 1 2
=EXP(F4) 4 5 1 3
=EXP(F5) 6 7 1 4
=EXP(F6) 7 8 1 5
新的 x's: 9 11
12 14
使用欄位 B、C 進行增長分析: Excel 2002 和舊版 Excel 的值:
Excel 2003 及更高版本的值:
=GROWTH(A2:A6, B2:C6, B7:C8, TRUE) #NUM! 472.432432563203
=GROWTH(A2:A6,B2:C6,B7:C8,TRUE) #NUM! 3400.16400895377
僅使用 B 欄的增長
=GROWTH(A2:A6,B2:B6,B7:B8,TRUE) 472.432432563203 472.432432563203
=GROWTH(A2:A6,B2:B6,B7:B8,TRUE) 3400.16400895377 3400.16400895377
在 Excel 2003 和更新版本的 Excel 中,LOGEST 結果的擬合值
使用欄 B、C 使用 Col B
=EXP(LN(K24)*1 + LN(J24)*B7 + LN(I24)*C7) =EXP(LN(J31)*1 + LN(I31)*B7)
=EXP(LN(K24)*1 + LN(J24)*B8 + LN(I24)*C8) =EXP(LN(J31)*1 + LN(I31)*B8)
LOGEST 使用欄位 B、C: Excel 2002 和舊版 Excel 的值: Excel 2003 及以後版本的值:
=LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) #NUM! #NUM! #NUM! 1 1.9307233720034 1.26724101129183
=LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) #NUM! #NUM! #NUM! 0 0.043859649122807 0.206652964726136
=LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) #NUM! #NUM! #NUM! 0.986842105263158 0.209426954145848 #N/A
=LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) #NUM! #NUM! #NUM! 225 3 #N/A
=LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) =LOGEST(A2:A6,B2:C6,TRUE,TRUE) #NUM! #NUM! #NUM! 9.86842105263158 0.131578947368421 #N/A
僅使用 col B 的 LOGEST
=LOGEST(A2:A6,B2:B6,TRUE,TRUE) =LOGEST(A2:A6,B2:B6,TRUE,TRUE) 1.9307233720034 1.26724101129183 1.9307233720034 1.26724101129183
=LOGEST(A2:A6,B2:B6,TRUE,TRUE) =LOGEST(A2:A6,B2:B6,TRUE,TRUE) 0.0438596491228071 0.206652964726136 0.043859649122807 0.206652964726136
=LOGEST(A2:A6,B2:B6,TRUE,TRUE) =LOGEST(A2:A6,B2:B6,TRUE,TRUE) 0.986842105263158 0.209426954145848 0.986842105263158 0.209426954145848
=LOGEST(A2:A6,B2:B6,TRUE,TRUE) =LOGEST(A2:A6,B2:B6,TRUE,TRUE) 224.999999999999 3 225 3
=LOGEST(A2:A6, B2:B6, TRUE, TRUE) =LOGEST(A2:A6,B2:B6,TRUE,TRUE) 9.86842105263158 0.131578947368421 9.86842105263158 0.131578947368421

備註

在新的 Excel 工作表中貼上此表格之後,請選取 [ 貼上選項 ] 按鈕,然後選取 [ 比對目的地格式設定]。 在仍選取貼上的範圍的時候,根據您正在執行的 Excel 版本,使用下列其中一個程序:

  • 在 Microsoft Office Excel 2007 中,選取 [首頁] 索引標籤,選取 [單元格] 群組中的 [格式],然後選取 [自動調整數據行寬度]。
  • 在 Excel 2003 中,指向 [格式] 功能表上的 [],然後選取 [自動調整選取範圍]。

GROWTH 的數據位於儲存格 A1:C8 中。 (單元格 D2:D6 中的專案不是數據的一部分,而是用於下文說明。)舊版及新版 Excel 中兩個不同模型的 GROWTH 結果分別顯示在單元格 E10:E16 和 I10:I16 中。 單元格 A10:A16 的結果會對應至您使用的 Excel 版本。 現在,當您調查 GROWTH 呼叫 LOGEST 的方式,以及 GROWTH 如何使用 LOGEST 結果時,請將焦點放在 Excel 2003 和更新版本的 Excel 結果上。

GROWTH 和 LOGEST 可視為在下列步驟中互動:

  1. 你稱 GROWTH(known_y,known_x,new_x,常數)
  2. GROWTH 呼叫 LOGEST(known_y 的、known_x 的、常數、TRUE)
  3. 從這個對 LOGEST 的呼叫取得回歸係數。 這些係數會出現在 LOGEST 輸出數據表的第一個數據列中。
  4. 針對每個new_x的數據列,會根據這些LOGEST係數和該數據列中new_x的值來計算預測的 y 值。
  5. 步驟 4 中的計算結果會返回至對應於 new_x 所在列的 GROWTH 輸出的適當儲存格。

如果 GROWTH 是傳回適當的結果,則 LOGEST 必須在步驟 3 中產生適當的結果。 因為步驟 3 中的 LOGEST 評估需要呼叫 LINEST,所以 LINEST 必須有良好的行為。 在 Excel 2003 之前的 Excel 版本中,LINEST 的問題源於共線預測變數列。 在舊版 Excel 中,當 GROWTH 的最後一個參數設為 FALSE 時,LINEST 和 LOGEST 還會有其他問題。然而,這些問題不會影響 GROWTH 的結果,因此不在這裡討論。

如果至少有一個數據行 c 可以表示為其他數據行 c1、c2 及其他數據行的線性組合,那麼預測變數列(known_x's) 就是共線的。 數據行 c 經常稱為備援,因為它包含的資訊可以從數據行 c1、c2 和其他數據行建構。 共線性存在的基本原則是,無論冗餘欄位是否包含在原始數據中或從中移除,結果都不應受到影響。 因為 Excel 2003 之前的 EXCEL 版本中的 LINEST 沒有尋找共因性,因此很容易違反此原則。 如果至少一個預測數據行 c 幾乎可以表示為其他數據行 c1、c2 及其他數據行的倍數之和,則預測數據行幾乎共線。 在此情況下,「幾乎相等」表示 c 中各項目與 c1、c2 和其他項目的加權總和中相應項目的平方偏差和很小。 “非常小”的數值可能小於 10^(-12)。

第一個模型在數據列 10 到 12 中,會使用數據行 B 和 C 作為預測值,並要求 Excel 建立常數的模型模型(最後一個自變數設定為 TRUE)。 然後,Excel 會有效地插入一個類似於儲存格 D2:D6 的額外預測欄。 很容易發現,數據列 2 到 6 中 C 欄的專案與 B 和 D 數據行中對應專案的總和完全相等。因此,因為數據行 C 是下列專案之倍數的總和,所以存在共數值:

  • 欄位 B
  • 因為忽略了 LOGEST 的第三個參數或將其設為 TRUE,因此插入了含有 1 的新增列(「常見」情況)

這會導致 Excel 2003 之前的 Excel 版本無法計算結果這類數值問題。 因此,GROWTH 輸出數據表會填入 #NUM!。

第二個模型,在第 14 到 16 列,是任何 Excel 版本可以成功處理的模型。 沒有共因性,使用者會再次要求 Excel 建立常數的模型。 基於下列原因,這裡包含此模型:

  • 首先,這是最典型的實際案例:沒有共合性存在。 Excel的所有版本中都已充分處理這些個案。 如果您擁有舊版 Excel,就應該放心地知道,如果您使用的是舊版 Excel,則數值問題不太可能發生在最常見的實際案例中。
  • 其次,此範例用來比較兩個模型中 Excel 2003 和更新版本的 Excel 行為。 大部分的主要統計套件會分析共線性、移除模型中其他數倍數的總和數據行,並以「數據行 C 是線性相依於其他預測值數據行並已從分析中移除」等訊息來警示使用者。

在 Excel 2003 和更新版本的 Excel 中,這類訊息不會在警示或文字字串中傳達,而是在 LOGEST 輸出數據表中傳達。 GROWTH 沒有將這類訊息傳遞給用戶的機制。 在 LOGEST 輸出數據表中,回歸係數為一,且其標準誤差為零,會對應至已從模型中移除之數據行的係數。 LOGEST 輸出數據表包含在數據列 23 到 35 中,對應到數據列 10 到 16 中的 GROWTH 輸出。 單元格 I24:I25 顯示的是已刪除的冗餘預測列。 在此情況下,LOGEST 選擇移除數據行 C(單元格 I24、J24、K24 中的係數分別對應至 C、B 和 Excel 的常數數據行)。 當有共因性存在時,可以移除涉及的任何一個數據行,而且選擇是任意的。

在第二個模型的第 30 到 35 行中,沒有共線性,也不會移除任何列。 您可以看到預測的 y 值在這兩個模型中都相同。 之所以發生此問題,是因為移除作為其他列的倍數之和的多餘欄,並不會降低結果模型的擬合優度。 這些列被精確移除,因為它們在尋找最佳的最小平方擬合時並未提供任何附加的價值。 此外,如果您在 Excel 2003 和更新版本的 Excel 中檢查 I23:K35 單元格中的 LOGEST 輸出,您會注意到輸出數據表的最後三個數據列相同。 此外,單元格 I31:J32 和 J24:K25 的內容相同。 它示範當模型中包含數據行 C 時,會取得相同的結果,但發現是多餘的(儲存格 I24:K28 中的輸出),就像在 LOGEST 執行之前排除數據行 C 時一樣(儲存格 I31:J35 中的輸出)。 這符合共線性存在的基本原則。

在儲存格 A18:C21 中,Microsoft會使用 Excel 2003 和更新版本的 Excel 中的數據,以說明 GROWTH 如何取得 LOGEST 輸出並計算相關的預測 y 值。 藉由檢查儲存格 A20 到 A21 和儲存格 C20 到 C21 中的公式,您可以看到 LOGEST 係數如何在兩個模型中結合 new_x 的數據,這些數據位於儲存格 B7 到 C8(使用 B 和 C 欄作為預測變數;僅使用 B 欄作為預測變數)。

在 Excel 2003 和更新版本中的 LOGEST 中,會識別共線性,因為 LOGEST 會呼叫 LINEST。 LINEST 使用不同的方法來解決回歸係數。 這種方法是 QR 分解。 LINEST 文章包含小型範例 QR 分解演算法的逐步解說。

舊版 Excel 中的結果摘要

在 Excel 2003 之前的版本中,GROWTH 的結果受到不利影響,因為 LOGEST 的結果不準確,而這不準確性又源於 LINEST 的不正確結果。

LINEST 是使用一種方法來計算,該方法不會注意同構性問題。 共線性的存在導致捨入誤差、回歸係數的不適當標準錯誤,以及不適當的自由度。 有時候捨入問題會嚴重到讓 LINEST 以 #NUM!填滿它的輸出資料表。 如果在實務中絕大多數情況下,您可以確信沒有共線(或幾乎共線)的預測變量列,那麼 LINEST 通常會提供可接受的結果。 因此,如果使用者可以看到沒有共線(或幾乎共線)的預測變數行,則可以同樣放心。

Excel 2003 和更新版本中 Excel 的結果摘要

LINEST 的改善包括切換至判斷回歸係數的 QR 分解方法。 QR 分解具有下列優點:

  • 更好的數值穩定性(一般而言,較小的捨入錯誤)
  • 共線性問題分析

本文所說明的 Excel 版本早於 Excel 2003 的所有問題,都已針對 Excel 2003 和更新版本的 Excel 更正。 LINEST 中的這些改進可轉譯為LOGEST和 GROWTH的改善。

結論

GROWTH 的效能已改善,因為針對 Excel 2003 和更新版本的 Excel,LINEST 已大幅改善。 LINEST中的改善也會影響LOGEST,因為 GROWTH 會呼叫LOGEST。 舊版 Excel 的使用者在使用 GROWTH 之前,應該先確認預測欄不是共線的。

本文和 LINEST 文章中呈現的大部分內容,一開始可能會對 Excel 2003 之前的 Excel 版本使用者發出警示。 不過,應該指出,只有少數情況會出現共線性問題。 之前的 Excel 版本在沒有共線性時會給出可接受的 GROWTH 結果。

幸運的是,LINEST的改善也會影響分析工具Pak 的線性回歸工具(此工具稱為LINEST)和其他兩個相關的Excel函式:LOGEST和TREND。