Инференциалните статистики се използват за извличане на изводи за популация въз основа на извадкови данни. В този блог ще работим с набора от данни „Титаник: Машинно обучение от бедствие“, наличен в Kaggle. Този набор от данни предоставя информация за пътниците, които са се качили на кораба, включително тяхната възраст, брой братя и сестри, подробности за билета, статус на оцеляване и др.

Аз лично считам този набор от данни за много подходящ за инференциална статистика, тъй като ни позволява да правим прогнози за цяла съвкупност въз основа на извадкови данни. Можем да извършим няколко статистически анализа на тези данни, включително тестване на хипотези, доверителен интервал и регресионен анализ, за ​​да отговорим на въпроси като:

· Каква е вероятността за оцеляване за различните групи пътници?

· Класата на пътниците оказа ли значително влияние върху степента на оцеляване?

· Има ли значителни разлики в нивата на оцеляване между различните възрастови групи?

· Присъствието на членове на семейството повлия ли върху шансовете за оцеляване?

И списъкът продължава....

До края на този блог ще стигнете до по-задълбочено разбиране на инференциалната статистика. Така че, запазете фокуса си непокътнат и нека се потопим направо.

Визуализация на набор от данни:„Титаник: Машинно обучение от бедствие“

Забележка: Наборът от данни идва с 3 папки: test, train и gender_submission и ние ще работим върху набора от данни за влака.

Връзка към Git Hub към кода: https://github.com/Shrutikarmarkar/Data-Science-Blog-Codes

ТЕСТВАНЕ НА ХИПОТЕЗИ

Тестването на хипотези, както подсказва името, е начин да тествате предположенията, които правите относно данните. Например, ако приема, че възрастта е имала значително влияние върху оцеляването на пътниците, статистиката може да ми помогне да потвърдя това предположение с помощта на тестване на хипотези.

Въпрос: Изследване на влиянието на възрастта върху оцеляването

Анализ

Подготовка на данните

Трябва да подготвите своя набор от данни, като извлечете съответните променливи. В този случай ще извлечете променливите „Възраст“ и „Оцелял“ от набора от данни.

Ще групирам възрастовата колона в различен диапазон от възрасти, например: 0–9, 10–19, 20–29 и т.н.

От горната графика можем да заключим, че по-голямата част от пътниците са на възраст между 20–29 години

Ще го визуализирам по-добре, за да разбера съотношението на възрастовите групи, които са оцелели и не са могли да оцелеят

От горното разпределение можем да направим няколко извода, че процентът на оцеляване на задържаните пътници е намалял след навършване на 20-29 години, това може би се дължи на няколко фактора, че на борда е имало повече пътници на възраст над 20 години и така процентът на оцеляване беше ниско.

Но не можем да кажем със сигурност дали това се дължи на тяхната възраст или просто съвпадение, затова, за да предоставим доказателства, ще извършим тестване на хипотези.

Изберете подходящия статистически модел въз основа на типа данни и въпроса, който анализирате. Тъй като сравняваме категорична променлива (оцеляване: 0 или 1) в различни възрастови групи, подходящ статистически тест за този сценарий е тестът хи-квадрат за независимост.

Формулирайте хипотеза

· H0 (нулева хипотеза): Нулевата хипотеза е предположение, което предполага, че няма значително влияние на възрастта върху оцеляването. По подразбиране това ще бъде първоначално твърдение, което ще бъде тествано при тестване на хипотези

· HA (алтернативна хипотеза):Алтернативната хипотеза, от друга страна, предполага, че има значителен ефект или връзка в популацията.

Чрез провеждане на тестване на хипотези можем да оценим връзката между възрастта и оцеляването и да определим дали има достатъчно доказателства в подкрепа на алтернативната хипотеза.

По време на тестването на хипотезата ще използваме статистически анализ на избрания набор от данни, за да се опитаме да отхвърлим нулевата хипотеза, която в крайна сметка подкрепя алтернативната хипотеза. Това е важно, *неуспехът да отхвърлите нулевата хипотеза не я прави непременно вярна.

Определете нивото на значимост

Нивото на значимост, означено като алфа (α), определя прага за отхвърляне на нулевата хипотеза. Често срещан избор е алфа = 0,05, което съответства на 5% ниво на значимост.

Изчисляване на очаквана честота, статистика и p-стойност

Има няколко статистически теста при тестване на хипотези, тук ще използвам тест хи-квадрат. Тестът хи-квадрат се използва, за да се определи дали има значима връзка между две категорични променливи и в този случай възрастта и оцелели са и двете категорични променливи. (Целият код е достъпен в моя профил на git hub, връзката е предоставена в началото на този блог)

Очаквана честота: Тези стойности служат като отправна точка за сравнение с наблюдаваните честоти в таблицата за непредвидени обстоятелства, помагайки да се оцени степента на връзка между променливите.

                Survived:0  Survived:1   Expected:0    Expected:1
age_group                                                    
0-9                 24           38      38.244944      23.755056
10-19               61           41      62.919101      39.080899
20-29              268          129     244.891011     152.108989
30-39               94           73     103.014607      63.985393
40-49               55           34      54.900000      34.100000
50-59               28           20      29.608989      18.391011
60-69               13            6      11.720225       7.279775
70-79                6            0       3.701124       2.298876

Статистика: Тази променлива представлява изчислената статистика на теста хи-квадрат. Статистиката на теста хи-квадрат измерва отклонението между наблюдаваните честоти и очакваните честоти във всяка клетка от таблицата за непредвидени обстоятелства. Той дава индикация за цялостната връзка или зависимост между променливите.

Chi statistics: 26.071175838057542

p_value: Тази променлива представлява p-стойността, свързана със статистиката на теста хи-квадрат. P-стойността е вероятността за получаване на резултати, толкова екстремни, колкото наблюдаваните резултати, ако се приеме, че нулевата хипотеза (независимост) е вярна. Той показва силата на доказателствата срещу нулевата хипотеза и помага да се определи статистическата значимост на асоциацията.

По-голямата стойност на хи-квадрат и по-малката p-стойност показват по-силна връзка, което предполага, че променливите не са независими.

p_value = 0.0004891297857944056

Тъй като p_value е по-малка от стойността на значимост:

· Ще отхвърлим нулевата хипотеза

· Има доказателства, доказващи връзката между възрастта и оцеляването

Доверителен интервал

Както вече знаете, в инференциалната статистика ние работим върху извадка, вместо върху цяла популация. Следователно винаги има известна несигурност в оценките, които правим за населението.

Доверителният интервал е диапазон от стойности, които предоставят оценка, която е вероятно да улови истинската оценка на популацията на параметър. Има ниво на достоверност, свързано с доверителния интервал, да кажем 95%, което по същество представлява процент на достоверност, че истинската оценка на популацията попада под този интервал, когато теглите произволна извадка многократно.

Например, ако многократно вземем извадка от 100 пътници от популацията наведнъж и формираме оценка за тяхното оцеляване въз основа на техния клас пътници, тогава доверителните интервали ще съдържат средната стойност на всички оценки в 95% от времето.

Доверителните интервали обикновено се използват в статистиката, за да осигурят мярка за несигурност и да направят изводи относно параметрите на съвкупността въз основа на извадкови данни. Те се използват широко при тестване на хипотези, оценка и други статистически анализи.

Въпрос: Какъв е приблизителният диапазон на нивата на оцеляване за различни класи пътници с определено ниво на увереност?

Анализ:

Стъпка 1: Групови класове пътници 1-ва, 2-ра и 3-та в зависимост от техния статус на оцеляване

Стъпка 2: Изчислете средната стойност на извадката и стандартното отклонение за всяка класа пътници

Стъпка 3: Изчислете общия брой наблюдения във всеки клас, като използвате функцията count().

Стъпка 4: Задайте желаното ниво на увереност, в този случай ще избера 95%, което е 0,95

Стъпка 5: Изчислете критичната стойност въз основа на нивото на достоверност и степените на свобода: използвайте функцията „ppf“ от библиотеката с t-разпределение, за да изчислите критичната стойност, като използвате нивото на достоверност и степента на свобода

Стъпка 6: Изчислете границата на грешка: Маржа на грешка се изчислява като произведението на критичната стойност, стандартното отклонение на извадката и корен квадратен от броя на наблюденията.

Стъпка 7: Изчислете долната и горната граница на доверителния интервал

· Долната граница се изчислява чрез изваждане на границата на грешка от средната стойност на извадката

· Горната граница се изчислява чрез добавяне на границата на грешка към средната стойност на извадката

Стъпка 8: Накрая ще отпечатам доверителния интервал

Изход:

         Lowerbound  Upperbound
Pclass                        
1         0.575224    0.684035
2         0.411812    0.533841
3         0.210461    0.274264

По-горе са изчислените диапазони на процент на оцеляване за различни класи пътници с 95% ниво на сигурност

За 1-ви клас долната граница на доверителния интервал е приблизително 0,575, а горната граница е приблизително 0,684. Това означава, че с 95% увереност ние изчисляваме, че истинската степен на оцеляване за цялата популация от пътници от 1-ва класа попада в диапазона от 0,575 до 0,684. Същото тълкуване важи и за останалите класове пътници.

Регресионен анализ

Друг важен аспект на инференциалната статистика е възможността за извършване на регресионен анализ на данните. Това е техника, която се използва за моделиране на връзката между зависима променлива и една или повече независими променливи, за да се правят прогнози или заключения въз основа на данните.

Регресионният анализ се извършва, за да се идентифицира влиянието на независимата променлива върху зависимата променлива. Помага ни да разберем как промените в независимата променлива са свързани с промените в зависимата променлива.

Регресионният анализ може да се използва за различни цели, като прогнозиране на бъдещи стойности, оценка на значимостта на променливите, разбиране на силата и посоката на връзките и правене на сравнения между групи.

Регресионният анализ оценява регресионните коефициенти, които представляват връзката между променливите. Коефициентите показват посоката (положителна или отрицателна) и големината на въздействието на независимите променливи върху зависимата променлива.

Освен това се извършват статистически тестове за оценка на значимостта на коефициентите, като се определя дали връзката е статистически значима или е възникнала случайно.

Резултатът от регресионния анализ включва различни статистики, като R-квадрат, коригиран R-квадрат, стандартни грешки, p-стойности, доверителни интервали и F-статистики, които помагат при тълкуването и оценката на съответствието на модела.

Има няколко регресионни анализа, които можем да извършим въз основа на данните, нека вземем пример

Въпрос: Извършете регресионен анализ на титаничния набор от данни

Тъй като променливата, която прогнозираме (Оцелели), е категорична променлива, ще използвам логистична регресия.

Стъпки за извършване на логистична регресия върху титаничния набор от данни

Стъпка 1: Тъй като машините могат да анализират числата по-добре, създайте фиктивни променливи, за да преобразувате всички категориални променливи в числов формат. Пример:

Ex: Pclass = pd.get_dummies(df['Pclass'], drop_first=True)

Стъпка 2: Свържете новите променливи, които създаваме в първата стъпка, с набора от данни

df = pd.concat([df,Pclass,Embarked,age,Sex],axis=1)

Стъпка 3: Премахнете нежеланите променливи от набора от данни

df.drop(['Pclass','Sex','Embarked','age_group','PassengerId'],axis=1,inplace=True)

Стъпка 4: Създайте две отделни променливи X и y, за да съхранявате съответно независими и зависими променливи

# Create X and y variables
X = df.drop('Survived',axis=1) #independent variables
y = df['Survived'] #dependent variable that we're trying to predict

Стъпка 5: Разделете набора от данни за обучение и тестване

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3,random_state=101)

Стъпка 6: Обучете модела с помощта на логистична регресия

#training the model
from sklearn.linear_model import LogisticRegression
logmodel = LogisticRegression(max_iter=1000)
logmodel.fit(X_train,y_train)

Стъпка 7: Направете прогнози върху тестовия набор от данни

predictions = logmodel.predict(X_test)

Стъпка 8: Показване на резултатите

from sklearn.metrics import classification_report
print(classification_report(y_test,predictions))

Резултати:

              precision    recall   f1-score   support

           0       0.78      0.90      0.83       154
           1       0.83      0.65      0.73       114

    accuracy                           0.79       268
   macro avg       0.80      0.78      0.78       268
weighted avg       0.80      0.79      0.79       268

Прецизност: Измерва дела на истинските положителни прогнози от общия прогнозиран положителен резултат. В този случай, за клас 0, точността е 0,78, което показва, че 78% от прогнозираните не-оцелели всъщност са не-оцелели. За клас 1 точността е 0,83, което означава, че 83% от прогнозираните оцелели всъщност са оцелели.

Припомняне: Измерва дела на истинските положителни прогнози от общия брой действителни положителни резултати. В този случай, за клас 0, припомнянето е 0,90, което показва, че 90% от действителните не-оцелели са правилно идентифицирани като не-оцелели. За клас 1 припомнянето е 0,65, което означава, че 65% от действителните оцелели са правилно идентифицирани като оцелели.

F1-резултат: Това е хармоничната средна стойност на прецизност и припомняне, осигуряваща балансирана мярка за представянето на модела. В този случай, за клас 0, F1-резултатът е 0,83, което показва добър баланс между прецизност и припомняне. За клас 1 F1-резултатът е 0,73, което показва малко по-нисък баланс.

Поддръжка: Представлява броя на екземплярите във всеки клас. В този случай има 154 екземпляра от клас 0 (оцелели) и 114 екземпляра от клас 1 (неоцелели).

Точността на модела е отчетена като 0,79, което означава, че той правилно прогнозира класа за 79% от случаите.

И така, основно това е начинът, по който извършвате регресионен анализ на набора от данни, но винаги има обхват на подобрение, така че винаги можете да измислите по-добри начини за подобряване на точността на модела. Например чрез изпробване на различни модели или извършване на повече трансформации в набора от данни.

Като цяло се надявам, че сте получили добра представа как ще изглежда работата с инференциални статистики.

В следващия блог ще се потопим по-дълбоко в други статистически концепции и техники, които са от съществено значение за специалистите по данни. Така че следете и продължавайте да изследвате очарователния свят на статистиката в науката за данни!