You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
575 lines
28 KiB
575 lines
28 KiB
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# అవకాశం మరియు గణాంకాల పరిచయం\n",
|
|
"ఈ నోట్బుక్లో, మనం మునుపటి చర్చించిన కొన్ని సూత్రాలతో ఆడుకునే అవకాశం ఉంది. అవకాశం మరియు గణాంకాల నుండి వచ్చిన అనేక సూత్రాలు Python లో డేటా ప్రాసెసింగ్ కోసం ఉపయోగించే ప్రధాన లైబ్రరీలు అయిన `numpy` మరియు `pandas` లో బాగా ప్రతినిధ్యం వహిస్తున్నాయి.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"import random\n",
|
|
"import matplotlib.pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## యాదృచ్ఛిక చారాలు మరియు పంపిణీలు\n",
|
|
"0 నుండి 9 వరకు సమాన పంపిణి నుండి 30 విలువల నమూనాను చిత్రించడం ప్రారంభిద్దాం. మేము కూడా సగటు మరియు వ్యత్యాసాన్ని గ есепించబోతున్నాం.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"sample = [ random.randint(0,10) for _ in range(30) ]\n",
|
|
"print(f\"Sample: {sample}\")\n",
|
|
"print(f\"Mean = {np.mean(sample)}\")\n",
|
|
"print(f\"Variance = {np.var(sample)}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"నమూనాలో ఎన్ని విభిన్న విలువలు ఉన్నాయో దృష్టిగతంగా అంచనా వేయడానికి, మనం **హిస్టోగ్రాం**ను చిత్రించవచ్చు:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.hist(sample)\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## వాస్తవ డేటాను విశ్లేషించడం\n",
|
|
"\n",
|
|
"గుణాత్మక మరియు మార్పిడి విలువలు వాస్తవ ప్రపంచ డేటాను విశ్లేషించేటప్పుడు చాలా ముఖ్యమైనవి. [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) నుండి బేస్బాల్ క్రీడాకారుల గురించి డేటాను లోడ్ చేద్దాం\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df = pd.read_csv(\"../../data/SOCR_MLB.tsv\",sep='\\t', header=None, names=['Name','Team','Role','Weight','Height','Age'])\n",
|
|
"df\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"> మేము ఇక్కడ డేటా విశ్లేషణ కోసం [**Pandas**](https://pandas.pydata.org/) అనే ప్యాకేజ్ ఉపయోగిస్తున్నాము. ఈ కోర్సులో తర్వాత Pandas మరియు Pythonలో డేటాతో పని చేయడం గురించి మరింత extensively మాట్లాడబోతున్నాం.\n",
|
|
"\n",
|
|
"వయస్సు, ఎత్తు మరియు బరువు కోసం సగటు విలువలను లెక్కించుకుందాం:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df[['Age','Height','Weight']].mean()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"ఇప్పుడు మనం ఎత్తుపై ఆసక్తి కనబరుస్తాము, మరియు ప్రామాణిక రొట్టడింపు మరియు వ్యత్యాసం లెక్కించండి: \n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"print(list(df['Height'])[:20])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"mean = df['Height'].mean()\n",
|
|
"var = df['Height'].var()\n",
|
|
"std = df['Height'].std()\n",
|
|
"print(f\"Mean = {mean}\\nVariance = {var}\\nStandard Deviation = {std}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"సగటుకు అదనంగా, మధ్య విలువ మరియు క్వార్టైల్లను చూసుకోవడం తగినది. వాటిని **బాక్స్ ప్లాట్** ఉపయోగించి దర్శించవచ్చు:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.figure(figsize=(10,2))\n",
|
|
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
|
|
"plt.grid(color='gray', linestyle='dotted')\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"మన డేటాసెట్ యొక్క ఉపసెట్ల బాక్స్ ప్లాట్లు కూడా తయారు చేసుకోవచ్చు, ఉదాహరణకు, ప్లేయర్ పాత్ర ఆధారంగా సమూహీకరించి.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df.boxplot(column='Height', by='Role', figsize=(10,8))\n",
|
|
"plt.xticks(rotation='vertical')\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"> **గమనిక**: ఈ రేఖాచిత్రం సూచించేది, సగటున, మొదటి బేస్మెన్ قدలు రెండవ బేస్మెన్స్ కంటే ఎక్కువ ఉంటాయని. తరువాత మేము ఈ సిద్ధాంతాన్ని మరింత అధికారికంగా ఎలా పరీక్షించవచ్చో, మరియు మా డేటా గణాంకపూర్వకంగా ముఖ్యమైనదని ఎలా చూపించవచ్చో నేర్చుకోబోతున్నాము. \n",
|
|
"\n",
|
|
"వయస్సు, ఎత్తు మరియు బరువు అన్నీ కొనసాగుతున్న యాదృచ్ఛిక మార్పులు. వాటి పంపిణీ ఏమిటి అనుకుంటున్నారా? ఒక మంచి మార్గం, విలువల యొక్క హిస్టోగ్రామ్ను వ్రచడం: \n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df['Weight'].hist(bins=15, figsize=(10,6))\n",
|
|
"plt.suptitle('Weight distribution of MLB Players')\n",
|
|
"plt.xlabel('Weight')\n",
|
|
"plt.ylabel('Count')\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## సస్సా పంపిణీ\n",
|
|
"\n",
|
|
"మన వాస్తవ డేటాతో ఇదే సగటు మరియు విచలనం కలిగిన సుస్సా పంపిణీని అనుసరించే బరువు యొక్క ఒక కృత్రిమ నమూనాను తయారు చేద్దాం:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"generated = np.random.normal(mean, std, 1000)\n",
|
|
"generated[:20]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.figure(figsize=(10,6))\n",
|
|
"plt.hist(generated, bins=15)\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.figure(figsize=(10,6))\n",
|
|
"plt.hist(np.random.normal(0,1,50000), bins=300)\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"నిజ జీవితం లో ఎక్కువ భాగం విలువలు సాధారణంగా పంపిణీ చేయబడతాయి కాబట్టి, నమూనా డేటా ఉత్పత్తి చేయడానికి సమాన రాండమ్ సంఖ్య జనరేటర్ను ఉపయోగించకూడదు. సమాన పంపిణీతో బరువులను ఉత్పత్తి చేయాలని ప్రయత్నిస్తే ఏమి జరుగుతుందో ( `np.random.rand` ఉపయోగించి ఉత్పత్తి చేయబడింది) ఇక్కడ ఉంది:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"wrong_sample = np.random.rand(1000)*2*std+mean-std\n",
|
|
"plt.figure(figsize=(10,6))\n",
|
|
"plt.hist(wrong_sample)\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## విశ్వసనీయత అంతर्वిలయాలు\n",
|
|
"\n",
|
|
"ఇప్పుడు బేస్బాల్ ఆటగాళ్ళ బరువు మరియు ఎత్తుల కోసం విశ్వసనీయత అంతర్వილయాలను లెక్కించుకుందాం. మనం [ఈ stackoverflow చర్చలోని కోడ్](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data) ను ఉపయోగించుకుంటాము:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import scipy.stats\n",
|
|
"\n",
|
|
"def mean_confidence_interval(data, confidence=0.95):\n",
|
|
" a = 1.0 * np.array(data)\n",
|
|
" n = len(a)\n",
|
|
" m, se = np.mean(a), scipy.stats.sem(a)\n",
|
|
" h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)\n",
|
|
" return m, h\n",
|
|
"\n",
|
|
"for p in [0.85, 0.9, 0.95]:\n",
|
|
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
|
|
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## హైపోథసిస్ పరీక్ష\n",
|
|
"\n",
|
|
"మన బేస్ బాల్ ఆడేవార డేటాసెట్లో వివిధ పాత్రలను పరిశీలిద్దాం:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df.groupby('Role').agg({ 'Weight' : 'mean', 'Height' : 'mean', 'Age' : 'count'}).rename(columns={ 'Age' : 'Count'})"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"మనం మొదటి బేస్మెన్లు రెండవ బేస్మెన్ల కంటే ఎత్తైనవారా అనే ఊహను పరీక్షిద్దాం. దీనిని చేయడానికి సరళమైన మార్గం విశ్వాస యంత్రాల్ని పరీక్షించడం:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"for p in [0.85,0.9,0.95]:\n",
|
|
" m1, h1 = mean_confidence_interval(df.loc[df['Role']=='First_Baseman',['Height']],p)\n",
|
|
" m2, h2 = mean_confidence_interval(df.loc[df['Role']=='Second_Baseman',['Height']],p)\n",
|
|
" print(f'Conf={p:.2f}, 1st basemen height: {m1-h1[0]:.2f}..{m1+h1[0]:.2f}, 2nd basemen height: {m2-h2[0]:.2f}..{m2+h2[0]:.2f}')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"మేము ఇంటర్వాల్స్ అతుకులుపోనట్లు కనుగొంటాం.\n",
|
|
"\n",
|
|
"ఒక గణాంకంగా మరింత సరి అయిన విధానం అనే హైపోతీసిస్ ను సాక్ష్యపరచడానికి **స్టూడెంట్ t-టెస్ట్** ను ఉపయోగించడం.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from scipy.stats import ttest_ind\n",
|
|
"\n",
|
|
"tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Second_Baseman',['Height']],equal_var=False)\n",
|
|
"print(f\"T-value = {tval[0]:.2f}\\nP-value: {pval[0]}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"`ttest_ind` ఫంక్షన్ తిరుగు ఇచ్చే రెండు విలువలు:\n",
|
|
"* p-విలువను రెండు వితరణల సగటు ఒకే విధంగా ఉండే అవకాశంగా పరిగణించవచ్చు. మన కేసులో, ఇది చాలా తక్కువగా ఉంది, అంటే ఫస్ట్ బేస్మేన్లు ఎక్కువ ఎత్తుగలవారని బలమైన సాక్ష్యం ఉంది.\n",
|
|
"* t-విలువు అనేది సగటు తేడా సాధారణీకరించిన మధ్యంతర విలువు, ఇది t-టెస్ట్లో ఉపయోగిస్తారు, మరియు ఇచ్చిన విశ్వసనీయత విలువ కోసం ఒక సరిహద్దు విలువతో పోల్చబడుతుంది.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## సెంట్రల్ లిమిట్ థియరీతో సాధారణ పంపిణీని అనుకరించడం\n",
|
|
"\n",
|
|
"పైథాన్ లోని ప్స్యూడో-యాదృచ్ఛిక జనరేటర్ మనకు ఒక సమమైన పంపిణీని అందించే విధంగా రూపొందించబడింది. సాధారణ పంపిణీ కోసం ఒక జనరేటర్ సృష్టించాలనుకుంటే, మనం సెంట్రల్ లిమిట్ థియరీను ఉపయోగించవచ్చు. సాధారణ పంపిణీ విలువను పొందడానికి, మనం సమమైనంగా ఉత్పన్నమైన నమూనా యొక్క సగటును లెక్కించాలి.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def normal_random(sample_size=100):\n",
|
|
" sample = [random.uniform(0,1) for _ in range(sample_size) ]\n",
|
|
" return sum(sample)/sample_size\n",
|
|
"\n",
|
|
"sample = [normal_random() for _ in range(100)]\n",
|
|
"plt.figure(figsize=(10,6))\n",
|
|
"plt.hist(sample)\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## సంబంధం మరియు చెడ్డ బేస్బాల్ కార్పొరేషన్\n",
|
|
"\n",
|
|
"సంబంధం మనకు డేటా వరుసల మధ్య సంబంధాలను కనుగొనడానికి సహాయపడుతుంది. మన యొక్క ఆట మాదిరిలో, ఒక చెడ్డ బేస్బాల్ కార్పొరేషన్ ఉందని భావిద్దాం, వారు తమ ఆటగాళ్లకు వారి ఎత్తు ఆధారంగా పే చేస్తుంది - ఆటగాడు ఎత్తైనట్టే, అతని/ఆమెకు ఎక్కువ డబ్బు అందుతుంది. ఒక ఆధార జీతం $1000 ఉంది అని, మరియు ఎత్తు ఆధారంగా $0 నుండి $100 అదనపు బోనస్ ఉంటుంది అని అనుకుందాం. మనం MLB లోని నిజమైన ఆటగాళ్లను తీసుకుని, వారి ఊహాత్మక జీతాలను లెక్కిస్తాము:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"heights = df['Height'].ffill()\n",
|
|
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
|
|
"print(list(zip(heights, salaries))[:10])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"ఇప్పుడు ఆ సీక్వెన్సుల యొక్క సహవిభేదం మరియు సంబంధాన్ని గణించుకుందాం. `np.cov` మనకు ఒక所谓మైన **సహవిభేద మేట్రిక్స్** ఉత్పత్తి చేస్తుంది, ఇది బహు చరకాలను కలిపిన సహవిభేదానికి విస్తరణ. సహవిభేద మేట్రిక్స్ $M$ లోని అంశం $M_{ij}$ అనేది ఇన్పుట్ చరకాల $X_i$ మరియు $X_j$ మధ్య సహవిభేదం, మరియు ద్రవ్యరాశి విలువ $M_{ii}$ అనేది $X_{i}$ యొక్క విభిన్నత. అదేవిధంగా, `np.corrcoef` మనకు **సంబంధ మేట్రిక్స్** ఇస్తుంది.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"print(f\"Covariance matrix:\\n{np.cov(heights, salaries)}\")\n",
|
|
"print(f\"Covariance = {np.cov(heights, salaries)[0,1]}\")\n",
|
|
"print(f\"Correlation = {np.corrcoef(heights, salaries)[0,1]}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"1 సమానమైన సహసంబంధం అంటే ఇద్దరు చరాలు మధ్య బలమైన **రేఖీయ సంబంధం** ఉందని అర్థం. ఒక విలువను против ఎదుట మరోటి ప్లాట్ చేసి మేము ఈ రేఖీయ సంబంధాన్ని దృశ్యంగా చూడవచ్చు:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.figure(figsize=(10,6))\n",
|
|
"plt.scatter(heights,salaries)\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"సంబంధం రేఖీయమైనది కాకపోతే ఏం జరుగుతుందో చూద్దాం. మన సంస్థ ఎత్తుల మరియు జీతాల మధ్య స్పష్టమైన రేఖీయ ఆధారాన్ని దాచాలని నిర్ణయించుకుంది మరియు సూత్రంలో కొంత రేఖీయత లేని వ్యవధిని పరిచయం చేసింది, ఉదాహరణకు `sin` వంటి: \n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"salaries = 1000+np.sin((heights-heights.min())/(heights.max()-heights.mean()))*100\n",
|
|
"print(f\"Correlation = {np.corrcoef(heights, salaries)[0,1]}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"ఈ సందర్భంలో, సంబంధం కొంచెం తక్కువగా ఉన్నా, అది ఇంకా చాలా ఎక్కువగా ఉంటుంది. ఇప్పుడు, సంబంధాన్ని మరింత తక్కువగా చూపించడానికి, జీతానికి కొంత అదనపు యాదృచ్ఛికాన్ని చేర్చాలని మేము అనుకోవచ్చు. ఏమవుతుందని చూద్దాం:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"salaries = 1000+np.sin((heights-heights.min())/(heights.max()-heights.mean()))*100+np.random.random(size=len(heights))*20-10\n",
|
|
"print(f\"Correlation = {np.corrcoef(heights, salaries)[0,1]}\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.figure(figsize=(10,6))\n",
|
|
"plt.scatter(heights, salaries)\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"> మీరు ఎందుకు ఈ మచ్చలు నిలువు గీతలుగా వరుసగా నిలుస్తాయనే అంచనా వేశారా?\n",
|
|
"\n",
|
|
"జీతం వంటి కృత్రిమంగా రూపొంచబడిన సങ്കల్పం మరియు గమనించిన వేరియబులైన *ఎత్తు* మధ్య సంబంధాన్ని మేము గమనించాము. అలాగే, ఎత్తు మరియు బరువు వంటి గమనించిన రెండు వేరియబుల్స్ కూడా పరస్పరం సంబంధం ఉందా అని కూడా చూద్దాం:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"np.corrcoef(df['Height'].ffill(),df['Weight'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"దురదృష్టవశాత్తూ, మాకు ఎటువంటి ఫలితాలు రాలేదు - కేవలం కొంత వింత `nan` విలువలు మాత్రమే ఉన్నాయి. మా సిరీస్లో కొన్ని విలువలు నిర్వచించబడకపోవడం కారణంగా, అవి `nan` గా సూచించబడ్డాయి, ఇది ఆపరేషన్ ఫలితం కూడా నిర్వచించబడదని కారణమవుతుంది. మ్యాట్రిక్స్ను చూసినప్పుడు మనం గమనించగలము, `Weight` అనేది సమస్యాత్మక కాలమ్, ఎందుకంటే `Height` విలువల మధ్య స్వీయ-సంబంధం లెక్కించబడింది.\n",
|
|
"\n",
|
|
"> ఈ ఉదాహరణ **డేటా సిద్ధత** మరియు **శుభ్రపరచడం** యొక్క ప్రాముఖ్యతను చూపిస్తుంది. సరైన డేటా లేకుండా మనం ఏదీ లెక్కించలేం.\n",
|
|
"\n",
|
|
"మిస్సింగ్ విలువలను పూరించడానికి `fillna` పద్ధతిని ఉపయోగించి, సంబంధం లెక్కించుకుందాం: \n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"నిజానికి సంబంధం ఉంటుందిఅయితే, మన కళాకృతితో చేసిన ఉదాహరణ లో ఉండేలాగా బలమైనది కాదు. నిజానికి, ఒక విలువను మరొక విలువతో స్కాటర్ ప్లాట్ చూస్తే, సంబంధం చాలా తక్కువగా కనిపిస్తుంది:\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.figure(figsize=(10,6))\n",
|
|
"plt.scatter(df['Weight'],df['Height'])\n",
|
|
"plt.xlabel('Weight')\n",
|
|
"plt.ylabel('Height')\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## తుదిది\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"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"interpreter": {
|
|
"hash": "86193a1ab0ba47eac1c69c1756090baa3b420b3eea7d4aafab8b85f8b312f0c5"
|
|
},
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.9.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
} |