Quiz 2 - Probability, Statistics PDF

Summary

This document presents a quiz on probability and statistics, using code examples in Python for data analysis. The quiz covers topics such as descriptive statistics, probability calculations, and graphical data representation using Python libraries like pandas, Matplotlib, and Seaborn. The document also includes code snippets for t-tests and cumulative distribution functions.

Full Transcript

Quiz 2 - Probability, Statistics (ლექცია 4, ლექცია 5) - 7 ქულა იხილეთ LoanStatus.csv მონაცემთა ფაილი, რომელშიც მოცემულია კლიენტთა ინფორმაცია შემდეგი სვეტებით: Loan ID - კლიენტის ID Gender - სქესი Married - დაქორზინებული არის თუ არა Dependents - ოჯახის წევრების რაოდენობა, რომლის ფინანსურ მ...

Quiz 2 - Probability, Statistics (ლექცია 4, ლექცია 5) - 7 ქულა იხილეთ LoanStatus.csv მონაცემთა ფაილი, რომელშიც მოცემულია კლიენტთა ინფორმაცია შემდეგი სვეტებით: Loan ID - კლიენტის ID Gender - სქესი Married - დაქორზინებული არის თუ არა Dependents - ოჯახის წევრების რაოდენობა, რომლის ფინანსურ მხარდაჭერასაც უზრუნველყოფს კლიენტი Education - არის თუ არა უმაღლესი განათლების მქონე Self_Employed - არის თუ არა თვითდასაქმებული ApplicantIncome - კლიენტის შემოსავალი (per month) LoanAmount - სესხის რაოდენობა (ათასებში) Loan_Amount_Term - სესხის ვადა Credit_History - როგორი საკრედიტო ისტორია აქვს კლიენტს (1-კარგი, 0-ცუდი) Property_Area - საცხოვრებელი და სამუშაო ადგილი Loan_Status - სესხის გაცემის სტატუსი keyboard_arrow_down დავალება 1: აღწერილობითი სტატისტიკა (1 ქულა) ა) გახსენით ფაილი და დაბეჭდეთ აღწერილობითი სტატისტიკის მონაცემები თქვენთვის საინტერესო ველებისთვის, როგორიცაა საშუალო, მედიანა, მოდა, სტდ. გადახრა, ა.შ. (მოახდინეთ სიტყვიერი ინტერპრეტაცია); ბ) დაითვალეთ თითოეულ სვეტში ცარიელი მნიშვნელობების რაოდენობა შესაბამისი ფუნქციით import pandas as pd import warnings from scipy.stats import norm warnings.filterwarnings("ignore") df = pd.read_csv("LoanStatus.csv") male_filt = df[df['Gender'] == 'Male'] female_filt = df[df['Gender'] == 'Female'] df['ApplicantIncome'].dtypes df['ApplicantIncome'] = df['ApplicantIncome'].astype('float') df['ApplicantIncome'].dropna(inplace=True) MMI = male_filt['ApplicantIncome'].mean() FMI = female_filt['ApplicantIncome'].mean() print("Mean income of males is: ", MMI); print("Mean income of females is: ", FMI); Mean income of males is: 5446.460122699386 Mean income of females is: 4643.473214285715 print("Median of LoanAmount is: ", df["LoanAmount"].median()); print("Mode of Dependendts is: ", df["Dependents"].mode()); print("Standard Deviation of Loan_amount_term is: ", df["Loan_Amount_Term"].std()) Median of LoanAmount is: 128.0 Mode of Dependendts is: 0 0 Name: Dependents, dtype: object Standard Deviation of Loan_amount_term is: 65.12040985461256 print(df.isnull().sum()) Loan_ID 0 Gender 13 Married 3 Dependents 15 Education 0 Self_Employed 32 ApplicantIncome 0 LoanAmount 22 Loan_Amount_Term 14 Credit_History 50 Property_Area 0 Loan_Status 0 dtype: int64 Start coding or generate with AI. keyboard_arrow_down დავალება 2: ალბათობა (1 ქულა) ა) დაითვალეთ, რა არის სესხის აღების ალბათობა Loan_Status-ის მიხედვით. ბ) რა არის სესხის აღების ალბათობა, მაშინ როცა კლიენტს კარგი საკრედიტო ისტორია აქვს. კოდს დაურთეთ თქვენი კომენტარები მოკლედ loan_status_counts = df['Loan_Status'].value_counts(normalize=True) loan_status_counts #ვითვლით Loan_Status ველის მნიშვნელობების რაოდენობას, normalize კი მათ შეფარდებას გვიჩვენებს Loan_Status Y 0.687296 N 0.312704 Name: proportion, dtype: float64 prob_of_taking_loan = loan_status_counts['Y'] print(f"The probability of taking a loan is {prob_of_taking_loan}") The probability of taking a loan is 0.6872964169381107 ამ შემთხვევაში ვითვლით დადებითი საკრედიტო ისტორიის შემთხვევაში სესხის აღების ალბათობას good_hist=df[df["Credit_History"]== 1]; good_hist_loan_counts = good_hist['Loan_Status'].value_counts(normalize=True) prob_of_taking_loan_gh = good_hist_loan_counts['Y'] print(f"The probability of taking a loan on positive credit_hist is {prob_of_taking_loan_gh}") The probability of taking a loan on positive credit_hist is 0.7957894736842105 keyboard_arrow_down დავალება 3: გრაფიკული წარმოდგენა (1 ქულა) ა) seaborn.distplot ან seaborn.histplot() ფუნქციის გამოყენებით, ააგეთ რომელიმე სვეტისთვის შესაბამისი გრაფიკი. ლინკი: https://seaborn.pydata.org/generated/seaborn.distplot.html ბ) matplotlib.pyplot.hist ფუნქციის გამოყენებით, ააგეთ რომელიმე სვეტისთვის შესაბამისი ჰისტოგრამი, რომელშიც bin-ების (ჰოსტოგრამაში ბლოკების) რაოდენობას თქვენ განსაზღვრავთ (მაგ. ჰისტოგრამაში 10 სვეტად წარმოადგინოთ მონაცემები.) იხ. დოკუმენტაცია შემდეგ ლინკზე: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.hist.html Future warnings-ების გამოსართავად ჩაწერეთ შემდეგი ბრძანებები: import warnings warnings.filterwarnings("ignore") კოდს დაურთეთ თქვენი კომენტარები მოკლედ import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.histplot(data=df, x='Dependents') sns.distplot(df['LoanAmount'], bins=10, kde=False) ჰისტოგრამა warning-ების გარეშე import warnings warnings.filterwarnings("ignore") # ვრთავთ warning-ებს plt.hist(df['Property_Area'], bins=5, edgecolor='black') plt.title('Histogram of Property Areas') plt.xlabel('Propery Area') plt.ylabel('Quantity') plt.show() Start coding or generate with AI. keyboard_arrow_down დავალება 4: კუმულაციური ალბათობა (Cumulative distribution function) - (1 ქულა) დაითვალეთ შემდეგი კუმულაციური ალბათობა scipy.stats.norm.cdf() ფუნქციის გამოყენებით. დაითვალეთ კლიენტების რამდენ პროცენტს აქვს შემოსავალი 2000 ევროზე ნაკლები ყოველთვიურად. norm.cdf(x, mean_val, std_dev_val) ფუნქციის პირველი პარამეტრია სასაზღვრო მნიშვნელობა, მეორე- საშუალო, მესამე -სტდ. გადახრა. მოახდინეთ შედეგების სიტყვიერი ინტერპრეტაცია import pandas as pd from scipy.stats import norm # ვაიმპორტებთ საჭირო მოდულებს df = pd.read_csv("LoanStatus.csv") #ვკითხულობთ ფაილს mean_val = df['ApplicantIncome'].mean() #ვიღებთ შემოსავლების ცხრილის std_dev_val = df['ApplicantIncome'].std() # საშუალოს და სტანდარტულ გადახრას x = 2000 # ვიღებთ სასაზღვრო მნიშვნელობას cumulative_prob = norm.cdf(x, mean_val, std_dev_val) # ვადგენთ კუმულაციურ ალბათობას percentage = (df[df['ApplicantIncome'] < 2000].shape / df.shape) * 100 #ვითვლით პროცენტულ მაჩვენებელს, იმ ადამიანების, რომელთაც ხელფასიც #2000-ზე ნაკლებია print(f"Percentage of clients, income less than 2000: {percentage}") Percentage of clients, income less than 2000: 6.514657980456026 keyboard_arrow_down დავალება 5: სტატისტიკა (1 ქულა) ააგეთ 2 boxplot დიაგრამა seaborn.boxplot() ფუნქციის გამოყენებით რომელიმე ველის მიმართ. import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.figure(figsize=(12, 6)) plt.subplot(1, 2, 1) sns.boxplot(y=df['Dependents']) plt.title('Boxplot of Dependents') plt.subplot(1, 2, 2) sns.boxplot(y=df['LoanAmount']) plt.title('Boxplot of Loan_Amount') plt.tight_layout() plt.show() keyboard_arrow_down დავალება 6: t-test (2 ქულა) ა) გააკეთეთ t-test ანალიზი (One sample t-test) რომელიმე სვეტის მიმართ და გამოიყენეთ ttest_1samp ფუნქცია. ბ) გააკეთეთ t-test ანალიზი (Two sample t-test) რომელიმე სვეტის მიმართ და გამოიყენეთ ttest_ind ფუნქცია. განსაზღვრეთ ნულოვანი და ალტერნატიული ჰიპოთეზა, გამოიყენეთ აღნიშნული ფუნქციები და მოახდინეთ შედეგების სიტყვიერი ინტერპრეტაცია. from scipy.stats import ttest_1samp,ttest_ind import pandas as pd from scipy import stats # ჩავატაროთ One-sample t-test mean_income = 5000 # ნულოვანი ჰიპოთეზა t_statistic, p_value = stats.ttest_1samp(df['ApplicantIncome'], mean_income) print(f'The t-statistic is {t_statistic} and the p-value is {p_value}') The t-statistic is 1.6364804093914873 and the p-value is 0.10225234862970932 # რადგან p_value მივიღეთ 0.05-ზე ნაკლები, შეგვიძლია ვუარყოთ ნულოვანი ჰიპოთეზა, # და ვთქვათ რომ საშუალო არ არის 5000 # ახლა ჩავატაროთ Two-sample t-test შევადაროთ სქესის მიხედვით შემოსავლები male_loan_amount = df[df['Gender'] == 'Male']['LoanAmount'] female_loan_amount = df[df['Gender'] == 'Female']['LoanAmount'] #ნულოვან ჰიპოთეზად მივიღოთ, რომ საშუალო საერთოა ორივე სქესისთვის t_statistic, p_value = stats.ttest_ind(male_loan_amount, female_loan_amount, nan_policy='omit') #nan_policy='omit' ამ ფუნქციით თავიდან ვიშორებთ nan მნიშვნელობებს print(f'The t-statistic is {t_statistic} and the p-value is {p_value}') #რადგან p_value ნაკლებია 0.05-ზე ვუარყოფთ მას და შეგვიძლია ვთქვათ, რომ #სქესის მიხედვით შემოსავლებს შორის არსებითი განსხვავებაა The t-statistic is 2.583777209735034 and the p-value is 0.010017196140238535

Use Quizgecko on...
Browser
Browser