首頁 >後端開發 >Python教學 >在Python中執行隨機性的Runs測試

在Python中執行隨機性的Runs測試

王林
王林轉載
2023-09-15 16:25:021385瀏覽

在Python中執行隨機性的Runs測試

介紹

隨機性的概念在洞察力、密碼學和模擬等不同領域中起著至關重要的作用。決定一系列資訊是否真正不規則或顯示一些基本設計,在許多應用中是基礎性的。用於此目的的一種常用的可測量測試是隨機性的運行測試。在本文中,我們深入探討了隨機性的運行測試,並說明如何使用Python進行測試,Python是一種靈活的程式語言,廣泛用於統計分析。透過利用Python和scipy.stats模組的強大功能,可以有效地應用運行測試來評估給定資料集的隨機性。

理解運行檢驗

Runs測試是一種非參數可測的測試,它檢查資料集中值的分組情況,以確定它們是否不規則或顯示一些有效模式。它基於「runs」的概念,這些連續事件的值要麼超過某個閾值,要麼低於某個閾值。透過分析分組中的運行次數,我們可以評估資訊的隨機性。

遊程測試的基本懷疑是,在真正的隨機性分組中,遊程數量往往會在特定的傳播之後發生。如果觀看的運行次數基本上偏離了預期的傳播,則表示訊息中存在設計的接近性或偏差。

Z 檢定統計量方程式

Z-test 測量可以是理論測試中使用的一種測量,用於確定總體平均值中缺少資訊點或測試平均值的標準差有多少。當大眾標準差已知時,通常會使用它。 Z−test 測量的方程式為:

Z = (X − µ) / (σ / √n)

Where:

(在哪裡)

Z是Z−檢定的測量值,

X是測試平均值,

μ 是總體平均值,

σ 是總體標準差,且

n是測試大小。

這個公式允許我們將一個測試平均值轉換為Z-分數,這有助於確定在無效假設為真的情況下獲得這樣的測試均值的可能性。透過將Z-檢定測量與標準常態分佈的臨界值進行比較,我們可以做出接受或拒絕無效假設的決策。

在Python中實作Runs測試

演算法

第1步:輸入訊息序列。

第 2 步:初始化因子:num_runs = 1,n = 資訊序列的長度。

第 3 步:透過比較順序元素,在資訊序列中運行數字。

第四步:使用expected_runs計算預期得分。

第 5 步:使用 std_deviation 計算標準差。

Example

的中文翻譯為:

範例

def run_test(data):
    n = len(data)
    num_runs = 1  

    for i in range(1, n):
        if data[i] != data[i - 1]:
            num_runs += 1

    expected_runs = (2 * n - 1) / 3
    std_deviation = ((16 * n - 29) / 90) ** 0.5

    z_score = (num_runs - expected_runs) / std_deviation

    return num_runs, expected_runs, std_deviation, z_score

if __name__ == "__main__":
    
    data = [12, 10, 8, 9, 7, 5, 4, 6, 8, 10]

    num_runs, expected_runs, std_deviation, z_score = run_test(data)

    print("Data:", data)
    print("Number of Runs:", num_runs)
    print("Expected Runs:", expected_runs)
    print("Standard Deviation:", std_deviation)
    print("Z-Score:", z_score)
    print("Conclusion:")
    
    
    if abs(z_score) <= 1.96:
        print("The Run Test result is not statistically significant.")
    else:
        print("The Run Test result is statistically significant.")

輸出

Data: [12, 10, 8, 9, 7, 5, 4, 6, 8, 10]
Number of Runs: 10
Expected Runs: 6.333333333333333
Standard Deviation: 1.2064640713902572
Z-Score: 3.039184301975457
Conclusion:
The Run Test result is statistically significant.

限制和注意事項

儘管隨機性的Runs檢定可能是一種有價值的事實工具,但在進行Python的Runs檢定時,要注意其限制和考慮因素。以下是在執行Runs檢定時要確保的幾個要點:

  • 樣本估計:運行測試需要足夠大的測試估計值來提供可靠的結果。如果資料集太小,測試可能不夠敏感,無法準確識別隨機性的偏差。建議測試測量值至少為 20,以獲得可靠的結果。

  • 自主假設:運行測試接受資料集中的感知彼此獨立。如果資訊焦點不是自主的或表現出某種形式的自相關,則運行檢驗的結果可能是片面的或有問題的。這樣,確保近期應用測試的資訊的自由度就具有重要意義。

  • 閾值確定:運行測試包括表徵閾值,以識別高於和低於該限制的運行值。邊緣的選擇完全可以影響測試的結果。必須選擇與所分析資訊的性質相符的擬合邊緣。邊緣不宜太極端或太寬鬆,因為這可能會導致欺騙性的結論。

  • 結果解釋:雖然運行測試提供了有關資料集隨機性的一些知識,但謹慎解讀結果至關重要。此測試並非權威地證明隨機性或非隨機性,而是調查隨機性的起飛程度。值得注意的 p−值建議從隨機性中起飛,但它不提供有關資訊中的性質或特定設計的資訊。

  • 與預期輸送量的比較:運行測試將觀察到的運行次數與基於隨機性的預期離散度進行比較。在任何情況下,值得注意的是,預期的離散度可能會根據資訊的特徵和所使用的遊程測試的特定變化而變化。因此,在解讀結果時考慮適當的預期效益至關重要。

結論

隨機性的運行測試可能是評估資料序列的隨機性的重要工具。透過分析資料集中的運行次數,我們能夠確定資訊是否顯示任何基本模式或偏差。 Python以其豐富的函式庫環境,為執行統計測試(如運行測試)提供了一個有用的平台。在本文中,我們探討了運行測試的概念,並概述了使用scipy.stats模組在Python中進行運行測試的步驟。請記住,統計測試並不能作為隨機性或非隨機性的確切證據,但它們作為分析資訊的重要工具。

以上是在Python中執行隨機性的Runs測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除