用 AI 做統計分析:拿 Auto 一路做到底,每一步都核對

課前準備 C — 選讀,不列入評分
資料字典|小步清理|讀圖找證據|讀模型比較|兩種標準誤|反駁與紀錄
向下捲動開始互動↓
📌 本頁使用方式(課前 · AI 協作)

① 依序閱讀:每節先讀說明;遇到互動元件時,先預測結果,再操作驗證。 ② 對照程式範例:程式碼卡下方的「來源」標了課程練習筆記本(lab);需要實作時,再打開原始筆記本對照。 ③ 檢查理解:答錯時先看回饋,再回到相關說明;標為延伸的內容可留待第二輪。 ④ 最後翻關鍵詞彙卡自測術語,並用 重點速查與來源查閱。

教科書:An Introduction to Statistical Learning with Applications in Python(ISLP);
AI 協作參考書:AI-Assisted Statistics for Data Scientists(第三版)。章節旁的來源標記可點到本頁書目。

CONTENTS · 內容目錄
PROLOGUE · 開場

AI 擅長什麼、會在哪裡出錯 參考:AI 協作的責任界線(前言)

這一頁用一份資料走完一次小分析: 沿用 00B 取得的課程 Auto.csv,從清理 horsepower 開始, 一路到讀圖、比較模型與讀標準誤。每一步都讓 AI 起草,再由你核對。概念參考 Bruce、Bruce 與 Gedeck 的 《AI-Assisted Statistics for Data Scientists》第三版,完整書目見頁末。

這本書的前言區分兩種工作:定義清楚的標準題,例如「對這兩欄做簡單迴歸」,AI 通常能給出教科書式的答案; 目標模糊的專案,例如「這份資料能告訴我們什麼」,需要你先決定問題、資料能代表誰、哪些證據才算數。 後者不能只靠一段能跑的程式完成。

分流三問 交給 AI 之前,先問:①答案明確嗎?②我能很快核對嗎?③錯了會造成什麼後果?三題都偏向「是、能、不嚴重」,就適合讓 AI 起草;任何一題答不出來,就先保留由人主導的步驟。
查閱:常見任務的分級與至少要做的檢查
分級適合的任務至少要做的檢查
較低風險你已懂概念、做過多次的資料整理;查語法;讀錯誤訊息;標準圖表的繪圖程式;檔案格式轉換執行並比對一個已知小例子
中風險EDA、特徵工程、模型與檢定的程式草稿、解讀圖表與模型輸出核對假設、資料切分、單位與完整輸出
高風險因果解釋、族群代表性、模型上線、正式結論與政策建議由人主導;資料與研究設計提供依據,必要時加領域審查

書中轉引的低風險清單裡,寫程式與除錯的項目多半附了前提:你在概念上已經懂、自己先試過,AI 只幫你補語法或樣板。清單也列了學習用途,例如理解基本程式概念或參數的意義;這時請 AI 解釋可以,但要回到文件或課程內容核對。

AI 為什麼會說錯,而且說得很像對的

書中提出幾個解釋,後面幾節的例子都會用到:

兩個常見誤會
AI 能把分析跑完,為什麼還不能直接交報告?
能跑的程式只回答「怎麼算」。這份樣本代表誰、指標是否回答你的問題、結論能推到多遠,都需要你判斷。
模型越新越強,這些問題就會消失嗎?
新版本在算術與程式上確實持續進步,但同一題在不同版本、甚至同一版本重問時都可能給出不同答案。所以本頁每一步都附上核對方法,不依賴某個特定模型。
分工 · 自我檢測

AI 已替你完成一份顧客流失模型。下列哪件事最後仍必須由你決定?

(A) 把欄位名稱改成 Python 可以使用的格式
(B) 替模型輸出的表格加上清楚的標題與單位
(C) 這份樣本能不能支持對所有顧客採取留客措施
PART 01 · 交代資料

用資料字典把脈絡交給 AI 參考:資料字典與用 AI 讀圖(第 1 章)參考:生成式 AI 與提示設計(第 10 章)

AI 只看得到你給它的內容。欄位名稱通常很短,year 是西元年還是兩位數編碼?origin 的 1、2、3 代表什麼? ? 是遺漏還是一種車款?這些答案要查資料字典。書中建議把資料字典寫成 YAML 這類機器可讀、人也看得懂的格式,連同幾列樣本一起交給 AI。

下面是 Auto 的一份精簡字典。內容依 ISLP 的 Auto 資料說明 與課程筆記本的實際輸出整理;說明文件沒寫的事(例如缺值的原因),就明寫「待確認」,不要自己補上。

name: Auto source: ISLP Auto 資料說明;課程 Auto.csv(00B 取得) size: 課程 Auto.csv 有 397 列;其中 5 列的 horsepower 缺值 missing_codes: horsepower: "?" # 只出現在這一欄 why_missing: 待確認 # 說明文件沒寫這 5 列為何缺值 features: mpg: 每加侖英里數,數值 horsepower: 引擎馬力,數值;原始檔以 "?" 表示缺值 weight: 車重(磅),數值 year: 車款年份,70–82 代表 1970–1982 origin: 產地編碼,1 = 美國、2 = 歐洲、3 = 日本 name: 車名;同名的車可能出現不只一次

有了字典,再用書中整理的提示原則把任務說清楚:方向(現在只做什麼)、格式(要交回什麼)、 例子(一個正確的小例子;只用來示範格式時,內容不必是真實資料)、驗收(怎樣才算完成)。 複雜的工作先拆成幾個小任務,每個小任務各寫一個提示。

從模糊要求改成可驗收任務 不要只說:「幫我清理這份資料。」
改成:「附上資料字典與前 10 列。現在只處理 horsepower:依字典把 ? 轉成缺值,整欄轉成數值。回傳 pandas 程式,並列出轉換前後的 dtype、缺值數與列數。不得刪列。字典沒寫清楚的地方,先列問題,不要自行假設。」
查閱:提示要素與 Auto 例句
要素你要說清楚什麼Auto 例句
方向現在在哪一階段、這次只做什麼「先處理 horsepower,不要建模」
格式工具、輸入輸出與呈現方式「回傳可執行的 pandas 程式與前後對照表」
例子一個正確小例子或預期結果「字串 '?' 應轉成 NaN,'130' 應轉成 130.0」
脈絡資料字典、單位、樣本範圍、已做步驟與限制「year 是 70–82 的兩位數編碼」
驗收怎樣才算完成、哪些條件不能破壞「列數不變;新增缺值數恰好等於 ? 的個數」
分工大任務拆成哪些小任務「清理、畫圖、建模分三次問」
交代資料 · 自我檢測

你請 AI 解讀 origin 對 mpg 的影響,但沒有附資料字典。最可能出現什麼問題?

(A) AI 會拒絕回答,因為缺少資料
(B) 沒有影響,AI 已經看過很多 Auto 資料
(C) AI 可能把 1、2、3 當成連續數值,或自己猜一套產地對應
PART 02 · 小步清理

生成、執行、修正,再親自驗收 參考:AI 分析的限制與責任(第 11 章)

書中描述 AI 寫程式的可靠流程:生成 → 執行 → 解析錯誤 → 修改 → 重跑。這個流程能讓程式跑得起來, 但「能跑」和「做對」是兩件事。常見的兩種失敗是:程式報錯;或者程式沒報錯,卻做了你沒要求的事。

回到 horsepower 的清理任務。假設第一次只說「幫我清理 Auto」,AI 交回的程式用 dropna() 把含缺值的列整列刪掉。 程式能跑,也沒有警告,但它把兩個決定混在一起了:

  1. 清理:把 ? 轉成缺值、整欄轉成數值。這一步不應該改變列數。
  2. 分析範圍:建模時要不要排除缺值的列。課程 lab 在這一步改用 392 筆完整資料;這是合理的分析決定,但要另外記錄, 包括排除了幾列、為什麼。

分開之後,每一步都有清楚的驗收條件。pandas 的寫法(na_values、dropna)在 P4 遺漏值 有完整練習,這裡只看怎麼驗收 AI 交回的程式。

驗收項目怎麼判斷
列數清理前後應相同;不同就追查是哪一行刪了列
型態horsepower 轉換後應能進行數值運算
缺值新增的缺值數應恰好等於原本 ? 的個數,不多也不少
其他欄沒有要求修改的欄位,內容應完全不變
小心寫死答案 如果你只告訴 AI「缺值應該是 5 個」,它可能反覆修改,最後直接寫出一個回傳 5 的程式。AI 同時想滿足好幾個目標,其中一個是回應你的要求。驗收時要換一個輸入(例如多放一個 ?),確認輸出會照規則跟著改變。
讓 AI 自我檢查時怎麼問
可以問「為什麼這段程式是對的」嗎?
書中提醒,AI 補充的解釋常是錯誤出現的地方。更好的問法是:「這段程式假設了什麼?這些假設有沒有被程式強制檢查?什麼輸入會讓它失敗?」
除錯時要給 AI 什麼?
完整錯誤訊息、套件版本、最小重現程式與你預期的行為。請它先說明最可能的原因,再提出最小修改。
查閱:每一輪的交付物與通過條件
每一輪交付物通過才往下走
1. 先說清楚任務一個小任務與驗收條件AI 沒有自行補關鍵假設
2. 生成最小可執行程式與必要說明看得懂改了哪些地方
3. 親自執行錯誤訊息、警告、完整輸出看的是實際執行結果,不是 AI 的描述
4. 對照預期小例子、列數、摘要或測試能跑,而且做對
5. 保存再擴大通過的版本與下一個小任務一次只增加一個不確定來源
小步清理 · 自我檢測

AI 的清理程式沒有報錯,列數與缺值數也和你預期的一樣。下一步最合理的是什麼?

(A) 換一個邊界小例子,檢查輸入改變時輸出是否照規則改變
(B) 直接接受,因為能跑而且數字正確
(C) 請 AI 再寫一段更詳細的理由
PART 03 · 讀圖找證據

AI 的圖說要能用資料重算 參考:AI 分析的限制與責任(第 11 章)

新的 AI 工具可以直接讀圖片。你把圖貼上去,請它寫一段解讀,它通常能指出主要趨勢,再追問幾次,還可能提出你沒想到的分組或後續分析。 這很有用。但書中的例子也顯示,模型會把密集區的範圍讀偏,或寫出圖上沒有的內容,語氣卻一樣篤定。

從這一節起,圖、摘要與模型都沿用課程 lab 的 392 筆完整資料,也就是排除 horsepower 缺值 5 列後的版本。 如果你用的是清理後仍保留 397 列的資料,摘要數字會略有不同(例如 mpg 的平均與第一四分位數)。

在 Auto 上試一次。執行課程 Ch01 lab 的 pairplot,把圖交給 AI 解讀:

課程 Ch01 · 成對散布圖
# 欄位選取與資料清理/轉換;Seaborn 視覺化:變數成對關係圖 sns.pairplot(Auto.loc[:,["mpg","displacement", "horsepower", "weight", "cylinders"]], hue="cylinders");

請自己執行這一格,再把圖交給 AI。看看它怎麼描述 mpg 與 horsepower 的關係,以及不同汽缸數的分組。

來源:Ch01-lab-zh.ipynb

AI 的描述可能大致正確:馬力越大,每加侖跑的英里數越少,而且關係是彎的,不是直線。接下來要做的,是把它的每一句話分成三類:

AI 說的話例子你怎麼核對
圖上看得到的「馬力越高,mpg 越低,而且曲線往右變平」回到圖確認;用摘要數字或分組平均重算
要重算才能確認的「中間一半的車在 75 到 125 馬力之間」對照 describe() 的 25% 與 75% 分位數;說「多數」時則直接算區間內的比例
圖上根本沒有的「新車比較省油」pairplot 沒有畫 year;圖沒有編碼的條件,不能出現在圖的解讀裡
課程 Ch01 · 用摘要數字核對讀圖
# 檢視資料基本資訊/摘要 Auto.describe()
預期輸出
              mpg   cylinders  displacement  horsepower       weight  \
count  392.000000  392.000000    392.000000  392.000000   392.000000   
mean    23.445918    5.471939    194.411990  104.469388  2977.584184   
std      7.805007    1.705783    104.644004   38.491160   849.402560   
min      9.000000    3.000000     68.000000   46.000000  1613.000000   
25%     17.000000    4.000000    105.000000   75.000000  2225.250000   
50%     22.750000    4.000000    151.000000   93.500000  2803.500000   
75%     29.000000    8.000000    275.750000  126.000000  3614.750000   
max     46.600000    8.000000    455.000000  230.000000  5140.000000   

       acceleration        year      origin  
count    392.000000  392.000000  392.000000  
mean      15.541327   75.979592    1.576531  
std        2.758864    3.683737    0.805518  
min        8.000000   70.000000    1.000000  
25%       13.775000   73.000000    1.000000  
50%       15.500000   76.000000    1.000000  
75%       17.025000   79.000000    2.000000  
max       24.800000   82.000000    3.000000

horsepower 的 25%、50%、75% 分位數是 75、93.5、126,最小 46、最大 230。AI 說「中間一半的車」落在哪裡,用這組數字就能判斷。

來源:Ch01-lab-zh.ipynb

書中整理了幾種讀圖時常見的錯誤,在 Auto 上都可能遇到:

🔗 接回本站課程 mpg 與 horsepower 的彎曲關係,會在 線性迴歸的潛在問題 用殘差圖正式檢查,也是下一節比較線性與多項式模型的起點。
延伸:請 AI 解讀主成分載荷(學完非監督式學習再看)

書中也示範把主成分分析的載荷貼給 AI,請它說明每個主成分代表什麼。在本站的非監督式學習 lab 上做同一件事,有兩個陷阱要先處理。

課程 Ch12 · 欄位名稱
USArrests.columns
預期輸出
Index(['Murder', 'Assault', 'UrbanPop', 'Rape'], dtype='object')
來源:Ch12-unsup-lab-zh.ipynb
課程 Ch12 · 主成分載荷
pcaUS.components_
預期輸出
array([[ 0.53589947,  0.58318363,  0.27819087,  0.54343209],
       [-0.41818087, -0.1879856 ,  0.87280619,  0.16731864],
       [-0.34123273, -0.26814843, -0.37801579,  0.81777791],
       [-0.6492278 ,  0.74340748, -0.13387773, -0.08902432]])

每一列是一個主成分,每一行對應一個變數,順序是 Murder、Assault、UrbanPop、Rape。

來源:Ch12-unsup-lab-zh.ipynb
  1. 只貼陣列,AI 會自己補欄名。上面的輸出沒有變數名稱,也沒有說明列與行各代表什麼。只貼這個陣列,模型可能猜一組欄名, 或把列與行讀反。附上欄名與「每一列是一個主成分」,再請它解讀。
  2. 正負號本身沒有方向意義。主成分的方向只確定到正負號,lab 稍後就把第二主成分整個翻號重畫。若 AI 說「第二主成分為負代表治安較好」, 要追問:整個主成分翻號後,這句話還成立嗎?可以解讀的是同一主成分內各變數的相對正負與大小。

以這組載荷來看,第一主成分的四個載荷同號且三個犯罪變數較大,第二主成分以 UrbanPop 為主。這類敘述可以由數字直接核對; 「某些州比較危險」則需要分數與更多脈絡,不能只從載荷推出。完整內容見 主成分分析。

讀圖找證據 · 自我檢測

AI 看完 mpg 與 horsepower 的散布圖後寫道:「這張圖顯示 1980 年代的車更省油。」你該怎麼處理?

(A) 接受,因為一般認為新車比較省油
(B) 指出圖中沒有年份資訊;若想檢查這件事,另外畫 mpg 對 year 的圖
(C) 換另一個模型重問,若它也這樣說就接受
PART 04 · 讀模型比較

「二次比較好」需要哪些證據 參考:用 AI 讀迴歸結果(第 4 章)

讀完圖,下一步常是請 AI 比較幾個模型。書中示範把迴歸輸出貼給 AI,請它寫一段分析:它能指出哪些變數有關、效果大約多大, 還會主動建議取對數、加樣條或做交叉驗證。這些建議通常合理,但你要分清楚三件事:

問題要看什麼
有沒有關聯係數的正負與 p 值;關聯不代表因果
效果多大線性項:係數乘上合理的變化量,並保留單位;有二次項時,改比較兩個指定馬力值的預測差
證據多強、多穩定標準誤、區間,以及換一種資料切法後結果是否改變

在 Auto 上,AI 讀完上一節的圖,很可能會說「二次模型比線性好」。這句話要成立,至少要有兩種證據: 模型在沒參與擬合的資料上預測得比較好,而且這個差距換一種切法仍然存在。 只看擬合用資料上的誤差不夠,因為越複雜的模型在擬合資料上幾乎一定表現更好。

延伸:讀驗證誤差與切分變動(學完重抽樣方法再看)

課程 Ch05 lab 把 392 筆資料切成一半訓練、一半驗證,比較一到三次多項式在驗證集上的均方誤差(MSE):

課程 Ch05 · 一次切分下的三個模型
MSE = np.zeros(3) for idx, degree in enumerate(range(1, 4)): MSE[idx] = evalMSE([poly('horsepower', degree)], 'mpg', Auto_train, Auto_valid) MSE
預期輸出
array([25.57387819, 22.21802005, 22.66767544])

線性約 25.6,二次約 22.2,三次約 22.7。線性到二次下降 3.4;二次到三次反而上升 0.45。

來源:Ch05-resample-lab-zh.ipynb
課程 Ch05 · 線性模型換 10 種切法
validation = ShuffleSplit(n_splits=10, test_size=196, random_state=0) results = cross_validate(hp_model, Auto.drop(['mpg'], axis=1), Auto['mpg'], cv=validation) results['test_score'].mean(), results['test_score'].std()
預期輸出
(np.float64(23.802232661034168), np.float64(1.4218450941091842))

同一個線性模型,換 10 種隨機切法,驗證 MSE 的平均約 23.8、標準差約 1.4。這個標準差描述各次切分之間的差異,不是平均值的標準誤。

來源:Ch05-resample-lab-zh.ipynb

把兩張卡放在一起,可以看出 AI 的結論需要補什麼:

  • 單次切分的數字會隨切法改變。線性模型在第一張卡是 25.6,在 10 種切法下平均是 23.8。
  • 二次與三次差 0.45,單次切分無法判斷誰比較好。要回答這一題,得在多種切法下,用同一批切分成對比較兩個模型, 看差距的方向是否一致。
  • 線性到二次的改善較大,但仍應在多種切法下確認。本站 重抽樣方法 會用多種切法與交叉驗證完成這個比較。

請 AI 比較模型時,要它交回各次切分的分數而不只是平均,並說明切分方式與 random_state。 如果它先用全部資料挑變數再做交叉驗證,評估會過度樂觀,見 先選特徵再交叉驗證的錯誤。

讀模型比較 · 自我檢測

AI 說:「三次模型在訓練資料上的誤差最小,所以它是最好的模型。」這個論證缺了什麼?

(A) 缺了更詳細的程式註解
(B) 什麼都不缺,誤差最小就是最好
(C) 模型在沒參與擬合的資料上的表現,以及換一種切法後結論是否不變
PART 05 · 兩種標準誤

同一係數的兩個不確定性估計不一致時 課程 Lab Ch5 · lab 範例

比較完預測,再看係數本身有多不確定。迴歸輸出的係數旁邊通常附有標準誤,描述「如果重新抽一份樣本,這個係數大約會變動多少」。AI 讀到兩組不一樣的標準誤時, 常見的反應是挑一個、或說「其中一個算錯了」。比較好的第一步是追問兩種算法各自依賴什麼假設。

課程 Ch05 lab 用兩種方法估計 mpg 對 horsepower 迴歸係數的標準誤:

兩者若明顯不同,不一定是誰算錯;它常在提醒你:模型的某個假設可能不成立。另一種可能是程式本身出了錯, 而且不會報錯。下面的延伸兩種情況都會遇到。

延伸:公式標準誤與 bootstrap 標準誤(學完線性迴歸與重抽樣再看)
課程 Ch05 · 線性模型的 bootstrap 標準誤
hp_func = partial(boot_OLS, MS(['horsepower']), 'mpg') hp_se = boot_SE(hp_func, Auto, B=1000, seed=10) hp_se
預期輸出
intercept     0.848807
horsepower    0.007352
dtype: float64
來源:Ch05-resample-lab-zh.ipynb
課程 Ch05 · 線性模型的公式標準誤
hp_model.fit(Auto, Auto['mpg']) model_se = summarize(hp_model.results_)['std err'] model_se
預期輸出
intercept     0.717
horsepower    0.006
Name: std err, dtype: float64
來源:Ch05-resample-lab-zh.ipynb
課程 Ch05 · 二次模型的 bootstrap 標準誤
quad_model = MS([poly('horsepower', 2, raw=True)]) quad_func = partial(boot_OLS, quad_model, 'mpg') boot_SE(quad_func, Auto, B=1000)
預期輸出
intercept                                  2.067840
poly(horsepower, degree=2, raw=True)[0]    0.033019
poly(horsepower, degree=2, raw=True)[1]    0.000120
dtype: float64
來源:Ch05-resample-lab-zh.ipynb
課程 Ch05 · 二次模型的公式標準誤
M = sm.OLS(Auto['mpg'], quad_model.fit_transform(Auto)) summarize(M.fit())['std err']
預期輸出
intercept                                  1.800
poly(horsepower, degree=2, raw=True)[0]    0.031
poly(horsepower, degree=2, raw=True)[1]    0.000
Name: std err, dtype: float64

二次項的 0.000 是四捨五入到小數三位的結果,不是「沒有不確定性」;bootstrap 那一格顯示 0.000120。請 AI 讀這種表時,要它注意顯示位數。

來源:Ch05-resample-lab-zh.ipynb
係數公式bootstrap怎麼讀
線性:截距0.7170.849bootstrap 大約多 18%
線性:horsepower0.0064(輸出顯示 0.006)0.0074bootstrap 大約多 14%
二次:horsepower0.0310.033接近
二次:horsepower²0.000(四捨五入)0.00012接近
二次:截距1.8002.068仍有差距

線性模型的差距是值得追查的線索。除了模型形式正確、誤差變異固定這兩個假設,公式標準誤還把 horsepower 當作已知, 只看誤差帶來的變動。mpg 與 horsepower 的關係是彎的,直線擬合的殘差被放大,誤差變異的估計也跟著受影響。 bootstrap 每次連同 horsepower 一起重抽,模型形式不對或誤差變異不固定時,仍能反映係數實際的變動;它仍然假設各列彼此獨立,也不保證一定比較準。 單看兩個數字,無法判斷差距來自哪一個假設,要再看殘差圖等證據。

改用二次模型後,一次項與二次項係數的兩種估計變得接近,截距仍有差距。模型形式以外的假設也要看, 例如 mpg 的分散程度是否隨馬力改變。課本說「二次模型的兩種估計對應得更好」,要對照每一個係數去看,不要只看結論。

能跑不代表做對:一個真實的例子。課程筆記本早先沿用 ISLP lab 的 boot_SE,依 index 標籤重抽; 而目前 ISLP 套件載入的 Auto 以車名當 index,而且有重複(本頁資料字典寫過「同名的車可能出現不只一次」)。依標籤抽樣時, D.loc 會把同名的車一次全部取出,一份重抽樣本約有 690 列,而不是 392 列。 程式沒有任何錯誤訊息,算出的截距標準誤約 0.73,看起來也合理。問題出在重抽方式:同名的車整批進出,樣本變大,本例因此低估了變動。 改成依列的位置抽樣後,結果與 ISLP 課本印出的 0.85 與 0.0074 相同。這類錯誤有個簡單的檢查:印出一份重抽樣本的列數,確認它等於 n。

完整說明見 bootstrap 與 線性迴歸的潛在問題。

兩種標準誤 · 自我檢測

同一個係數,用兩種方法估計標準誤,結果明顯不同。AI 建議「採用比較小的那個,結論比較顯著」。你怎麼回應?

(A) 同意,因為標準誤越小越精確
(B) 先追問兩種方法各自依賴的假設,也確認程式真的照方法執行,再決定怎麼報告
(C) 取兩個標準誤的平均
PART 06 · 反駁與紀錄

交叉質詢、保存紀錄、保護資料 參考:AI 分析的限制與責任(第 11 章)

到這裡,AI 已經交回清理程式、圖的解讀、模型比較與標準誤的說明。最後一步是讓這些內容經得起質疑,並留下別人能重跑的紀錄。

用另一個 AI 交叉質詢,但由你裁決

書中建議兩種做法:請同一個 AI 批判自己的分析,或者更好的是,請另一個 AI 檢查。對自己熟悉的問題多試幾個模型, 可以知道哪一個在這類工作上比較可靠。做法上:

第二個 AI 提出的異議也只是待查的線索。兩個模型可能學到相同的錯誤,同意彼此也不代表正確;最後仍要回到資料、程式與文件。

至少要留下Auto 這次的例子
任務與對話關鍵 prompt、追問、日期、使用的模型與工具
資料來源課程 Auto.csv 的取得日期;資料字典;? 的處理規則
程式與環境清理與建模程式、套件版本、random_state 與 seed
結果與檢查完整輸出、驗收結果、失敗的嘗試與修正原因
人工決策排除 5 列缺值的理由;採納或拒絕 AI 哪些建議;結論的適用範圍
完成條件 別人能用你保存的資料與程式重跑出關鍵數字,看得出 AI 參與了哪些步驟,也看得到你做過哪些判斷。本站 lab 已把程式、輸出與文字放在一起;在每段分析旁補上資料版本、seed、AI 協助範圍與驗收結果即可。
上傳前先做資料分級 Auto 是公開資料,可以直接拿來練習;真實工作的資料常常不是。內部或受限資料先查組織規範;個資、健康、財務、未公開研究資料與金鑰,預設不要直接貼進公開的雲端模型。刪掉姓名不一定足以防止重新識別;必要時改用合成的小例子、只提供摘要,或使用核准的本機或企業環境。
紀錄與資料安全 · 自我檢測

你有一份含病患紀錄的內部資料,想請公開的聊天模型幫忙除錯。第一步應該是什麼?

(A) 先查資料治理與工具使用規範;能不用真實個體資料,就改用合成的最小例子
(B) 刪掉姓名後直接上傳整份資料
(C) 要求模型承諾不保存資料
EXERCISES · 練習

動手驗證:概念自測 課前 · 自我檢測

回顧本頁觀念與原 Lab 的程式,確認各個操作的意義與使用條件。

下面三題延續 Auto 的情境,練習判斷該補什麼資訊、怎麼核對 AI 的說法。

EXERCISE 1 · 拆解任務

你想知道 Auto 中產地是否與油耗有關。哪個第一個 prompt 最合適?

(A) 「附上資料字典。先不要建模:請列出分析前還缺的資訊,特別是 origin 的編碼方式、與產地一起變動的其他變數(如重量);輸出問題清單」
(B) 「分析這份資料,告訴我哪個產地的車最省油」
(C) 「對 origin 做迴歸,p < .05 就說產地造成油耗差異」
EXERCISE 2 · 核對讀圖

你請兩個 AI 描述 mpg 的分布。一個說「中間一半的車在 17 到 29 mpg」,另一個說「中間一半的車在 20 到 35 mpg」。你先做什麼?

(A) 用 describe() 的四分位數核對,再決定採用哪個說法
(B) 再問第三個 AI,看多數支持哪一個
(C) 取兩個範圍的平均
EXERCISE 3 · 留下交付物

整個 Auto 分析做完了。要讓同學接著重跑並理解你的決定,至少要交付什麼?

(A) AI 說分析成功的聊天截圖
(B) 資料取得方式與字典、清理與建模程式、環境版本、驗收結果,以及排除缺值與採納建議的理由
(C) 只有最後的模型係數
重點速查與來源

AI 輔助統計分析:從提問到驗證速查表 課前 · AI 協作

來源:完整書目與章節定位

本頁書目與章節定位

  • 教科書:An Introduction to Statistical Learning with Applications in Python。James、Witten、Hastie、Tibshirani、Taylor,2023。原書與下載資訊
  • AI 協作參考書:AI-Assisted Statistics for Data Scientists。Peter Bruce、Andrew Bruce、Peter Gedeck,第三版,2026。作者提供的程式與資料
    本頁對應:參考:AI 協作的責任界線(前言);參考:資料字典與用 AI 讀圖(第 1 章);參考:生成式 AI 與提示設計(第 10 章);參考:AI 分析的限制與責任(第 11 章);參考:用 AI 讀迴歸結果(第 4 章)。

需要核對完整公式、比較表或實作時,再展開下方速查。

查閱完整速查與延伸提醒

下列來源說明本頁使用的協作流程與實作方法。AI 能力與限制的研究整理見 00A 的參考資料。

來源這一頁用到什麼
Bruce, Bruce & Gedeck, AI-Assisted Statistics for Data Scientists, 3rd ed.(Preface;Ch.1 資料字典與用 AI 讀圖;Ch.4 用 AI 讀迴歸結果;Ch.7 用 AI 解讀主成分;Ch.10 提示設計、脈絡學習與逐步推理;Ch.11 準確性、vibe coding、用 AI 做統計分析)標準題與模糊專案的區分、資料字典當脈絡、提示原則、生成—執行—修正、讀圖與讀表的錯誤類型、自我批判與多個 AI 交叉檢查、低風險任務清單。
官方 GitHub README、Python 程式需要核對原書範例的程式與資料時,回到作者提供的版本。
ISLP:Auto 資料說明本頁資料字典的欄位定義與編碼。
scikit-learn: Common pitfalls資料洩漏、前處理一致性與 random_state 的官方實作指引。
CARDS · 關鍵詞彙卡

關鍵詞彙卡:點卡片翻面 課程詞彙

詞彙卡整理本頁引用的課程 lab中常用的統計或機器學習專有名詞,正面附英文名稱。 先看正面的術語,試著說出定義,再翻面核對。可以洗牌複習,也可以搭配本章例子練習解釋。

複習:展開關鍵詞彙卡