乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用Python進(jìn)行機(jī)器學(xué)習(xí)的假設(shè)檢驗(yàn)(附代碼)

       板橋胡同37號 2019-09-04

      也許所有機(jī)器學(xué)習(xí)的初學(xué)者,或者中級水平的學(xué)生,或者統(tǒng)計(jì)專業(yè)的學(xué)生,都聽說過這個術(shù)語,假設(shè)檢驗(yàn)。

      我將簡要介紹一下這個當(dāng)我學(xué)習(xí)時給我?guī)砹寺闊┑闹黝}。我把所有這些概念放在一起,并使用python進(jìn)行示例。

      在我尋求更廣泛的事情之前要考慮一些問題 ——什么是假設(shè)檢驗(yàn)?我們?yōu)槭裁从盟渴裁词羌僭O(shè)的基本條件?什么是假設(shè)檢驗(yàn)的重要參數(shù)?

      讓我們一個個地開始吧!

      什么是假設(shè)檢驗(yàn)?

      假設(shè)檢驗(yàn)是一種統(tǒng)計(jì)方法,用于使用實(shí)驗(yàn)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)決策。假設(shè)檢驗(yàn)基本上是我們對人口參數(shù)做出的假設(shè)。

      例如:你說班里的學(xué)生平均年齡是40歲,或者一個男生要比女生高。

      我們假設(shè)所有這些例子都需要一些統(tǒng)計(jì)方法來證明這些。無論我們假設(shè)什么是真的,我們都需要一些數(shù)學(xué)結(jié)論。

      我們?yōu)槭裁匆盟?/p>

      假設(shè)檢驗(yàn)是統(tǒng)計(jì)學(xué)中必不可少的過程。假設(shè)檢驗(yàn)評估關(guān)于總體的兩個相互排斥的陳述,以確定樣本數(shù)據(jù)最佳支持哪個陳述。當(dāng)我們說一個發(fā)現(xiàn)具有統(tǒng)計(jì)學(xué)意義時,這要?dú)w功于一個假設(shè)檢驗(yàn)。

      什么是假設(shè)的基本條件?

       不同均值和方差下的正態(tài)分布

      假設(shè)的基礎(chǔ)是規(guī)范化和標(biāo)準(zhǔn)規(guī)范化。我們所有的假設(shè)都圍繞這兩個術(shù)語的基礎(chǔ)。

      標(biāo)準(zhǔn)化的正態(tài)曲線圖像和數(shù)據(jù)分布及每個部分的百分比

      你一定想知道這兩個圖像之間有什么區(qū)別,有人可能會說我找不到,而其他人看到的圖像會比較平坦,而不是陡峭的。好吧伙計(jì)這不是我想要表達(dá)的,首先你可以看到有不同的正態(tài)曲線所有那些正態(tài)曲線可以有不同的均值和方差,如第二張圖像,如果你注意到圖形是合理分布的,總是均值= 0和方差= 1。當(dāng)我們使用標(biāo)準(zhǔn)化的正態(tài)數(shù)據(jù)時,z—score的概念就出現(xiàn)了。

      正態(tài)分布

      如果變量的分布具有正態(tài)曲線的形狀——一個特殊的鐘形曲線,則該變量被稱為正態(tài)分布或具有正態(tài)分布。正態(tài)分布圖稱為正態(tài)曲線,它具有以下所有屬性:1.均值,中位數(shù)和眾數(shù)是相等。

      正態(tài)分布方程
      標(biāo)準(zhǔn)化正態(tài)分布

      標(biāo)準(zhǔn)正態(tài)分布是平均值為0,標(biāo)準(zhǔn)差為1的正態(tài)分布。

      哪些是假設(shè)檢驗(yàn)的重要參數(shù)?

      零假設(shè)

      在推論統(tǒng)計(jì)中,零假設(shè)是一種普遍的說法或默認(rèn)的觀點(diǎn),即兩個測量現(xiàn)象之間沒有關(guān)系,或者分組間沒有關(guān)聯(lián),換句話說,它是一個基本假設(shè),或基于領(lǐng)域或問題知識。

      示例:公司的生產(chǎn)力=50個單位/天。

      備擇假設(shè)

      另一種假設(shè)是假設(shè)檢驗(yàn)中使用的假設(shè)與零假設(shè)相反。通常認(rèn)為觀察是真實(shí)效果的結(jié)果(疊加了一定量的偶然的變化)。

      零假設(shè)與備擇假設(shè)

      示例:公司生產(chǎn)≠50單位/每天。

      重要程度:指我們接受或拒絕無效假設(shè)的重要程度。接受或拒絕假設(shè)不可能100%準(zhǔn)確,因此我們選擇通常為5%的重要程度。

      這通常用alpha(數(shù)學(xué)符號)表示,通常為0.05或5%,這意味著您的輸出應(yīng)該有95%的信心在每個樣本中給出類似的結(jié)果。

      I型錯誤:當(dāng)我們拒絕零假設(shè)時,盡管該假設(shè)是正確的。類型I錯誤由alpha表示。在假設(shè)檢驗(yàn)中,顯示關(guān)鍵區(qū)域的正常曲線稱為α區(qū)域;

      II型錯誤:當(dāng)我們接受零假設(shè)但它是錯誤的。II型錯誤用beta表示。在假設(shè)檢驗(yàn)中,顯示接受區(qū)域的正常曲線稱為β區(qū)域。

      單尾測試:統(tǒng)計(jì)假設(shè)的測試,其中拒絕區(qū)域僅在采樣分布的一側(cè),稱為單尾測試。

      示例:一所大學(xué)有≥4000名學(xué)生或數(shù)據(jù)科學(xué)≤80%采用的組織。

      雙尾測試:雙尾測試是一種統(tǒng)計(jì)測試,其中分布的關(guān)鍵區(qū)域是雙側(cè)的,并測試樣本是否大于或小于某個值范圍。如果被測試的樣本屬于任一關(guān)鍵區(qū)域,則接受替代假設(shè)而不是零假設(shè)。

      示例:一所大學(xué)!= 4000名學(xué)生或數(shù)據(jù)科學(xué)!= 80%的組織采用。

      單尾和雙尾圖像

      P值:P值或計(jì)算概率是當(dāng)研究問題的零假設(shè)(H 0)為真時,找到觀察到的或更極端的結(jié)果的概率 —— “極端”程度的定義取決于假設(shè)如何被檢測。

      如果您的P值小于選定的顯著性水平,那么就拒絕原假設(shè),即接受樣本提供合理的證據(jù)來支持備選假設(shè)。它并不意味著“有意義”或“重要”的差異;這是在考慮結(jié)果的真實(shí)相關(guān)性時決定的。

      示例:你有一枚硬幣而你不知道這是否公平或棘手所以讓我們決定零和備擇假設(shè)。

      H0:硬幣是一個公平的硬幣。

      H1:硬幣是一個狡猾的硬幣。并且alpha = 5%或0.05

      現(xiàn)在讓我們擲硬幣并計(jì)算p值(概率值)。

      • 第一次投擲硬幣,結(jié)果是尾部P值= 50%(頭部和尾部的概率相等);

      • 第二次拋硬幣,結(jié)果是尾巴,現(xiàn)在p值= 50/2 = 25%。

      同樣地,我們連續(xù)6次投擲并得到P值= 1.5%的結(jié)果,但是我們將顯著性水平設(shè)置為95%表示我們允許的5%錯誤率,在這里我們看到我們超出了那個水平,即我們的零假設(shè)不成立,所以我們需要拒絕并提出這個硬幣實(shí)際上是一個狡猾的硬幣。

      自由度:  現(xiàn)在想象你對期望值沒有興趣,你對數(shù)據(jù)分析感興趣。您有一個包含10個值的數(shù)據(jù)集。如果你沒有估算任何東西,每個值都可以取任何數(shù)字,對吧?每個值都可以完全自由變化。但是假設(shè)您想使用單樣本t檢驗(yàn)來測試10個值的樣本的總體平均值。你現(xiàn)在有一個約束——平均值的估計(jì)。究竟是什么約束?通過定義均值,必須保持以下關(guān)系:數(shù)據(jù)中所有值的總和必須等于n x mean,其中n是數(shù)據(jù)集中的值的數(shù)量。

      因此,如果數(shù)據(jù)集有10個值,則10個值的總和必須等于平均值x 10.如果10個值的平均值為3.5(您可以選擇任何數(shù)字),則此約束要求10個值的總和必須等于10 x 3.5 = 35。

      使用該約束,數(shù)據(jù)集中的第一個值可以自由變化。無論它是什么價值,所有10個數(shù)字的總和仍然可以具有35的值。第二個值也可以自由變化,因?yàn)闊o論你選擇什么值,它仍然允許所有值的總和的可能性是35歲。

      現(xiàn)在讓我們看一些廣泛使用的假設(shè)檢驗(yàn)類型: 

      • T校驗(yàn)(學(xué)生T校驗(yàn))

      • Z校驗(yàn)

      • ANOVA校驗(yàn)

      • 卡方檢驗(yàn)

      T—檢驗(yàn):t檢驗(yàn)是一種推論統(tǒng)計(jì)量,用于確定在某些特征中可能與兩組的均值之間是否存在顯著差異。它主要用于數(shù)據(jù)集,如通過翻轉(zhuǎn)硬幣100次記錄為結(jié)果的數(shù)據(jù)集,將遵循正態(tài)分布并且可能具有未知的方差。T檢驗(yàn)用作假設(shè)檢驗(yàn)工具,其允許測試適用于群體的假設(shè)。

      T檢驗(yàn)有兩種類型:
      • 單樣本t檢驗(yàn)

      • 雙樣本t檢驗(yàn)

      單樣本t檢驗(yàn):單樣本t檢驗(yàn)確定樣本均值是否與已知或假設(shè)的總體均值具有統(tǒng)計(jì)學(xué)差異。單樣本t檢驗(yàn)是參數(shù)檢驗(yàn)。
      示例:你有10個年齡,你正在檢查平均年齡是否為30歲。 (使用python查看下面的代碼)。
      from scipy.stats import ttest_1sampimport numpy as npages = np.genfromtxt(“ages.csv”)print(ages)ages_mean = np.mean(ages)print(ages_mean)tset, pval = ttest_1samp(ages, 30)print(“p-values”,pval)if pval < 0.05: # alpha value is 0.05 or 5% print(' we are rejecting null hypothesis')else: print('we are accepting null hypothesis”)
      上面代碼的結(jié)果如下: 

      單樣本t測試結(jié)果

      雙樣本t檢驗(yàn):獨(dú)立樣本t檢驗(yàn)或雙樣本t檢驗(yàn)比較兩個獨(dú)立組的平均值,以確定是否有統(tǒng)計(jì)證據(jù)表明相關(guān)的人口均值存在顯著差異。獨(dú)立樣本t檢驗(yàn)是參數(shù)檢驗(yàn)。該測試也稱為:獨(dú)立t檢驗(yàn)。
      示例:在week1和week2之間是否存在任何關(guān)聯(lián)(代碼在下面的python中給出)。
      from scipy.stats import ttest_indimport numpy as npweek1 = np.genfromtxt('week1.csv',  delimiter=',')week2 = np.genfromtxt('week2.csv',  delimiter=',')print(week1)print('week2 data :-\n')print(week2)week1_mean = np.mean(week1)week2_mean = np.mean(week2)print('week1 mean value:',week1_mean)print('week2 mean value:',week2_mean)week1_std = np.std(week1)week2_std = np.std(week2)print('week1 std value:',week1_std)print('week2 std value:',week2_std)ttest,pval = ttest_ind(week1,week2)print('p-value',pval)if pval <0.05:  print('we reject null hypothesis')else:  print('we accept null hypothesis”)

      雙樣本t校驗(yàn)結(jié)果

      配對樣本t檢驗(yàn):配對樣本t檢驗(yàn)也稱為依賴樣本t檢驗(yàn)。這是一個單變量測試,測試2個相關(guān)變量之間的顯著差異。這方面的一個例子是,如果您在某些治療,病癥或時間點(diǎn)之前和之后收集個人的血壓。
      H0:表示兩個樣本之間的差異為0。
      H1:兩個樣本之間的平均差異不是0。
      執(zhí)行下面的代碼可以得到同樣的結(jié)果。

      import pandas as pdfrom scipy import statsdf = pd.read_csv('blood_pressure.csv')df[['bp_before','bp_after']].describe()ttest,pval = stats.ttest_rel(df['bp_before'], df['bp_after'])print(pval)if pval<0.05: print('reject null hypothesis')else: print('accept null hypothesis')
      什么時候可以運(yùn)行Z校驗(yàn)。
      在統(tǒng)計(jì)學(xué)中使用幾種不同類型的校驗(yàn)(即f檢驗(yàn),卡方檢驗(yàn),t檢驗(yàn))。
      在下列情況下,您將使用Z測試:
      • 樣本量大于30。否則,請使用t檢驗(yàn)。
        數(shù)據(jù)點(diǎn)應(yīng)彼此獨(dú)立。換句話說,一個數(shù)據(jù)點(diǎn)不相關(guān)或不影響另一個數(shù)據(jù)點(diǎn)。
      • 數(shù)據(jù)應(yīng)該是正常分布的。但是,對于大樣本量(超過30個),這并不總是重要的。
      • 數(shù)據(jù)應(yīng)從人口中隨機(jī)選擇,每個項(xiàng)目都有相同的選擇機(jī)會。
      • 如果可能的話,樣本量應(yīng)該相等。
      再舉一個例子,我們使用z-test進(jìn)行血壓測量,如156個單樣本Z檢驗(yàn)。
      import pandas as pdfrom scipy import statsfrom statsmodels.stats import weightstats as stestsztest ,pval = stests.ztest(df['bp_before'], x2=None, value=156)print(float(pval))if pval<0.05:    print('reject null hypothesis')else:    print('accept null hypothesis')
      雙樣本Z檢驗(yàn):在兩個樣本z檢驗(yàn)中,類似于t檢驗(yàn),我們檢查兩個獨(dú)立的數(shù)據(jù)組并確定兩個組的樣本均值是否相等。
      H0:兩組的平均值為0
      H1:兩組的平均值不為0

      示例:我們檢查血液之后和血液數(shù)據(jù)之前的血液數(shù)據(jù)。(下面是python代碼)
      ztest ,pval1 = stests.ztest(df['bp_before'],x2=df['bp_after'],value=0,alternative='two-sided')print(float(pval1))if pval<0.05: print('reject null hypothesis')else: print('accept null hypothesis')
      ANOVA(F-檢驗(yàn)):t檢驗(yàn)在處理兩組時效果很好,但有時我們想要同時比較兩組以上。例如,如果我們想根據(jù)種族等某些分類變量來測試選民年齡是否不同,我們必須比較每個級別的平均值或?qū)ψ兞窟M(jìn)行分組。我們可以為每對組進(jìn)行單獨(dú)的t檢驗(yàn),但是當(dāng)你進(jìn)行多次檢測時,你會增加誤報的可能性。方差分析或ANOVA是一種統(tǒng)計(jì)推斷測試,可讓您同時比較多個組。

      F校驗(yàn)或ANOVA實(shí)例圖

      與z和t分布不同,F(xiàn)分布沒有任何負(fù)值,因?yàn)橛捎诿總€偏差的平方,組內(nèi)變異和組內(nèi)變異總是正的。
      單向F檢驗(yàn)(ANOVA):根據(jù)它們的平均相似度和f分?jǐn)?shù)來判斷兩個或更多個組是否相似。
      示例:有3種不同的植物類別及其重量,需要檢查所有3組是否相似(下面是python代碼)。
      df_anova = pd.read_csv('PlantGrowth.csv')df_anova = df_anova[['weight','group']]grps = pd.unique(df_anova.group.values)d_data = {grp:df_anova['weight'][df_anova.group == grp] for grp in grps} F, p = stats.f_oneway(d_data['ctrl'], d_data['trt1'], d_data['trt2'])print('p-value for significance is: ', p)if p<0.05:    print('reject null hypothesis')else:    print('accept null hypothesis')

      雙向F檢驗(yàn): 雙向F檢驗(yàn)是單向檢驗(yàn)的擴(kuò)展,當(dāng)我們有2個自變量和2個以上的組時使用它。雙向F檢驗(yàn)并不能說明哪個變量占主導(dǎo)地位。如果我們需要檢查個體意義,則需要進(jìn)行事后測試。
      現(xiàn)在讓我們來看看平均作物產(chǎn)量(不是任何小組的平均作物產(chǎn)量),以及每個因子的平均作物產(chǎn)量,以及組合在一起的因子。
      import statsmodels.api as smfrom statsmodels.formula.api import olsdf_anova2 = pd.read_csv('https://raw./Opensourcefordatascience/Data-sets/master/crop_yield.csv')model = ols('Yield ~ C(Fert)*C(Water)', df_anova2).fit()print(f'Overall model F({model.df_model: .0f},{model.df_resid: .0f}) = {model.fvalue: .3f}, p = {model.f_pvalue: .4f}')res = sm.stats.anova_lm(model, typ= 2)res

      卡方檢驗(yàn): 當(dāng)您從單個總體中獲得兩個分類變量時,將應(yīng)用此測試。它用于確定兩個變量之間是否存在顯著關(guān)聯(lián)。
      例如,在選舉調(diào)查中,選民可能按性別(男性或女性)和投票偏好(民主黨,共和黨或獨(dú)立團(tuán)體)進(jìn)行分類。我們可以使用卡方檢驗(yàn)來確定獨(dú)立性,以確定性別是否與投票偏好相關(guān)。
      以下為python代碼。
      df_chi = pd.read_csv('chi-test.csv')contingency_table=pd.crosstab(df_chi['Gender'],df_chi['Shopping?'])print('contingency_table :-\n',contingency_table)#Observed ValuesObserved_Values = contingency_table.values print('Observed Values :\n',Observed_Values)b=stats.chi2_contingency(contingency_table)Expected_Values = b[3]print('Expected Values :-\n',Expected_Values)no_of_rows=len(contingency_table.iloc[0:2,0])no_of_columns=len(contingency_table.iloc[0,0:2])ddof=(no_of_rows-1)*(no_of_columns-1)print('Degree of Freedom:-',ddof)alpha = 0.05from scipy.stats import chi2chi_square=sum([(o-e)**2./e for o,e in zip(Observed_Values,Expected_Values)])chi_square_statistic=chi_square[0]+chi_square[1]print('chi-square statistic:-',chi_square_statistic)critical_value=chi2.ppf(q=1-alpha,df=ddof)print('critical_value:',critical_value)#p-valuep_value=1-chi2.cdf(x=chi_square_statistic,df=ddof)print('p-value:',p_value)print('Significance level: ',alpha)print('Degree of Freedom: ',ddof)print('chi-square statistic:',chi_square_statistic)print('critical_value:',critical_value)print('p-value:',p_value)if chi_square_statistic>=critical_value:    print('Reject H0,There is a relationship between 2 categorical variables')else:    print('Retain H0,There is no relationship between 2 categorical variables')    if p_value<=alpha:    print('Reject H0,There is a relationship between 2 categorical variables')else:    print('Retain H0,There is no relationship between 2 categorical variables')

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多