ข้อมูลภาษากับสถิติ 3 : การใช้ข้อมูล

Wirote Aroonmanakun
7 min readSep 22, 2022

--

หลังจากเข้าใจว่าข้อมูลเกี่ยวกับภาษาที่นำมาใช้ทางสถิติมีอะไรแล้ว ในตอนนี้จะกล่าวถึงการใช้วิธีการทางสถิติกับข้อมูลภาษาว่าใช้ทำอะไรได้บ้าง. ข้อมูลภาษาที่ใช้จะเป็นคลังข้อมูลที่รวบรวมมาเพื่อเป็นตัวแทนของภาษาที่สนใจได้และมีปริมาณมากพอที่ใช้หาคำตอบจากคลังข้อมูลภาษานั้นได้. เราสามารถใช้สถิติเพื่อสำรวจหาคำตอบจากคลังข้อมูลนั้นเอง หรือใช้เพื่อหาคำตอบจากการเปรียบเทียบระหว่างคลังข้อมูลก็ได้

๑. การแจกแจงข้อมูลภาษา

สถิติพื้นฐานที่สามารถใช้สรุปข้อมูลภาษาได้ คือ การแจกแจงความถี่และการหาค่ากลาง. รูปภาษาอย่างตัวอักษร คำ ประโยค หรือลักษณ์ทางภาษาที่ได้จากการวิเคราะห์อย่างชนิดของคำ ประเภทย่อยกริยา ความยาวประโยค สิ่งเหล่านี้สามารถนับความถี่การปรากฏได้. ความถี่จึงเป็นข้อมูลพื้นฐานของภาษาที่สามารถแจกแจงและนำมาเปรียบเทียบได้

Frequency
นอกจากความถี่ ความถี่สัมพัทธ์หรือ relative frequency (RF) เป็นอีกค่าหนึ่งที่นิยมใช้. ความถี่ปรกติจะนำมาเปรียบเทียบระหว่างคลังข้อมูลไม่ได้ทันที เพราะคลังข้อมูลอาจมีขนาดไม่เท่ากัน. ถ้าจะเทียบกันได้ก็ต้องทำให้เป็นมาตรฐานเดียวกันหรือ normalized ก่อนจึงจะเทียบความมากน้อยได้ เช่น ถ้าเทียบความถี่สัมพันธ์ที่ 1,000,000 คำ.
RF = frequency x 1,000,000 / corpus size (จำนวนคำใน corpus)

Dispersion
การกระจายตัวของข้อมูลก็เป็นข้อมูลหนึ่งที่บอกลักษณะภาษาได้. คำบางคำแม้มีความถี่การปรากฏมากแต่อาจพบใน text จำนวนไม่มาก. เมื่อเทียบกับคำที่มีความถี่เท่าๆ กันแต่พบใน text แทบทุก text คำที่พบใน text จำนวนน้อยจะมีค่า dispersion ต่ำกว่า. วิธีการวัดค่า dispersion ที่ง่ายสุดคือหาค่า range หรือการนับจำนวน text ที่มีคำที่ต้องการ. แต่ค่า range หากนำมาเปรียบเทียบระหว่างคลังข้อมูลที่มีจำนวน text ไม่เท่ากันก็จะไม่สามารถเทียบได้ทันที. จำเป็นต้อง normalized เช่นทำเป็นร้อยละก่อน

ค่า SD หรือ standard deviation ก็เป็นอีกค่าที่บอก dispersion ได้ เพราะเป็นการเทียบความต่างของความถี่ในแต่ละ text กับค่ากลางหรือ mean. แต่เนื่องจากการคำนวณต้องอาศัยค่ากลางของคำซึ่งแต่ละคำจะมีค่ากลางไม่เท่ากัน ทำให้ไม่สามารถเปรียบเทียบ SD ระหว่างคำได้. วิธีที่เหมาะกว่าคือใช้ Juilland’s D ที่คำนวณจากค่า coefficient of variation ตามสูตรนี้. ค่า coefficient of variation ของแต่ละคำมาจาก SD/mean ของคำนั้นทำให้สามารถเทียบค่าระหว่างคำต่างๆ ได้

Brezina (2018: 51)

Average reduced frequency (ARF)
เป็นสถิติที่รวมทั้งเรื่องความถี่และ dispersion ไว้ด้วยกัน โดยเอาเรื่องระยะห่างระหว่างคำที่พบใน text มาคำนวณร่วมกับความถี่. ให้นับตำแหน่งคำจาก 1 ไปจนสิ้นข้อมูลถึง n. จากนั้นดูว่าคำที่สนใจ w ปรากฏในตำแหน่งไหนบ้าง. คำนวณ distance เทียบกับค่า v แล้วเอาค่าที่น้อยกว่ามาใช้ ตามสูตรข้างล่างนี้. ด้วยวิธีนี้แม้ในสองคลังข้อมูลจะมีจำนวนคำ w เท่ากัน แต่การกระจายหรือตำแหน่งปรากฏต่างกัน ค่า ARF ก็จะต่างกันด้วย

Brezina (2018: 54)

Lexical Diversity
การคำนวณความหลากหลายของศัพท์หรือ lexical diversity ใช้บอกว่าในคลังข้อมูลนั้นมีศัพท์มากหรือน้อยกว่ากัน. ค่าที่คำนวณอย่าง TTR (Type/Token Ratio) คำนวณโดยเอาจำนวนรูปคำที่พบหารด้วยจำนวนนับของคำทั้งหมดในข้อมูล. รูปคำหรือ type คือรูปเขียนที่ปรากฏแม้เป็นคำเดียวกันแต่มีรูปต่างกันอย่าง walk, walked, walking ก็คือเป็นคนละ type. อย่างไรก็ดี บางคนจะใช้ STTR (Standardized type/token ratio) เพื่อแก้ปัญหาเรื่องข้อมูลที่อาจมาจากขนาดหรือความยาว text. โดยจะแบ่ง text เป็นส่วนๆ ยาวเท่ากัน เช่น 1000 คำ แล้วคำนวณ TTR แต่ละส่วนก่อนค่อยมาหาค่า mean. หรือบางคนคำนวณโดยใช้ moving average type/token ratio (MATTR) ซึ่งคล้ายกับ STTR ต่างกันที่ MATTR จะแบ่ง text แบบไม่ใช่ให้ตัดเป็นส่วนๆ ต่อเนื่องกัน แต่ให้ตัดแบ่งส่วนแบบมีการซ้อนกันได้

๒. การหาความสัมพันธ์ระหว่างคำ

กรณีที่เราต้องการหาคำซึ่งมีความสัมพันธ์ระหว่างกัน เช่น การหา collocation หรือคำปรากฏร่วม เป็นการมองหาคู่คำที่มักพบว่าจะปรากฎใช้ร่วมกันในคลังข้อมูล

การหาคำปรากฏร่วม (Collocation)
เราสามารถใข้สถิติคำนวณการปรากฏร่วมกันของคำว่าต่างจากปกติหรือไม่. หลักคำนวณง่ายๆ คือการมองว่าโอกาสที่คำสองคำจะมาปรากฏใกล้กันเมื่อคำนวณตามหลักความน่าจะเป็นนั้นต่างจากที่พบจริงมากหรือไม่. หากมากกว่าปกติก็น่าจะเป็น collocation กันได้. สถิติหลายตัวใช้วิธีเทียบหาค่า expected frequency กับ observed frequency

expected frequency (w1,w2) = frequency(w1) x frequency(w2) / total word

หากเป็นการหาความสัมพันธ์ภายในขอบเขตคำใกล้เคียงที่กำหนดหรือ span ค่า expected ก็คูณด้วย span นั้นด้วย

ค่า observed กับ expected นี้เมื่อพิจารณาจากการปรากฎร่วมกันของ w1-w2 (O11), w1-not_w2 (O12), not_w1-w2 (O21), not_w1-not_w2 (O22) ออกมาเป็นตารางความถี่ของข้อมูลก็สามารถคำนวณค่า collocate เทียบกับค่า expected (E11,E12,E21,E22) ด้วยวิธีการทางสถิติต่างๆ ได้ เช่น MI (mutual information), LL (log-likelihood), T-score เป็นต้น

Brezina (2018: 71)
Brezina (2018: 72)

ซึ่งวิธีการทางสถิติแบบต่างๆ นี้ก็จะให้ผลที่แตกต่างกันไป โดยให้ความสำคัญกับความถี่ของคำและการปรากฏเฉพาะคู่แตกต่างกัน (frequent/infrequent, exclusive/non-exclusive). ผู้ใช้สามารถทดลองเลือกใช้สถิติแต่ละแบบที่เหมาะสมกับการศึกษาของตัวเองได้

การหาคำสำคัญ (keyword) ในคลังข้อมูล
การหาคำสำคัญในคลังข้อมูลก็อาศัยสถิติที่มองเปรียบเทียบคำในสองคลังข้อมูล. คลังข้อมูลหลักคือข้อมูลที่เราสนใจศึกษา คลังข้อมูลอ้างอิงคือข้อมูลที่นำมาเป็นตัวเทียบ. คำสำคัญดูได้จากการเทียบระหว่างสองคลังข้อมูลนี้. คำใดที่ปรากฏมากในคลังข้อมูลหลักแต่ปรากฏน้อยในคลังข้อมูลอ้างอิงก็มีแนวโน้มจะเป็นคำสำคัญได้. วิธีการวัดที่ง่ายสุดคือการหารเทียบความถี่สัมพัทธ์ RF(w in C)/RF(w in R). บางคนก็จะบวกค่าคงที่ k ทั้งเศษและส่วนเวลาหาร. ใน LancsBox [3] เรียกวิธีการนี้ในชื่อ simple maths parameter. หรือจะใช้วิธีการทางสถิติอย่าง log likelihood เทียบค่า expected กับ observed

Brezina (2018: 84)

O11 เป็นความถี่ของคำ w ในคลังข้อมูลหลัก C, O21 เป็นความถี่ของคำ w ในคลังข้อมูลอ้างอิง R. ส่วน E11 เป็นความถี่ expected ของ w ใน C และ E21 เป็นความถี่ expected ของ w ใน R

Brezina (2018: 84)

ค่า Log ratio เป็นอีกวิธีการหนึ่งที่ใช้ใน CQPweb [3] ซึ่งเป็น binary log ของ relative frequency ระหว่างสองคลังข้อมูล

๓. การหาความสัมพันธ์ระหว่างตัวแปร

นอกจากการมองเรื่องความสัมพันธ์คำในคลังข้อมูล หรือการเทียบความแตกต่างของคำในสองคลังข้อมูล เราสามารถใช้สถิติเพื่อหาความสัมพันธ์ระหว่างตัวแปรหรือข้อมูลได้เหมือนงานอื่นๆ. ข้อมูลที่มีอาจเป็นข้อมูลภาษาที่เก็บในรูปแบบต่างๆ เช่น จำนวนนับของลักษณ์บางอย่าง เช่น จำนวนประโยคของ dative alternation ว่าเป็นโครงสร้าง double object (give him a book) หรือโครงสร้าง indirect object (give a book to him), ค่าความยาวสระหลังเสียงโฆษะ (voiced) หรืออโฆษะ (voiceless) เป็นต้น

การศึกษาลักษณะนี้เป็นสถิติเชิงอนุมาน คือสรุปข้อค้นพบบางอย่างของภาษาจากคลังข้อมูลที่รวบรวมมาเพื่อเป็นตัวแทนของภาษานั้น. ส่วนวิธีการสถิติที่ใช้นั้นก็แปรไปตามความต้องการและลักษณะข้อมูลนั้น. โดยทั่วไปจะมีทั้งที่เป็นแนวทดสอบสมมติฐาน (hypothesis testing) ว่าความสัมพันธ์ระหว่างตัวแปรที่พบในสองคลังข้อมูลขึ้นไปนั้นเหมือนหรือแตกต่างกันไหม. สิ่งที่ต้องการคืออยากเห็นว่ามีความต่างเพื่อสรุปว่าข้อมูลจากคลังข้อมูลทั้งหลายนั้นไม่ได้มาจากแหล่งเดียวกัน, และที่เป็นการหาความสัมพันธ์โดยตรงระหว่างตัวแปรเพื่อสร้างโมเดลที่อธิบายความสัมพันธ์นั้น, หรือเป็นการจัดกลุ่มข้อมูล ลดทอนจำนวนมิติข้อมูลให้อยู่ในรูปที่นำมาใช้ประโยชน์ได้

๓.๑ การทดสอบสมมติฐาน

เป็นการหาว่าตัวแปรที่เป็นข้อมูลที่สนใจมีความสัมพันธ์ต่อกันหรือไม่. สมมติฐานต้นหรือ null hypothesis คือให้คิดว่าไม่มีความสัมพันธ์ต่อกัน แล้วใช้วิธีการทางสถิติตรวจสอบข้อมูลที่พบจริง. หากข้อมูลชี้ให้เห็นว่าสมมติฐานต้นนั้นผิดก็จะสรุปได้ว่ามีความสัมพันธ์ระหว่างกันอยู่

Chi-square test
[4] ใช้ทดสอบข้อมูลที่นับจำนวนความถี่ เช่น สนใจศึกษาว่ารูปโครงสร้างที่ต่างกันอย่าง prevent NP from doing something (form 1) และ prevent NP doing something (form 2) มีจำนวนการใช้ต่างกันเมื่อใช้ในช่วงเวลาต่างกันไหม. ก็ให้นับข้อมูลรูปทั้งสองนี้จากสองช่วงปีคือ 1960s และ 1990s แล้วนำข้อมูลมาแจกแจงเป็นตารางความถี่แล้วคำนวณค่า chi-square ออกมาเพื่อดูว่าจะปฏิเสธ null hypothesis ว่าไม่มีความต่างของการใช้ระหว่างช่วงปีได้ไหม. หากปฏิเสธได้ก็จะได้สรุปว่ามีความแตกต่างของการใช้รูปทั้งสองในสองช่วงเวลานั้น

T-test และ Anova
T-test และ anova ใช้กับข้อมูลภาษาที่เป็นค่าตัวเลขต่อเนื่องจากตัวอย่างมากกว่าหนึ่งกลุ่ม. ตัวอย่างเช่น Brezina (2018: 186–190) [1] ใช้ Welch’s independent samples t-test เพื่อเปรียบเทียบความต่างของการใช้ personal pronoun ระหว่างผู้ชายและผู้หญิง โดยหาความถี่สัมพัทธ์ของการใช้คำบุรุษสรรพนาม จากนั้นคำนวณเทียบค่า mean และ variance ของการใช้ทั้งสองกลุ่ม เพื่อดูว่าจะปฏิเสธสมมติฐานที่ว่า การใช้ของทั้งสองกลุ่มไม่แตกต่างกันได้หรือไม่. สำหรับกรณีที่ต้องการเทียบความต่างมากกว่าสองกลุ่มก็จะใช้ Anova

การเลือกใช้สถิติตัวไหนยังขึ้นกับลักษณะข้อมูลด้วย หากเป็นกรณีที่ข้อมูลไม่ได้กระจายตัวแบบปกติหรือมี normal distribution ก็สามารถใช้ non-parametric test อย่าง Mann–Whitney U test และ Kruskal–Wallis test แทนการใช้ t-test และ Anova ได้ (Brezina 2018: 195)

๓.๒ การสร้างโมเดลความสัมพันธ์

ความสัมพันธ์ระหว่างตัวแปรที่พบในข้อมูลอาจหาออกมาในรูปของการมองหาโมเดลที่แสดงความสัมพันธ์เหล่านั้น

Correlation
เป็นการมองความสัมพันธ์ระหว่างตัวแปรสองตัวแปรที่วัดออกมาเป็นค่าตัวเลข โดยมองว่าตัวแปรหนึ่งแปรไปตามอีกตัวแปรหนึ่งหรือไม่. ค่าที่วัดได้คือค่า coefficient correlation จะมีค่าระหว่าง 0–1. หากเข้าใกล้ 1 แสดงว่าตัวแปรนั้นแปรไปตามอีกตัวแปร หากเข้าใกล้ 0 คือไม่มีความสัมพันธ์ระหว่างกัน. แต่หากค่าที่คำนวณได้ติดลบจะบ่งบอกความสัมพันธ์แบบผกผัน คือหากตัวแปรหนึ่งเพิ่มขึ้นอีกตัวแปรหนึ่งจะลดลง. ค่า correlation ที่ใช้คำนวณข้อมูลวัดเป็นตัวเลขคือ Pearson’s correlation ส่วนกรณีที่เป็นค่าลำดับ (ordinal) จะใช้ Spearman’s correlation. ตัวอย่างการใช้ correlation เช่น หาความสัมพันธ์ระหว่างความสามารถการเขียนและการพูดว่าไปด้วยกันไหม โดยดูเทียบคะแนนวัดระดับความสามารถการเขียนและการพูดของนักเรียนแต่ละคนในกลุ่มตัวอย่าง

Linear regression model
ค่า correlation มีความเกี่ยวข้องกับโมเดลที่เรียกว่า linear regression. linear regression มองความสัมพันธ์ของตัวแปรสองตัวแบบสมการเขิงเส้น Y = a + bX. ในการคำนวณหา linear model จากข้อมูลภาษาที่เตรียมให้. Y เป็นตัวแปรตามหรือ dependent variable ที่คาดว่าจะแปรไปตามตัวแปรต้นหรือ independent variable (X). เราสามารถหาโมเดลที่พอดี (fit) กับข้อมูลโดยใช้โปรแกรมอย่างโปรแกรม R ได้. นอกจากโปรแกรมจะให้ค่า intercept (ค่า a), ค่า coefficient (ค่า b) ในโมเดลแล้ว จะมีค่า t-test, df และ p-value ที่บอกเราได้ว่าค่า coefficient นี้มีนัยสำคัญทางสถิติไหม. ส่วนค่า correlation (r) คือค่าที่แสดงว่าข้อมูลที่มีนั้นอยู่ใกล้เคียงกับเส้นสมการโมเดลมากแค่ไหน. หากมีค่าเป็น 1 ก็คือข้อมูลทั้งหมดเป็นไปตามที่คาดจากโมเดล ไม่ได้เบี่ยงเบนจากโมเดล. แต่ถ้ามีการเบี่ยงเบนออกจากที่คาดในโมเดลมากขึ้น ค่า correlation ก็จะลดลง

Baayen (2008: 88)

ตัวอย่างการหา linear model ของข้อมูลจาก Baayen (2008: 86–89) เพื่อดูว่า meanSizeRating จะแปรไปตาม meanWeightRating อย่างไร. คำสั่ง lm( y ~ x) คือให้สร้าง linear model ของ y ที่แปรตาม x. data คือบอกให้ใช้ข้อมูลชุดไหน. เมื่อเรียกโมเดลที่สร้างได้มาดู จะเห็นค่า intercept กับ coefficient ของตัวแปรซึ่งในที่นี้คือ meanWeightRating. ส่วนคำสั่ง summary( ) ใช้แสดงค่าต่างๆ ของโมเดลที่ได้นี้. จากผลที่เห็นค่า meanSizeRating แปรไปตาม meanWeightRating

> ratings.lm = lm(meanSizeRating  ̃ meanWeightRating, data = ratings)> ratings.lm
Call:
lm(formula = meanSizeRating ̃ meanWeightRating, data = ratings)
Coefficients:
(Intercept) meanWeightRating
0.5270 0.9265
> summary(ratings.lm)
Call:
lm(formula = meanSizeRating ̃ meanWeightRating, data = ratings)
Residuals:
Min 1Q Median 3Q Max
-0.096368 -0.020285 0.002058 0.024490 0.075310
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.526998 0.010632 49.57 <2e-16
meanWeightRating 0.926474 0.003837 241.45 <2e-16
Residual standard error: 0.03574 on 79 degrees of freedom
Multiple R-Squared: 0.9986, Adjusted R-squared: 0.9986
F-statistic: 5.83e+04 on 1 and 79 DF, p-value: < 2.2e-16

โมเดลเชิงเส้นนี้ปกติมักคำนวณเป็นสมการเส้นตรง แต่กรณีที่โมเดลเส้นตรงไม่เหมาะกับข้อมูลที่มีก็สามารถใช้สมการเชิงเส้นแบบอื่นอย่างสมการพาราโบลา Y =a + bX + cX² ในตัวอย่าง lm( ) ข้างล่างนี้

> plants.lm = lm(meanSizeRating  ̃ meanFamiliarity +
+ I(meanFamiliarityˆ2), data = plants)

วิธีดูว่าโมเดลเหมาะกับข้อมูลไหม ให้ดูที่ค่า R-squared ซึ่งเป็นตัววัดการเบี่ยงเบนจากเส้นโมเดล. หากเข้าใกล้ 1 ก็จะยิ่งดี. แต่สิ่งที่สำคัญที่สุดคือการ plot ข้อมูลมาดูเทียบกับเส้นโมเดลที่ได้ว่าพอดีกันจริงไหม เพราะบางครั้งค่า R-squared อาจสูงแต่ดูจากรูปแล้วจะเห็นว่าโมเดลนั้น (เส้นแดง) ไม่เข้ากับข้อมูล (จุดสีฟ้า) เช่นตัวอย่างในรูปข้างล่างซ้าย

https://towardsdatascience.com/how-to-choose-the-best-linear-regression-model-a-comprehensive-guide-for-beginners-754480768467

Multiple regression model
โมเดลที่ใช้อธิบายข้อมูลอาจมีตัวแปรต้นมากกว่าหนึ่งตัวได้. การหาโมเดลที่พอดีกับข้อมูลนี้จึงต้องพิจารณาตัวแปรต่างๆ และความเกี่ยวข้องระหว่างตัวแปรที่อาจมีผลต่อตัวแปรตามได้ เรียกว่า multiple regression model. ในคำสั่ง lm( ) สามารถระบุตัวแปรต้นมากกว่าหนึ่งตัวโดยใช้เครื่องหมาย + เช่น y ~ a + b ในตัวแปรสามารถบอก factor ที่มีผลตัวตัวแปรด้วยเครื่องหมาย : เช่น y ~ a + b + a:b หมายถึง a, b มีผลต่อ y, และ b ก็มีผลต่อ a ด้วย กรณีแบบนี้จะเขียน a * b แทนก็ได้. หากต้องการให้โปรแกรมตีความเครื่องหมายตามจริงก็ใช้ I( ) เช่น I(b+c) หมายถึงตัวแปรที่มาจากการรวมค่า b กับ c [6]

ในตัวอย่างข้างล่างเป็นการสร้างโมเดลด้วยคำสั่ง lm( ) โดยให้ meanSizeRating แปรไปตาม meanFamiliarity และ Class ทำเป็น 4 โมเดล. โมเดล 1 มีตัวแปรเดียว meanFamiliarity, โมเดล 2 มีสองตัวแปร meanFamiliarity + Class, โมเดล 3 เป็นเส้นโค้งพาราโบลาของ meanFamiliarity และ Class, ส่วนโมเดล 4 ดู interaction ของ meanFamiliarity กับ Class ด้วย. ซึ่งเมื่อใช้คำสั่ง anova( ) ทำ analysis of variance ในโมเดลทั้งสี่แบบจะเห็นว่าในทุกโมเดลมีค่า p น้อยกว่า 0.05 สามารถอธิบายข้อมูลที่มีได้

> ratings.lm1 = lm(meanSizeRating  ̃ meanFamiliarity, ratings)
> ratings.lm2 = lm(meanSizeRating ̃ meanFamiliarity + Class, ratings)
> ratings.lm3 = lm(meanSizeRating ̃ meanFamiliarity + Class +
+ I(meanFamiliarityˆ2), ratings)
> ratings.lm4 = lm(meanSizeRating ̃ meanFamiliarity * Class +
+ I(meanFamiliarityˆ2), ratings)
> anova(ratings.lm1, ratings.lm2, ratings.lm3, ratings.lm4)
Analysis of Variance Table
Model 1: meanSizeRating ̃ meanFamiliarity
Model 2: meanSizeRating ̃ meanFamiliarity + Class
Model 3: meanSizeRating ̃ meanFamiliarity + Class + I(meanFamiliarityˆ2)
Model 4: meanSizeRating ̃ meanFamiliarity * Class + I(meanFamiliarityˆ2)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 79 70.975
2 78 9.982 1 60.993 520.2307 < 2e-16
3 77 9.460 1 0.522 4.4520 0.03815
4 76 8.910 1 0.550 4.6907 0.03346

คำถามต่อมาคือแล้วจะเลือกสร้างหรือใช้โมเดลไหน. โดยปกติ ที่นิยมทำกันจะใช้สองวิธีคือ backward หรือ forward. แบบ backward คือให้เริ่มด้วยการใช้ตัวแปรต้นหรือ independent variable ทุกตัวที่เกี่ยวข้องในการทำโมเดล แล้วค่อยๆ ตัดตัวแปรที่ไม่มีประโยชน์ในการสร้างโมเดลโดยดูที่ค่า p-value ว่ามีนัยสำคัญไหม. ส่วนแบบ forward จะทำแบบตรงข้ามคือค่อยๆ เพิ่มตัวแปรทีละตัวดูว่ามีความเกี่ยวข้องไหม.

Generalized linear model
ในโมเดลที่ข้อมูลตัวแปรตามไม่ใช่ค่าตัวเลข แต่เป็น category สถิติที่สามารถใช้ได้คือ generalized linear model ซึ่งถ้าตัวแปรตามมีสองค่า เช่น จริง/เท็จ, มี/ไม่มี จะใช้โมเดลอย่าง logistic regression model ได้แต่ถ้ามีมากกว่าสองหมวดจะใช้ multinominal regression.

๓.๓ การจัดรวมกลุ่มข้อมูล

ข้อมูลภาษาที่สังเคราะห์เป็นชุดตัวเลขหรือเว็กเตอร์เพื่อใช้แทนตัวบทหรือคำสามารถมาวิเคราะห์จัดกลุ่มด้วยวิธีการทางสถิติที่เรียกว่า clustering. แต่หากต้องการดูว่าข้อมูลที่มีควรจัดเข้าพวกกับข้อมูลกลุ่มใดเรียกว่าการทำ classification.

Clustering
เป็นการจัดข้อมูลเว็กเตอร์เพื่อหาว่าข้อมูลใดใกล้กันมากกว่าแล้วควรจัดรวมอยู่เป็นพวกเดียวกันก่อน ทำเช่นนี้ไปเรื่อยๆ กับข้อมูลทั้งหมดก็จะได้โครงสร้างลำดับชั้นแสดงการจัดกลุ่มของข้อมูลที่มี. การจัดพวกทำได้หลายวิธี เช่น คำนวณระยะห่างของข้อมูลแล้วจัดกลุ่ม (connectivity), หาจุดกลางข้อมูลที่เหมาะกับข้อมูลทั้งหมด (centroid โดยใช้คำสั่ง kmeans( ) ใน R) ตัวอย่างข้างล่าง (Brezina 2018: 156) แสดงผลจากการใช้ hierarchical agglomerative clustering คำนวณจากระยะห่างข้อมูล (ใช้คำสั่ง hclust( ) ใน R) และภาพแสดงวงลำดับการจัดพวก

Brezina (2018: 156)

Classification
ในขณะที่ clustering เป็นการจัดข้อมูลว่ามีกี่กลุ่ม ข้อมูลไหนอยู่ในกลุ่มใด classification เป็นการตัดสินว่าข้อมูลที่เห็นควรจัดเข้าพวกกับกลุ่มไหน. การทำเช่นนี้ได้ เราต้องมีชุดข้อมูลที่มีการจัดกลุ่มเป็น category ต่างๆ ได้แล้ว และอาศัยจากตัวแปรอื่นๆ ที่เกี่ยวข้องเพื่อสร้างโมเดลสำหรับใช้เพื่อทำนาย class ของข้อมูลนั้น โมเดลที่ใช้ เช่น decision tree, support vector machine, naive bayes เป็นต้น เมื่อมีข้อมูลใหม่เข้ามาก็สามารถใช้โมเดลนั้นตัดสินหรือ classify ได้ว่าควรเป็น category ใด

๓.๔ การลดทอนมิติข้อมูล

การลดทอนมิติข้อมูลหรือ dimension reduction เป็นวิธีการหนึ่งทางสถิติที่นำมาใช้ในข้อมูลภาษา. หลักการคือการทำให้ข้อมูลที่แต่เดิมมีจำนวนมิติหรือตัวแปรมากให้เหลือจำนวนมิติที่น้อยลงโดยยังคงลักษณะของข้อมูลเดิมไว้. ข้อมูลภาษาที่รวบรวมมาอาจเป็นลักษณ์หรือ feature ต่างๆ ที่พบในข้อมูลหรือ text นั้นซึ่งอาจมีหลายร้อย feature แต่ละ text จึงมองได้ว่าเป็นเว็กเตอร์ที่มีหลายร้อยมิติ ตัวแปรหรือลักษณ์ที่เกี่ยวข้องหรือสัมพันธ์กันจะถูกรวบไปในทิศทางเดียวกันในมิติที่ลดทอนลงนั้นได้. วิธีการที่รู้จักกันคือการใช้ principle component analysis (PCA) และ factor analysis.

PCA เป็นการกำหนดให้ข้อมูลเหลือมิติสำคัญจำนวนหนึ่งเรียกว่า component. วิธีการนี้ ทำให้เราสามารถแปลงตัวแปรเดิมที่มีไปเป็นตัวแปรใหม่หรือ component ได้ เป็นการสร้างตัวแปรใหม่ตามหลักคณิตศาสตร์. ให้ C หรือ component คำนวณจากตัวแปรเดิมในสัดส่วนต่างๆ (C = w1(Y1) + w2(Y2) + w3(Y3) + w4(Y4)) คือ คิดว่า component ที่สร้างใหม่มาจากตัวแปรเดิมแต่ละตัวในสัดส่วนเท่าไร. ส่วน Factor analysis จะลดมิติในอีกแบบ คือ หา factor ซึ่งเป็นตัวแปรซ่อนเร้น (latent variable) ที่มาจากตัวแปรเดิมแต่ละตัว (Y1 = b1*F + u1, Y2 = b2*F + u2, Y3 = b3*F + u3, Y4 = b4*F + u4) คือดูว่าตัวแปรเดิมแต่ละตัว (Y1, …, Y4) มีผลมากน้อยต่อตัวแปรใหม่ (F) แค่ไหน [7]

Biber (1988) [8]ใช้ factor analysis ในการวิเคราะห์ลดทอนมิติที่มาจากลักษณ์ทางภาษาจำนวนมากให้เหลือ 7 มิติ. แต่ละมิติสะท้อนภาพการใช้ภาษาในลักษณะต่างๆ เช่น Dimension-1 ซึ่งถูกวิเคราะห์ว่าแสดงถึงลักษณะ involved and information production เพราะมองเห็นว่าลักษณ์ที่เป็นเรื่องของภาษาพูดให้คะแนนบวกในมิตินี้ เช่น การใช้ private verb, THAT deletion, second person pronoun, demonstrative pronoun, etc. ในขณะที่ลักษณ์ที่เป็นเรื่องภาษาที่ให้ข้อมูลทางการจะได้คะแนนลบ เช่น การใช้ noun, word length, type/token ratio, preposition etc. การลดทอนมิติโดยใช้ factor analysis นี้ทำให้เห็นภาพตัวบทประเภทต่าง ๆ ได้ชัดขึ้น text ที่เป็นการสนทนามีคะแนนมิติที่ 1 เป็นบวกสูง แต่ text ที่เป็นเอกสารทางการมีคะแนนติดลบในมิติที่ 1 นี้

แม้ว่า factor analysis และ PCA เป็นเทคนิคที่ใช้เพื่อลดทอนมิติข้อมูลเหมือนกัน แต่ factor analysis มองหาตัวแปรซ่อนเร้นที่มาจากตัวแปรเดิมหรือในกรณีงานของ Biber คือลักษณ์ทางภาษา ตัวแปรใหม่พิจารณาจาก co-occurrence ของลักษณ์ต่างๆ นี้จึงเหมาะสมกับการใช้งานเพราะตัวแปรใหม่หรือ factor เป็นสิ่งที่มีความหมายอิงจากตัวแปรเดิม ต่างจาก PCA ที่ตัวแปรใหม่มุ่งที่การ maximize variance จากตัวแปรเดิม อาจสะท้อนหรือไม่สะท้อนสิ่งที่ซ่อนเร้นในตัวแปรเดิมนั้นก็ได้ [9]

บทสรุป

ข้อมูลทางภาษาก็เป็นข้อมูลประเภทหนึ่งที่สามารถแจกแจง นับ วัดคำนวณค่าได้ หรือแม้แต่วิเคราะห์เพิ่มเติม หรือสังเคราะห์ออกมาเป็นชุดข้อมูลที่นำมาใช้คำนวณทางสถิติต่อไปได้. ส่วนสถิติก็เป็นศาสตร์อีกแขนงที่มีวิธีการที่หลากหลายสำหรับข้อมูลลักษณะต่างๆ. ความยากของการใช้จึงอยู่ที่การทำความเข้าใจความคิดเบื้องหลังของสถิติแต่ละแบบว่าใช้เพื่ออะไร ใช้กับข้อมูลประเภทไหน เมื่อไรจึงเหมาะสมหรือไม่เหมาะสมที่จะใช้. ทั้งหมดเป็นเรื่องที่ต้องใช้เวลา แต่ก็ไม่ยากเกินไปสำหรับนักภาษา เพราะศาสตร์อื่นๆ ก็มีการใช้ประโยชน์จากวิธีการสถิติได้ไม่แตกต่างกัน.

อ้างอิง

[1] Brezina, V. (2018). Statistics in Corpus Linguistics: A Practical Guide. Cambridge: Cambridge University Press. doi:10.1017/9781316410899

[2] LancsBox http://corpora.lancs.ac.uk/lancsbox/

[3] CQPweb http://cass.lancs.ac.uk/log-ratio-an-informal-introduction/

[4] Schneider, G., & Lauber, M. (2020). The Chi-Square Test. Retrieved from https://dlf.uzh.ch/openbooks/statisticsforlinguists/chapter/chi-square-test-significance-2

[5] Baayen, R. H. (2008). Analyzing Linguistic Data: A Practical Introduction to Statistics using R. Cambridge University Press.

[6] formula function — RDocumentation. (2022, September 22). Retrieved from https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/formula

[7] Grace-Martin, K. (2021). The Fundamental Difference Between Principal Component Analysis and Factor Analysis. Analysis Factor. Retrieved from https://www.theanalysisfactor.com/the-fundamental-difference-between-principal-component-analysis-and-factor-analysis

[8] Biber, Douglas (1988). Variation across speech and writing. Cambridge: Cambridge University Press.

[9] Korstanje, J. (2021). What is the difference between PCA and Factor Analysis? Medium. Retrieved from https://towardsdatascience.com/what-is-the-difference-between-pca-and-factor-analysis-5362ef6fa6f9

--

--