第 15 章 資料分析、平均數、變異數與標準差¶

本章介紹高中數學的重要統計內容:

平均數、中位數、眾數、變異數、標準差、加權平均、資料表處理等。

wxMaxima 雖不是專用統計軟體,但提供足夠的資料處理能力,能協助學生快速檢查答案。


15.1 建立資料列表¶

wxMaxima 使用 list 來存放資料:

In [1]:
data : [5, 7, 3, 9, 10, 4];
Out[1]:
\[\tag{${\it \%o}_{0}$}\left[ 5 , 7 , 3 , 9 , 10 , 4 \right] \]

15.2 平均數(mean)¶

平均數定義:

$$ \bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i $$

CAS 使用:

In [2]:
load(descriptive)$ /* 載入統計需要的套件 */
mean(data);
Out[2]:
\[\tag{${\it \%o}_{2}$}\frac{19}{3}\]
In [3]:
mean(data), numer;
Out[3]:
\[\tag{${\it \%o}_{3}$}6.333333333333333\]

加上 numer,以小數表示。

平均數也可用定義,把總和除以項數:

In [4]:
sum(data[i], i, 1, length(data)) / length(data);
Out[4]:
\[\tag{${\it \%o}_{4}$}\frac{19}{3}\]

15.3 中位數(median)¶

中位數為排序後的中間值。

CAS:

In [5]:
median(data);
Out[5]:
\[\tag{${\it \%o}_{5}$}6\]

因為這筆資料有 6 項,這裡傳會中間 2 個數的平均。


15.4 眾數(mode)¶

最常出現的數值。

wxMaxima 沒有直接代表眾數的指令。

可以用其它方法觀察:

使用discrete_freq(list) 傳回 [值, 出現次數]。

In [17]:
data1 : [3, 5, 2, 3, 3, 2, 5, 4, 3, 5, 7];
df1 : discrete_freq(data1);

val : df1[1];
freq : df1[2];

index_max : sublist_indices(freq, lambda([x], x = lmax(freq)));   /* 找出最大的 freq 的 index 位置 */

modes : makelist(val[i], i, index_max)$  /* 眾數的定義,傳回出現最多次數的值 */

modes;
Out[17]:
\[\tag{${\it \%o}_{36}$}\left[ 3 , 5 , 2 , 3 , 3 , 2 , 5 , 4 , 3 , 5 , 7 \right] \]
Out[17]:
\[\tag{${\it \%o}_{37}$}\left[ \left[ 2 , 3 , 4 , 5 , 7 \right] , \left[ 2 , 4 , 1 , 3 , 1 \right] \right] \]
Out[17]:
\[\tag{${\it \%o}_{38}$}\left[ 2 , 3 , 4 , 5 , 7 \right] \]
Out[17]:
\[\tag{${\it \%o}_{39}$}\left[ 2 , 4 , 1 , 3 , 1 \right] \]
Out[17]:
\[\tag{${\it \%o}_{40}$}\left[ 2 \right] \]
Out[17]:
\[\tag{${\it \%o}_{42}$}\left[ 3 \right] \]

在此例中,可以看到 3 出現 4 次,所以眾數是 3。

定義一個求眾數的自訂函數

把上面的方法延伸,直接定義一個求眾數的函數。

In [21]:
mode(list) := block(
        [df, val, freq, idx],

        /* 離散型資料的值與頻數 */
        df : discrete_freq(list),
        val : df[1],
        freq : df[2],

        /* 最大頻數的索引位置 */
        idx : sublist_indices(freq, lambda([x], x = lmax(freq))),

        /* 傳回所有眾數 */
        makelist(val[i], i, idx)
       )$

接著,只要輸入:

In [22]:
data2 : [3, 5, 2, 3, 3, 2, 5, 4, 3, 5, 7];
    mode(data2);
Out[22]:
\[\tag{${\it \%o}_{47}$}\left[ 3 , 5 , 2 , 3 , 3 , 2 , 5 , 4 , 3 , 5 , 7 \right] \]
Out[22]:
\[\tag{${\it \%o}_{48}$}\left[ 3 \right] \]

就可以得到眾數。


15.5 變異數與標準差¶

▶ 定義¶

對於資料 $x_1, x_2, \dots, x_n$:

變異數:

$$ \sigma^2 = \frac{1}{n}\sum (x_i - \bar{x})^2 $$

標準差:

$$ \sigma = \sqrt{\sigma^2} $$

計算:

In [23]:
data : [3, 5, 2, 3, 3, 2, 5, 4, 3, 5, 7];
var(data), numer;    /* 變異數 */
std(data), numer;    /* 標準差 */
Out[23]:
\[\tag{${\it \%o}_{49}$}\left[ 3 , 5 , 2 , 3 , 3 , 2 , 5 , 4 , 3 , 5 , 7 \right] \]
Out[23]:
\[\tag{${\it \%o}_{50}$}2.148760330578513\]
Out[23]:
\[\tag{${\it \%o}_{51}$}1.465865045145191\]

15.6 樣本變異數與樣本標準差¶

適用於有限個樣本數的變異數和標準差,此時分母是用 $n - 1$。

$$ s^2 = \frac{1}{n-1}\sum (x_i - \bar{x})^2 $$

計算

使用 var1 和 std1。

In [24]:
data : [3, 5, 2, 3, 3, 2, 5, 4, 3, 5, 7];
var1(data), numer;
std1(data), numer;
Out[24]:
\[\tag{${\it \%o}_{52}$}\left[ 3 , 5 , 2 , 3 , 3 , 2 , 5 , 4 , 3 , 5 , 7 \right] \]
Out[24]:
\[\tag{${\it \%o}_{53}$}2.363636363636364\]
Out[24]:
\[\tag{${\it \%o}_{54}$}1.537412229571615\]

15.7 加權平均¶

加權平均:

$$ \bar{x} = \frac{\sum w_i x_i}{\sum w_i} $$

▶ CAS 計算¶

假設:

In [25]:
x : [70, 80, 90];
w : [2, 3, 5];
Out[25]:
\[\tag{${\it \%o}_{55}$}\left[ 70 , 80 , 90 \right] \]
Out[25]:
\[\tag{${\it \%o}_{56}$}\left[ 2 , 3 , 5 \right] \]
In [26]:
sum(w[i]*x[i], i,1,3) / sum(w[i], i,1,3);
Out[26]:
\[\tag{${\it \%o}_{57}$}83\]

得到加權平均。


15.8 分組資料(級距)之平均¶

若資料分組(例如統計表),需要用組中點計算:

組中點:

$$ m_i = \frac{\text{下限}+\text{上限}}{2} $$

平均數:

$$ \bar{x} = \frac{\sum m_i f_i}{\sum f_i} $$

CAS:

In [27]:
mid : [(0+10)/2, (10+20)/2, (20+30)/2];
freq : [5, 12, 8];
sum(mid[i]*freq[i], i,1,3) / sum(freq[i], i,1,3), numer;
Out[27]:
\[\tag{${\it \%o}_{58}$}\left[ 5 , 15 , 25 \right] \]
Out[27]:
\[\tag{${\it \%o}_{59}$}\left[ 5 , 12 , 8 \right] \]
Out[27]:
\[\tag{${\it \%o}_{60}$}16.2\]

15.9 數據排序、最大值、最小值¶

In [28]:
data : [3, 5, 2, 3, 3, 2, 5, 4, 3, 5, 7];
sort(data);
lmax(data);
lmin(data);
Out[28]:
\[\tag{${\it \%o}_{61}$}\left[ 3 , 5 , 2 , 3 , 3 , 2 , 5 , 4 , 3 , 5 , 7 \right] \]
Out[28]:
\[\tag{${\it \%o}_{62}$}\left[ 2 , 2 , 3 , 3 , 3 , 3 , 4 , 5 , 5 , 5 , 7 \right] \]
Out[28]:
\[\tag{${\it \%o}_{63}$}7\]
Out[28]:
\[\tag{${\it \%o}_{64}$}2\]

得:

(data)  [3,5,2,3,3,2,5,4,3,5,7]
(%o35)  [2,2,3,3,3,3,4,5,5,5,7]
(%o36)  7
(%o37)  2

15.10 四分位數¶

CAS:

In [16]:
data : [3,5,2,3,3,2,5,4,3,5,7];
quantile(data, 0.25);
quantile(data, 0.50);   /* 中位數 */
quantile(data, 0.75);
Out[16]:
\[\tag{${\it \%o}_{32}$}\left[ 3 , 5 , 2 , 3 , 3 , 2 , 5 , 4 , 3 , 5 , 7 \right] \]
Out[16]:
\[\tag{${\it \%o}_{33}$}3.0\]
Out[16]:
\[\tag{${\it \%o}_{34}$}3\]
Out[16]:
\[\tag{${\it \%o}_{35}$}5.0\]

15.11 練習題¶

  1. 計算下列資料的平均數、中位數、眾數:

    $[6, 8, 6, 10, 5, 7, 6]$

  2. 求變異數與標準差:

    $[3, 4, 5, 6, 7]$

  3. 三科成績:

    • 數學 80(權重 3)

    • 英文 70(權重 2)

    • 自然 90(權重 5)

    求加權平均。

  4. 對分組資料:

    區間 人數

    • 0–10: 4
    • 10–20: 6
    • 20–30: 5

    求估計平均數。

  5. 計算資料的最大、最小、排序與四分位數:

    $[2,9,1,4,7,6]$


15.12 本章小結¶

本章你已學會:

  • 使用 wxMaxima 處理資料列表

  • 計算平均數、中位數、眾數

  • 變異數與標準差(母體與樣本)

  • 加權平均

  • 分組資料的平均

  • 資料排序、最大值、最小值、四分位數

下一章將進入本書的最後主題:wxMaxima 的應用策略。

回首頁