|
|
|
|
@ -4,8 +4,8 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"# Introduction to Probability and Statistics\n",
|
|
|
|
|
"នៅក្នុងសៀវភៅកំណត់ត្រានេះ យើងនឹងលេងជុំវិញខ្លឹមសារជាច្រើនដែលយើងបានពិភាក្សារួចមកហើយ។ ខ្លឹមសារច្រើនពីប្រូបាបល័យនិងស្ថិតិត្រូវបានបង្ហាញយ៉ាងល្អនៅក្នុងបណ្ណាល័យសម្រាប់ដំណើរការទិន្នន័យធំៗនៅក្នុង Python ដូចជា `numpy` និង `pandas`។\n"
|
|
|
|
|
"# ការ៉Introduសេចក្ដីសង្ខេបអំពីប្រហែលនិងស្ថិតិ\n",
|
|
|
|
|
"ក្នុងកំណត់ត្រានេះ យើងនឹងលេងជុំវិញមួយចំនួននៃមូលដ្ឋានដែលយើងបានពិភាក្សាមុននេះ។ គំនិតជាច្រើនពីប្រហែលនិងស្ថិតិនั้นត្រូវបានតំណាងយ៉ាងល្អក្នុងបណ្ណាល័យសំខាន់ៗសម្រាប់ការដំណើរការទិន្នន័យនៅ Python ដូចជា `numpy` និង `pandas`។\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -24,8 +24,8 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## អថេរចៃដន្យ និងការបែងចែក\n",
|
|
|
|
|
"ចាប់ផ្តើមដោយគូសគំរូតម្លៃ ៣០ ពីការបែងចែកសមាមាត្រពី ០ ដល់ ៩។ យើងនឹងគណនាមធ្យម និងអាំងធរីយ៍ផងដែរ។\n"
|
|
|
|
|
"## អថេរពហុភាព និង ចែកចាយ\n",
|
|
|
|
|
"យើងចាប់ផ្តើមដោយគូរឧទាហរណ៍មួយនៃតម្លៃចំនួន ៣០ ពីចែកចាយសមាមាត្រពី ០ ទៅ ៩។ យើងនឹងគណនាមធ្យម និង វារីយ៉ងផងដែរ។\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -44,7 +44,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ដើម្បីប៉ាន់ប្រមាណជាមុំពិភាក្សាថាអ្វីមានតម្លៃខុសគ្នាប៉ុន្មាននៅក្នុងគំរូ យើងអាចគូរសៀវភៅ **បន្ទាត់ប្រវែងតម្លៃ**៖\n"
|
|
|
|
|
"ដើម្បីវាស់វែងដោយភ្នែកថាមានតម្លៃខុសគ្នាប៉ុន្មានក្នុងគំរូ យើងអាចគូស **ពហុបន្ទាត់បង្ហាញចំនួន**៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -61,9 +61,9 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## ការវិភាគទិន្នន័យពិត\n",
|
|
|
|
|
"## ការវិភាគទិន្នន័យពិតប្រាកដ\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"មធ្យម និងមធ្យមវិលមានសារៈសំខាន់ណាស់ពេលវិភាគទិន្នន័យពិភពលោកពិត។ ចូរយើងផ្ទុកទិន្នន័យអំពីអ្នកលេងបេសបលពី [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
|
|
|
|
|
"តម្លៃក្នុងមធ្យម និងកម្រិតអថេរជារឿងសំខាន់ណាស់ពេលវិភាគទិន្នន័យពិភពពិត។ យើងត្រូវផ្ទុកទិន្នន័យអំពីអ្នកលេងបេសបូលមកពី [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -80,9 +80,9 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"> យើងកំពុងប្រើកញ្ចប់មួយដែលហៅថា [**Pandas**](https://pandas.pydata.org/) នៅទីនេះសម្រាប់វិភាគទិន្នន័យ។ យើងនឹងនិយាយលម្អិតបន្ថែមអំពី Pandas និងការងារជាមួយទិន្នន័យក្នុង Python នៅពេលក្រោយក្នុងវគ្គសិក្សានេះ។\n",
|
|
|
|
|
"> យើងកំពុងប្រើកញ្ចប់មួយហៅថា [**Pandas**](https://pandas.pydata.org/) នៅទីនេះសម្រាប់វិភាគទិន្នន័យ។ យើងនឹងនិយាយបន្ថែមអំពី Pandas និងការធ្វើការជាមួយទិន្នន័យនៅក្នុង Python បន្តទៀតនៅវគ្គសិក្សានេះ។\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"មកគណនាភាគរយមធ្យមសម្រាប់អាយុ កម្ពស់ និងទម្ងន់៖\n"
|
|
|
|
|
"យើងចូរគណនាតម្លៃមធ្យមសម្រាប់អាយុ កម្ពស់ និងទំងន់៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -98,7 +98,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ឥឡូវនេះយើងលើកកម្ពស់ និងគណនាផ្ទុកស្តង់ដារ និងភាពចំរូង:\n"
|
|
|
|
|
"ឥឡូវនេះចង់ផ្តោតលើកម្ពស់ ហើយគណនាការតម្រួតស្តង់ដារ និងការបម្លែង៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -126,7 +126,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"សម្លាប់ពីមធ្យម គឺមានហេតុផលក្នុងការពិនិត្យមើលតម្លៃមេឌៀន និងកត់សញ្ញាត្រីមុំផងដែរ។ ពួកវាអាចត្រូវបានបង្ហាញជារូបភាពដោយប្រើ **បន្ទះប្រអប់**៖\n"
|
|
|
|
|
"បន្ទាប់ពីគណនាមធ្យមគិត វាមានហេតុផលក្នុងការមើលចំលាស់មធ្យមនិងតម្លៃបួនភាគ។ ពួកវាអាចត្រូវបានបង្ហាញដោយការប្រើ **តារាងប្រអប់**:\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -136,7 +136,7 @@
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"plt.figure(figsize=(10,2))\n",
|
|
|
|
|
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
|
|
|
|
|
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
|
|
|
|
|
"plt.grid(color='gray', linestyle='dotted')\n",
|
|
|
|
|
"plt.tight_layout()\n",
|
|
|
|
|
"plt.show()"
|
|
|
|
|
@ -146,7 +146,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"យើងក៏អាចបង្កើតតារាងប្រអប់សម្រាប់ផ្នែករងនៃឃ្លាំងទិន្នន័យរបស់យើងបានផងដែរ ឧទាហរណ៍ ក្រុមតាមតួនាទីអ្នកលេង។\n"
|
|
|
|
|
"យើងក៏អាចបង្កើតប្លង់ប្រអប់សម្រាប់ចំណែកខាងក្រោមនៃសំណុំទិន្នន័យរបស់យើងបានផងដែរ ប្រើលក្ខណៈផ្នែកតួអង្គអ្នកលេង។\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -165,9 +165,9 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"> **ចំណាំ**: រូបតំណាងនេះសំដៅថា ជាមធ្យម កម្ពស់របស់អ្នកលំហាត់ទីមួយខ្ពស់ជាងអ្នកលំហាត់ទីពីរ។ ប្រាកដថានៅពេលក្រោយ យើងនឹងរៀនពីរបៀបដែលយើងអាចតេស្តសន្និដ្ឋាននេះយ៉ាងម៉នា និងរបៀបបង្ហាញថាទិន្នន័យរបស់យើងមានសារៈសំខាន់ផ្នែកស្ថិតិដើម្បីបង្ហាញថា។ \n",
|
|
|
|
|
"> **សម្គាល់**: គំនូសបង្ហាញនេះបញ្ជាក់ថា, imធម្មតា, កម្ពស់របស់អ្នកលេងទីមួយឆ្មាំខ្នាតខ្ពស់ជាងកម្ពស់របស់អ្នកលេងទីពីរចំហៀង។ បន្ទាប់មកយើងនឹងរៀនពីរបៀបដែលយើងអាចសាកល្បងសفرضនេះយ៉ាងផ្លូវការ និងរបៀបបង្ហាញថាទិន្នន័យរបស់យើងមានសារៈសំខាន់ផ្នែកស្ថិតិដើម្បីបង្ហាញវា។ \n",
|
|
|
|
|
"\n",
|
|
|
|
|
"អាយុ កម្ពស់ និងទំងន់ គឺជាអថេរដែលចេញពីចៃដន្យបន្តបន្ទាប់ទាំងអស់។ តើអ្នកគិតថា ការចែកចាយរបស់ពួកវាគឺដូចម្ដេច? វិធីល្អមួយដើម្បីស្វែងរកគឺបោះពុម្ពបន្ទាត់សៀគ្វីតម្លៃ៖ \n"
|
|
|
|
|
"អាយុ, កម្ពស់ និងទំងន់គឺជាអថេរចៃអង្គលាប់តន្រ្តីបន្តបន្ទាប់ទាំងអស់។ តើអ្នកគិតថាចំណែកចាយរបស់ពួកគេជាអ្វី? វិធីល្អមួយក្នុងការរកពុំកំណត់គឺគូសតារាងហ៊ីស្តូក្រាមនៃតម្លៃ: \n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -190,7 +190,7 @@
|
|
|
|
|
"source": [
|
|
|
|
|
"## ការចែកចាយធម្មតា\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"មកបង្កើតគំរូមួយនៃទំងន់ដែលតាមការចែកចាយធម្មតាមួយ ដែលមានមធ្យមនិងបម្លែងដូចគ្នានឹងទិន្នន័យពិតរបស់យើង៖\n"
|
|
|
|
|
"យើងមកបង្កើតគំរូទម្ងន់ស្វែងស្រដៀងដែលអនុវត្តទៅនឹងការចែកចាយធម្មតាមួយ ដែលមានមធ្យមនឹងការប្រែប្រួលដូចគ្នា ដូចតម្លៃទិន្នន័យពិតរបស់យើង៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -231,7 +231,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ដោយសារតែតម្លៃភាគច្រើននៅក្នុងជីវិតពិតជាប្រើវិភាគប្រក្រតី យើងមិនគួរប្រើកម្មវិធីបង្កើតលេខចៃដន្យត្រឹមត្រូវស្មើគ្នាទេដើម្បីបង្កើតទិន្នន័យគំរូ។ នេះជារឿងដែលកើតឡើងប្រសិនបើយើងព្យាយាមបង្កើតទម្ងន់ជាមួយការបែងចែកត្រឹមត្រូវស្មើគ្នា (បង្កើតដោយ `np.random.rand`):\n"
|
|
|
|
|
"ពីព្រោះតម្លៃភាគច្រើននៅក្នុងជីវិតពិតមានការបែងចែកធម្មតា យើងមិនគួរប្រើកម្មង់បង្កើតលេខចៃដន្យស្មើគ្នា ដើម្បីបង្កើតទិន្នន័យគំរូឡើយ។ នេះគឺជាអ្វីកើតឡើង ប្រសិនបើយើងព្យាយាមបង្កើតទំងន់ជាមួយការបែងចែកស្មើគ្នា (បង្កើតដោយ `np.random.rand`):\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -251,9 +251,9 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## ចន្លោះទំនុកចិត្ត\n",
|
|
|
|
|
"## ជួរជឿជាក់\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"ឥឡូវនេះយើងនឹងគណនាចន្លោះទំនុកចិត្តសម្រាប់ទម្ងន់និងកម្ពស់របស់អ្នកលេងបេស្បាល់។ យើងនឹងប្រើកូដ [ពីការពិភាក្សានៅ stackoverflow នេះ](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
|
|
|
|
|
"ឥឡូវនេះ យើងនឹងគណនាជួរជឿជាក់សម្រាប់ទម្ងន់ និងកម្ពស់របស់អ្នកលេងបេស្បាល់។ យើងនឹងប្រើកូដ [ពីការពិភាក្សានៅ stackoverflow นี้](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data)៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -272,7 +272,7 @@
|
|
|
|
|
" return m, h\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"for p in [0.85, 0.9, 0.95]:\n",
|
|
|
|
|
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
|
|
|
|
|
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
|
|
|
|
|
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
@ -282,7 +282,7 @@
|
|
|
|
|
"source": [
|
|
|
|
|
"## ការធ្វើតេស្តសន្និដ្ឋាន\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"ចូរយើងស្រាវជ្រាវតួនាទីផ្សេងៗនៅក្នុងឃ្លាំងទិន្នន័យកីឡាករបេស្បលរបស់យើង៖\n"
|
|
|
|
|
"ចូរយើងស្វែងយល់អំពីតួនាទីផ្សេងៗនៅក្នុងទិន្នន័យអ្នកលេងបេសបលរបស់យើង៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -298,7 +298,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"យើងចង់សាកល្បងការសន្មត់ថាអ្នកធ្វើងារដំបូងមានកម្ពស់ខ្ពស់ជាងអ្នកធ្វើងារទីពីរ។ វិធីសាមញ្ញបំផុតក្នុងការធ្វើនេះគឺការតេស្តចន្លោះទំនុកចិត្តៈ\n"
|
|
|
|
|
"មកសាកល្បងសន្មតការណ៍ថា អ្នកលេងទីមួយនៅទីមូលដ្ឋានខូចខ្លាំងជាងអ្នកលេងទីពីរនៅទីមូលដ្ឋាន។ វិធីងាយស្រួលបំផុតក្នុងការធ្វើនេះគឺសាកល្បងចន្លោះទំនុកចិត្ត៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -317,9 +317,9 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"យើងអាចឃើញថា ខ្សែពេលពុំមានការឆ្លងគ្នាទេ។\n",
|
|
|
|
|
"យើងអាចឃើញថា ចន្លោះពេលនីមួយៗមិនទាន់ប្រហែលគ្នា។\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"វិធីសាស្រ្តដែលត្រឹមត្រូវជាងសម្រាប់បញ្ជាក់សន្មត់គឺការប្រើប្រាស់ **មេត្រការសាកល្បង t របស់សិស្ស**:\n"
|
|
|
|
|
"វិធីសាស្ត្រមានស្ថិតិដែលមានភាពត្រឹមត្រូវជាងក្នុងការបញ្ជាក់សម្រង់គំនិតគឺការប្រើប្រាស់ **ការធ្វើតេស្តStudent t**:\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -338,18 +338,18 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ពីរតម្លៃដែលត្រូវបានត្រឡប់តាមរយៈមុខងារ `ttest_ind` គឺ៖\n",
|
|
|
|
|
"* p-value អាចត្រូវបានគិតជាប្រាស្រ័យភាពនៃការចែកចាយពីរដែលមានមធ្យមដូចគ្នា។ សម្រាប់ករណីរបស់យើង វាទាបណាស់ មានន័យថាមានភស្តុតាងខ្លាំងគាំទ្រថា first basemen មានកម្ពស់ខ្ពស់ជាង។\n",
|
|
|
|
|
"* t-value គឺជាតម្លៃមន្ទីរប្រមាណនៃភាពខុសគ្នាមធ្យមដែលបានធម្មតា ដែលត្រូវបានប្រើនៅក្នុងការស្ទង់មតិ t-test ហើយវាត្រូវបានប្រៀបធៀបទៅនឹងតម្លៃកម្រិតមួយសម្រាប់តម្លៃទំនុកចិត្តមួយ។\n"
|
|
|
|
|
"តម្លៃពីរដែលបានត្រឡប់មកវិញដោយមុខងារ `ttest_ind` គឺ:\n",
|
|
|
|
|
"* តម្លៃ p-value អាចត្រូវបានគេពិចារណាថា ជាភាគហ៊ុននៃការហ្វឹកហាត់ពីរដែលមានមធ្យមដូចគ្នា។ ក្នុងករណីរបស់យើង វាតិចណាស់ មានន័យថាមានភស្តុតាងដ៏ខ្លាំងគាំទ្រថាអ្នកលេងបាស្មែនទីមួយចម្បងមានកម្ពស់វែងជាង។\n",
|
|
|
|
|
"* តម្លៃ t-value គឺជាតម្លៃមធ្យមកំណត់ទំរង់ធម្មតាចន្លោះដែលត្រូវបានប្រើនៅក្នុងការធ្វើតេស្ត t ហើយវាត្រូវបានប្រៀបធៀបជាមួយតម្លៃស្តង់ដារសម្រាប់តម្លៃទំនុកចិត្តដែលបានកំណត់។\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## ការសម្រួលចំណែកធម្មជាតិស្របតាមវឌ្ឍនភាពកណ្តាល\n",
|
|
|
|
|
"## ការប្រុផ្សាយចែកចាយធម្មតាជាមួយទ្រឹស្ដីកម្រិតកណ្ដាល\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"ម៉ាស៊ីនបង្កើតចៃដន្យក្នុង Python ត្រូវបានរចនាឡើងដើម្បីផ្តល់នូវចំណែកសាមញ្ញតែមួយ។ ប្រសិនបើយើងចង់បង្កើតម៉ាស៊ីនបង្កើតសម្រាប់ចំណែកធម្មជាតិ យើងអាចប្រើវឌ្ឍនភាពកណ្តាល។ ដើម្បីទទួលបានតម្លៃចែកចាយធម្មជាតិ យើងអាចគណនាមធ្យមនៃចំណែកដែលបង្កើតដោយសាមញ្ញ។\n"
|
|
|
|
|
"ម៉ាស៊ីនចេតនាសំណុំបែបរ៉ែនដុំនៅក្នុង Python ត្រូវបានរចនាឡើងដើម្បីផ្តល់ឲ្យពួកយើងនូវចែកចាយឯករាជ្យស្របគ្នា។ ប្រសិនបើយើងចង់បង្កើតម៉ាស៊ីនចេញសម្រាប់ចែកចាយធម្មតា យើងអាចប្រើទ្រឹស្តីកម្រិតកណ្ដាល។ ដើម្បីទទួលបានតម្លៃចែកចាយធម្មតា យើងគ្រាន់តែគណនាមធ្យមនៃគំរូបង្កើតដោយឯករាជ្យស្របគ្នា។ \n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -375,7 +375,7 @@
|
|
|
|
|
"source": [
|
|
|
|
|
"## ការតភ្ជាប់ និងក្រុមហ៊ុនបេសបូលអាក្រក់\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"ការតភ្ជាប់អនុញ្ញាតឲ្យយើងស្វែងរកទំនាក់ទំនងរវាងលំដាប់ទិន្នន័យ។ នៅក្នុងឧទាហរណ៍ក្មេងលេងរបស់យើង, សូមចរិតថាមានក្រុមហ៊ុនបេសបូលអាក្រក់មួយដែលបង់ប្រាក់ទៅឱ្យកីឡាកររបស់ខ្លួនតាមតម្លៃកម្ពស់ - កីឡាករដែលខ្ពស់ជាងនឹងទទួលបានប្រាក់ច្រើនជាង។ សូមសន្មតថាកំណត់ប្រាក់ខែមូលដ្ឋាន $1000 ហើយមានប្រាក់រង្វាន់បន្ថែមចាប់ពី $0 ដល់ $100 អាស្រ័យលើកម្ពស់។ យើងនឹងយកកីឡាករពិតពី MLB ហើយគណនាប្រាក់ខែស្រមៃរបស់ពួកគេ៖\n"
|
|
|
|
|
"ការតភ្ជាប់អនុញ្ញាតឱ្យយើងរកឃើញទំនាក់ទំនងរវាងខ្សែដាតា។ នៅក្នុងឧទាហរណ៍ល្បែងរបស់យើង សូមជម្រាបថាមានក្រុមហ៊ុនបេសបូលអាក្រក់មួយដែលបង់ប្រាក់ទៅកាន់អ្នកលេងរបស់ខ្លួនផ្អែកលើកម្ពស់របស់ពួកគេ - អ្នកលេងដែលខ្ពស់ជាងនឹងទទួលបានប្រាក់ច្រើនជាង។ សន្និដ្ឋានថាមានប្រាក់បៀវត្សចំបង $1000 ហើយមានប្រាក់បន្ថែមពី $0 ដល់ $100 ដែលផ្អែកលើកម្ពស់។ យើងនឹងយកអ្នកលេងពិតពី MLB ហើយគណនាប្រាក់ឈ្នួលស្រមៃរបស់ពួកគេ៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -384,7 +384,7 @@
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"heights = df['Height'].fillna(method='pad')\n",
|
|
|
|
|
"heights = df['Height'].ffill()\n",
|
|
|
|
|
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
|
|
|
|
|
"print(list(zip(heights, salaries))[:10])"
|
|
|
|
|
]
|
|
|
|
|
@ -393,7 +393,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ឥឡូវយើងនឹងគណនាការសហភាព និងការតភ្ជាប់គ្នារបស់ចំណាត់ថ្នាក់ទាំងនោះ។ `np.cov` នឹងផ្តល់ឲ្យយើងនូវអ្វីដែលគេហៅថា **ម៉ាត្រិកសហភាព** ដែលជាការពង្រីកនៃការសហភាពទៅច្រើនអថេរ។ គ្រឿង $M_{ij}$ នៃម៉ាត្រិកសហភាព $M$ គឺជាការតភ្ជាប់គ្នារវាងអថេរបញ្ចូល $X_i$ និង $X_j$ ហើយតម្លៃបន្ទាត់ឈរ $M_{ii}$ គឺជាការប្រែប្រួលនៃ $X_{i}$។ ដូចគ្នានេះ `np.corrcoef` នឹងផ្តល់ឲ្យយើងនូវ **ម៉ាត្រិកតភ្ជាប់គ្នា**។\n"
|
|
|
|
|
"ឥឡូវនេះ យើងនឹងគណនាអាចប្រើបាន covariance និង correlation របស់សមីការទាំងនោះ។ `np.cov` នឹងផ្តល់ឲ្យយើងនូវអ្វីដែលហៅថា **covariance matrix** ដែលជាការពង្រីកនៃ covariance ទៅនឹងអថេរជាច្រើន។ ធាតុ $M_{ij}$ នៃម៉ាទ្រីស covariance $M$ គឺជាការតភ្ជាប់រវាងអថេរ $X_i$ និង $X_j$ ផ្ទុកក្នុងចំណូល ដោយតម្លៃគន្លងបន្ទាត់ $M_{ii}$ គឺជាអាចប្រើបាននៃ $X_i$។ ដូចគ្នា `np.corrcoef` នឹងផ្តល់ឲ្យយើងនូវ **ម៉ាទ្រីស correlation** ។\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -411,7 +411,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ការតភ្ជាប់ដែលស្មើនឹង 1 មានន័យថាមាន **ទំនាក់ទំនងកែវធីត្រង់** ដែលខ្លាំងមួយរវាងអថេរពីរនេះ។ យើងអាចមើលឃើញទំនាក់ទំនងកែវធីត្រង់ដោយការគូរតម្លៃមួយប្រឆាំងនឹងមួយផ្សេងទៀតបានជាផ្ទាល់៖\n"
|
|
|
|
|
"ការតភ្ជាប់ស្មើនឹង 1 មានន័យថាមាន**សម្ព័ន្ធបន្ទាត់**ខ្លាំងរវាងអថេរចម្លងពីរគ្នា។ យើងអាចមើលឃើញសម្ព័ន្ធបន្ទាត់នេះបានតាមរយៈការរូបតាងតម្លៃមួយប្រៀបធៀបទៅនឹងមួយផ្សេងទៀត៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -430,7 +430,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"មកមើលថាអ្វីនឹងកើតឡើងបើទំនាក់ទំនងមិនមែនជារស់រាយ។ សន្មតថាក្រុមហ៊ុនរបស់យើងបានសម្រេចចិត្តលាក់បាំងការពឹងផ្អែកលើរូបមន្តរាយច្បាស់រវាងកម្ពស់និងប្រាក់ខែ ហើយបានបញ្ចូលអង្គភាពមិនរាយមួយចូលក្នុងរូបមន្ត ដូចជា `sin`:\n"
|
|
|
|
|
"មកបើកមើលថាអ្វីដែលកើតឡើងបើទំនាក់ទំនងមិនមែនជាផ្លូវបន្ទាត់។ សូមស្រមៃថាក្រុមហ៊ុនរបស់យើងបានសម្រេចចិត្តលាក់ការពឹងផ្អែកផ្លូវបន្ទាត់ដែលច្បាស់លាស់រវាងជម្រោយកម្ពស់ និងប្រាក់ខែ ហើយបានបញ្ចូលករណីមិនមែនផ្លូវបន្ទាត់ក្នុងរូបមន្ត ដូចជា `sin`៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -447,7 +447,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ក្នុងករណីនេះ ការចងកCorrារតិ្តគឺតូចជាងបន្តិច ប៉ុន្តែវាទោះជាយ៉ាងណាក៏ដោយនៅតែខ្ពស់។ ឥឡូវនេះ ដើម្បីធ្វើឱ្យទំនាក់ទំនងមិនច្បាស់លាស់ យើងអាចចង់បន្ថែមភាពចៃដន្យបន្ថែមមួយចំនួនដោយបន្ថែមអថេរចៃដន្យមួយចំនួនទៅលើប្រាក់ខែ។ សូមមកមើលថាអ្វីកើតឡើង៖\n"
|
|
|
|
|
"ក្នុងករណីនេះ ការតភ្ជាប់គ្នាមានទំហំតិចបន្តិច ប៉ុន្តែវានៅតែខ្ពស់ជាងមធ្យម។ ឥឡូវនេះ ដើម្បីធ្វើអោយទំនាក់ទំនងកាន់តែអស្បថ យើងអាចចង់បន្ថែម ភាពចៃដន្យបន្ថែមមួយចំនួន ដោយបន្ថែមអថេរចៃដន្យមួយចំនួនទៅលើប្រាក់ខែ។ សូមមើលថាមើលមានអ្វីកើតឡើង៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -476,9 +476,9 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"> តើអ្នកអាចទាយបានទេថាមូលហេតុដែលចំណុចទាំងនេះរៀបខ្នងតាមបន្ទាត់ដេកដូចនេះ?\n",
|
|
|
|
|
"> តើអ្នកអាចគិតចិត្យថាហេតុអ្វីបានជាចំណុចដូចជាបានជួរតូចៗកាត់មានជួរដេកដូចនេះ?\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"យើងបានសង្កេតឃើញការតភ្ជាប់រវាងគំនិតដែលបានបង្កើតឡើងដោយក្លែងបំពានដូចជា वेतन និងអថេរដែលបានសង្កេតឃើញ *កំពស់*។ តោះមើលថាតើអថេរដែលបានសង្កេតពីរដូចជា កំពស់ និង ទំងន់ មានការតភ្ជាប់គ្នាទៅដែរ៖\n"
|
|
|
|
|
"យើងបានសង្កេតឃើញការតភ្ជាប់រវាងយុទ្ធសាស្ត្រដែលបានបង្កើតឡើងដោយសិប្បនិម្មិតដូចជាការប្រាក់និងអថេរដែលបានសង្កេត *កម្ពស់*។ យើងក៏ព្យាយាមមើលថាតើអថេរសង្កេតពីរ ដូចជា កម្ពស់ និងទម្ងន់ មានការតភ្ជាប់គ្នាផងដែរឬទេ៖\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -494,11 +494,11 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"យ៉ាងក្រៀមក្រំពេក យើងមិនទទួលបានលទ្ធផលណាមួយទេ - មានតែតម្លៃ `nan` ដែលចម្លែកខ្លះប៉ុណ្ណោះ។ នេះបណ្តាលមកពីការពិតថាតម្លៃខ្លះនៅក្នុងស៊េរីរបស់យើងមិនបានកំណត់ សម្គាល់ជាទម្រង់ `nan` ដែលបណ្តាលឲ្យលទ្ធផលនៃប្រតិបត្តិការមិនបានកំណត់ដែរ។ ដោយមើលទៅលើម៉ាទ្រីស យើងអាចឃើញថា `Weight` គឺជាឈ្មោះជួរឈរដែលមានបញ្ហា ពីព្រោះការជាប់គ្នាទៅវិញទៅមករវាងតម្លៃ `Height` ត្រូវបានគណនា។\n",
|
|
|
|
|
"ដោយអកុសល យើងមិនទទួលបានលទ្ធផលអ្វីទេ - មានតែតម្លៃ `nan` ខ្លះៗដែលគួរឲ្យសង្ស័យប៉ុណ្ណោះ។ នេះស្ថិតនៅក្នុងសភាពព្រោះថាតម្លៃខ្លះៗនៅក្នុងស៊េរីរបស់យើងមិនត្រូវបានកំណត់ ទទួលបានបង្ហាញជាទម្លាញ់ `nan` ដែលធ្វើឲ្យលទ្ធផលនៃប្រតិបត្តិការ គឺមិនត្រូវបានកំណត់ដែរ។ ដោយការមើលទៅកាន់ម៉ាទ្រីស យើងអាចឃើញថា `Weight` គឺជាឈូងដែលបញ្ហា ព្រោះវាសំដៅទៅការប្រៀបធៀបខ្លួនឯងនៅចន្លោះតម្លៃ `Height` បានគណនា។\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"> ឧទាហរណ៍នេះបង្ហាញពីសារៈសំខាន់នៃ **ការរៀបចំទិន្នន័យ** និង **ការសំអាត**។ ពុំមានទិន្នន័យត្រឹមត្រូវ យើងមិនអាចគណនាអ្វីបានទេ។\n",
|
|
|
|
|
"> ឧទាហរណ៍នេះបង្ហាញពីសារៈសំខាន់នៃ **ការរៀបចំទិន្នន័យ** និង **ការសម្អាត**។ គ្មានទិន្នន័យត្រឹមត្រូវ យើងមិនអាចគណនាអ្វីបានទេ។\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"ចង់យកវិធីសាស្ត្រ `fillna` ដើម្បីបំពេញតម្លៃខ្វះ ហើយគណនាការជាប់គ្នាទៀត៖ \n"
|
|
|
|
|
"យើងមកប្រើវិធីសាស្រ្ត `fillna` ដើម្បីបំពេញតម្លៃដែលខ្វះ ហើយគណនាការប្រៀបធៀប:\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -507,14 +507,14 @@
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
|
|
|
|
|
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"ពិតជាមានសមាបាត្រ ប៉ុន្តែមិនខ្លាំងដូចក្នុងឧទាហរណ៍ក្លែងក្លាយរបស់យើងទេ។ ពិតណាស់ ប្រសិនបើយើងមើលផ្លូវកំណត់ចំណុចរវាងតម្លៃមួយនិងមួយផ្សេងទៀត ទំនាក់ទំនងនោះនឹងមិនច្បាស់លាស់ដូចមុនទេ៖\n"
|
|
|
|
|
"មានការតភ្ជាប់ពិតណាស់ ប៉ុន្តែមិនខ្លាំងបែបនៅក្នុង ឧទាហរណ៍សិប្បនិម្មិតរបស់ពួកយើងទេ។ ពិតជាកាលណាយើងមើលទីតាំងបែកចេញរវាងតម្លៃមួយនិងមួយផ្សេងទៀត សមត្ថភាពនៃទំនាក់ទំនងនឹងច្បាស់តិចជាងនេះ:\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -535,16 +535,16 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"## អធិប្បាយទ្រង់ទ្រាយ\n",
|
|
|
|
|
"## សេចក្ដីសន្និដ្ឋាន\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"នៅក្នុងសៀវភៅកំណត់ត្រានេះ យើងបានរៀនពីវិធីធ្វើប្រតិបត្តិការមូលដ្ឋានលើទិន្នន័យ ដើម្បីគណនាអនុគមន៍ស្ថិតិ។ យើងឥឡូវនេះបានដឹងពីរបៀបប្រើឧបករណ៍គណិតវិទ្យា និងស្ថិតិក្នុងការបង្ហាញសន្និដ្ឋានខ្លះៗ និងរបៀបគណនាជម្លោះទំនុកចិត្តសម្រាប់អថេរណាមួយដែលផ្អែកលើគំរូទិន្នន័យ។\n"
|
|
|
|
|
"ក្នុងសៀវភៅកំណត់ត្រានេះ យើងបានរៀនពីរបៀបអនុវត្តបេសកកម្មមូលដ្ឋានលើទិន្នន័យដើម្បីគណនាអនុគមន៍ស្ថិតិ។ យើងឥឡូវនេះបានដឹងពីរបៀបប្រើឧបករណ៍គណិតវិទ្យា និងស្ថិតិសមរម្យដើម្បីបញ្ជាក់ទ្រឹស្តីមួយចំនួន ព្រមទាំងរបៀបគណនាជួរជឿជាក់សម្រាប់អថេរណាមួយដែលបានផ្តល់ដោយគំរូទិន្នន័យ។ \n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំដល់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពខុសត្រូវខ្លះ។ ឯកសារដើមជាភាសាម្ចាស់វាជាគោលការណ៍ដើមដែលត្រូវបានគេគិតជាទីបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមពិចារណាបកប្រែដោយអ្នកជំនាញផ្នែកមនុស្ស។ យើងមិនទទួលបន្ទុកចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់នៃការបកប្រែនេះឡើយ។\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
|
|
|
|
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ការបដិសេធ**:\nឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
|