成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文帶您理解正態分數變換 (Normal Score Transformation,NST)

大數據 數據分析
正態分數變換(NST)是一種將非正態分布數據轉化為接近標準正態分布的方法,主要通過對數據進行排序并根據秩值轉換為正態分布分位數。

在數據分析與建模中,許多插值和模擬方法要求輸入數據服從正態分布。而正態分數變換(Normal Score Transformation,NST)正是一種將數據轉化為標準正態分布的有效方法。通過該方法,我們可以將原始數據集轉化為一個與標準正態分布相似的數據集,從而滿足某些分析方法的需求。正態得分變換的核心步驟包括:首先對數據集進行排序并賦予秩次,然后根據秩值在標準正態分布中找到對應的分位數,最后通過這些正態分布的值構成變換后的數據集。在實際應用中,秩次的計算可以通過頻率分布或累計分布來完成,確保變換結果準確、可靠。

下面展示了應用正態得分變換前后,直方圖和累積分布的示例:

圖片圖片

圖片圖片

如何進行正態分數變換 (Normal Score Transformation)

對非正態分布的數據進行正態分數轉換(normal score transformation),也稱為秩正態化(rank normalizing)。具體步驟如下:

生成秩向量:首先,對原始數據 x=(x1,x2,…,xn) 進行排序,得到一個秩向量 Rx=(Rx1,Rx2,…,Rxn),其中 Rxi 表示數據點 xi 在所有觀測值中的秩次。

轉換為標準正態分布:接下來,使用秩值來計算正態分數。對于每個 xi,將秩值 Rxi 轉換為正態分布的分位數,計算公式為:

圖片圖片

其中,??1 是標準正態分布的逆累積分布函數(即將概率值轉換為正態分布下的對應值)。

這種方法的核心是通過秩排序將非正態數據映射到正態分布空間中,從而使數據更符合正態分布,通常用于統計分析或機器學習模型的前處理。

下面的python 代碼實現:

import numpy as np
from scipy.stats import rankdata, norm
# 假設有一組非正態分布的數據
x = [0.1, 0.2, 1.1, 1.5, 3.8, 5.4, 6.9, 6.6, 0.2, 0.2]
# 1. 計算秩向量
ranks = rankdata(x,method='average')  # method {'average', 'min', 'max', 'dense', 'ordinal'}
# 2. 將秩向量轉換為正態分數
n = len(x)
x_prime = [norm.ppf(rank / (n+1)) for rank in ranks]
print("原始數據:", x)
print("秩向量:", list(ranks))
print("正態分數:",[round(num,3) for num in x_prime]  )

圖片圖片

  • rankdata(x):計算并返回數據的秩向量。秩是從 1 到 n 的整數,每個數據項對應它在排序中的位置。
  • norm.ppf():計算標準正態分布的逆累積分布函數(即將概率值映射到正態分布的分位數),這里的概率是通過 Rxi /(n+1) 計算得到的。

其他修正的方式

Blom’s formula:

圖片圖片

Blom’s 方法引入了一個修正項,使得尾部的正態分數更加接近實際分布。

Tukey’s formula:

圖片圖片

Tukey 的公式類似于 Blom,但調整項略有不同。

Van der Waerden's formula

圖片圖片

import numpy as np
from scipy.stats import rankdata, norm
# 原始數據
x = [0.1, 0.2, 1.1, 1.5, 3.8, 5.4, 6.9, 6.6, 0.2, 0.2]
# 方法 1: 使用 average 秩和 Van der Waerden's formula
ranks_average = rankdata(x, method='average')
n = len(x)
x_prime_vdw = [norm.ppf((rank - 0.5) / n) for rank in ranks_average]
# 方法 2: Blom's formula
x_prime_blom = [norm.ppf((rank - 3/8) / (n + 1/4)) for rank in ranks_average]
# 方法 3: Tukey's formula
x_prime_tukey = [norm.ppf((rank - 1/3) / (n + 1/3)) for rank in ranks_average]
# 打印結果
print("原始數據:", x)
print("平均秩:", list(ranks_average))
print("Van der Waerden:", [round(num,3) for num in x_prime_vdw])
print("Blom:", [round(num,3) for num in x_prime_blom])
print("Tukey:", [round(num,3) for num in x_prime_tukey])

圖片圖片

正態分數變換與 Z-Score 標準化變換的區別

正態分數變換(NST)和 Z-Score 標準化都是數據預處理中常用的方法,但它們的目標和實現方式有顯著不同。

NST是一種非線性變換,通過將數據的秩次映射到標準正態分布的分位數,強制將非正態數據轉換為嚴格的正態分布,適用于需要數據服從正態假設的場景(如克里金插值);其優勢在于對異常值不敏感且能重塑分布形態。而Z-Score是線性變換(基于均值和標準差),僅調整數據的中心位置和尺度,不改變原始分布形狀,適用于消除量綱差異(如機器學習特征標準化),但對異常值敏感。兩者分別服務于“分布形態修正”和“數值標準化”的不同需求。

以下是兩者的主要區別:

圖片圖片

根據具體需求選擇合適的方法:如果需要數據嚴格服從正態分布,使用正態分數變換;如果僅需消除量綱差異,使用 Z-Score 標準化。

正態分數變換(NST)是一種將非正態分布數據轉化為接近標準正態分布的方法,主要通過對數據進行排序并根據秩值轉換為正態分布分位數。與 Z-Score 標準化不同,NST的目標是使數據符合正態分布,而 Z-Score 標準化則主要用于消除量綱差異。NST常用于統計分析和機器學習模型的前處理,以確保數據符合正態性要求。

責任編輯:武曉燕 來源: 新語數據故事匯
相關推薦

2024-07-11 12:14:20

Pythonmapfilter

2025-04-30 10:36:17

2024-10-06 14:01:47

Python裝飾器對象編程

2024-03-12 17:54:55

容器類型Init

2024-10-08 10:44:32

2024-05-21 09:45:40

機器學習人工智能XAI

2024-08-19 00:01:00

2024-10-17 16:45:46

Python內置函數

2023-07-07 08:00:00

KafkaSpringBoo

2024-07-31 15:11:57

SymPypython數學運算

2024-08-08 11:31:41

2025-01-06 07:54:13

SPC控制圖工具

2019-10-11 08:41:35

JVM虛擬機語言

2022-08-18 15:52:13

開發者阿里云

2022-08-18 09:00:00

自動駕駛合成控制邁阿密

2023-07-31 07:25:27

2020-01-03 10:40:36

網絡遙測丟包率

2024-05-13 11:25:08

概念模型邏輯模型物理模型

2018-11-01 09:46:02

推薦系統架構

2022-07-18 21:53:46

RocketMQ廣播消息
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色片免费在线观看 | 国产乱码精品一区二区三区五月婷 | 欧美www在线观看 | 天天看天天摸天天操 | aⅴ色国产 欧美 | 男女视频网站 | 日本精品一区二区三区在线观看视频 | 99re视频在线 | 色资源站 | 毛片一级黄色 | 欧美激情国产日韩精品一区18 | 黑人巨大精品欧美一区二区免费 | 亚洲国产偷 | 毛片高清| 午夜精品久久久久久久久久久久 | 亚洲国产欧美日韩 | 亚洲精品在线免费观看视频 | 国产在线麻豆精品入口 | 黄片毛片在线观看 | 精品在线观看入口 | 国产精品久久久久久久久久99 | 精品欧美一区二区精品久久久 | 先锋影音资源网站 | 亚洲精品免费在线观看 | 色性av | 亚洲国产精品网站 | 成人二区 | 色爱综合网 | 日日精品 | 国产精品国产三级国产aⅴ中文 | 中文字幕国产精品视频 | 亚洲成人www | 欧美福利 | 免费h在线 | 国产精品久久久久久久久久 | 在线中文字幕亚洲 | 国产三级电影网站 | 亚欧洲精品在线视频免费观看 | 久久久亚洲一区 | 欧美国产一区二区 | 亚洲最新在线视频 |