日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

常用【描述性统计指标】含义(by python)

發布時間:2023/11/30 python 37 coder
生活随笔 收集整理的這篇文章主要介紹了 常用【描述性统计指标】含义(by python) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

統計學有時候會被誤解,好像必須有大量的樣本數據,才能使統計結果有意義。
這會讓我們覺得統計學離我們的日常生活很遙遠。

其實,如果數據的準確度高的話,少量的樣本數據同樣能反映出真實的情況。
比如,很多國家選舉時不斷做的民意調查,一般做到有效樣本1600多份就夠了,不管你是幾千萬人的小國家,還是數億人的大國,調查的樣本數都差不多。

所以,正確地進行統計,即使樣本數據量不大,我們也可以從中提取知識,避免被誤導。
不過,在此之前,我們要能夠清楚地理解統計數據和各種統計指標的含義,以及它們在區分真相和誤導時的作用。

1. 統計是什么

統計是個很籠統的概念,它涉及到很多事情,簡單來定義它的話,必然會掩蓋很多細節。
統計學可以被認為是處理數據的科學框架,其中包括與數據收集、分析和解釋相關的所有任務。

那么,什么是數據
數據是對世界觀察的一般集合,其性質多種多樣,從定性到定量。
比如,研究人員從實驗中收集數據,企業家從用戶那里收集數據,醫生從病人那里收集數據等等。

本篇準備介紹一些在分析數據時常用的兩種描述性指標,通過它們來實際的度量數據情況,而不是模凌兩可的描述數據性質。

本文使用的示例數據來自scikit-learn中自帶的糖尿病數據集。

from sklearn.datasets import load_diabetes

# 糖尿病人數據集
ds = load_diabetes(as_frame=True, return_X_y=True, scaled=False)
data = ds[0]

data.head()


其中一共有400多條數據。
這里不做糖尿病的分析,只是用這個數據集來演示一些統計學描述指標的計算方式。

2. 集中度指標

首先是集中度指標,它表示數據的“中間”是什么樣的。
“中間”這個詞是模糊的,我們可以用多種方式來定義中間。

2.1. 平均值

平均值是一種描述性統計量,描述的是數據集中最典型的值。
比如,我們看看示例數據中,糖尿病病人的年齡平均值:

# 獲取年齡列表
ages = data["age"].tolist()

# 年齡之和
sum_ages = sum(ages)
# 人數
num_ages = len(ages)

# 平均年齡
avg_ages = sum_ages / num_ages
avg_ages

# 運行結果
48.51809954751131

這個平均年齡告訴我們,易患糖尿病的“典型”年齡可能是48歲左右

2.2. 中位數

中位數是數據“中間”的另一種定義,它不像平均值那樣需要算術計算。
它只要將數據排序之后,取中間的那個值就行,如果數據集中數據的個數是偶數,則取排序后中間兩個值的平均值。

# 獲取年齡列表
ages = data["age"].tolist()

sorted_ages = sorted(ages)

# 人數
num_ages = len(ages)
mid = int(num_ages / 2)

# 因為人數是偶數,所以中位數是中間兩個數的平均值
med_ages = (sorted_ages[mid - 1] + sorted_ages[mid])/2
med_ages

# 運行結果
50.0

中位數年齡50與上面計算的平均值差別不大。
有時候,數據集中有一些異常值(極大或極小的值),就會造成中位數平均值差別很大。

異常值一般會對平均值產生不利的影響,而對于中位數來說,一般影響不大。

2.3. 眾數

眾數是數據中出現最頻繁的值,它不像平均值中位數那樣更像數據的“中間”
不過,一個值在數據集中重復出現的次數越多,對平均值的影響就越大,因此,眾數代表了對平均值的最高加權貢獻因素。

# 獲取年齡列表
ages = data["age"].tolist()

ages_count = {}
# 統計每個年齡的個數
for i in ages:
    if i in ages_count:
        ages_count[i] += 1
    else:
        ages_count[i] = 1

# 出現次數最多的年齡
max_age, max_count = 0, 0
for k, v in ages_count.items():
    if v > max_count:
        max_age = k
        max_count = v

print(max_age, max_count)

# 運行結果
53.0 19

眾數也就是出現最多的年齡,是53歲,有19人。
眾數相當接近中位數,這讓我們對于數據的集中趨勢更有信心。

3. 離散度指標

集中度指標讓我們了解到數據的“中間”是什么樣的,而離散度指標則是告訴我們數據“變化”有多大。
離散度指標讓我們可以度量數據的變化程度,哪怕是輕微的變化程度。

3.1. 極差

極差就是數據的最大值與最小值之差,它讓我們了解到數據的變化范圍有多大。

# 獲取年齡列表
ages = data["age"].tolist()

# 極差
max(ages) - min(ages)

# 運行結果
60.0

極差60歲,說明糖尿病患者的年齡差距很大,這是一種需要及早預防的疾病。

3.2. 標準差

標準差是對觀察結果分布的衡量,是對數據與“典型”數據點的偏差程度的度量。
標準差越大,數據在平均值附近的分布就越分散,反之越集中。

# 標準差計算函數
def stdev(nums):
    diffs = 0
    avg = sum(nums)/len(nums)
    for n in nums:
        diffs += (n - avg)**(2)
    return (diffs/(len(nums)-1))**(0.5)

# 獲取年齡列表
ages = data["age"].tolist()

stdev(ages)

# 運行結果
13.109027822041087

極差看出年齡的差距有60歲,但是標準差只有13歲左右,說明數據還算集中,不是太分散。

3.3. 方差

方差就是標準差的平方,它們幾乎是完全相同的東西。
需要注意的是,方差的單位是原始數據不一樣,而標準差的單位和原始數據一樣。

平均值一樣,方差標準差也會受到異常值的影響。

4. 總結

本篇主要內容包括:

  1. 描述性統計指標分兩種:集中度指標和離散度指標
  2. 描述性統計指標表示數據的簡單摘要
  3. 平均值計算我們數據集的典型值,易受異常值影響
  4. 中位數是數據集排序后的中間值,不易受異常值影響
  5. 眾數是出現次數最多的值
  6. 極差是數據集中最大值和最小值之間的差
  7. 方差標準差表示在平均值附近的波動情況

總結

以上是生活随笔為你收集整理的常用【描述性统计指标】含义(by python)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。