【數據分析與數據挖掘】三、單因子探索分析與可視化

目錄

1.單因子分析和對比分析必要的理論知識

2.編碼實現

3.數據分類


1.單因子分析和對比分析必要的理論知識

集中趨勢:均值,中位數,分位數,衆數

離中趨勢:標準差、方差

數據分佈:偏態與峯態、正太分佈於三大分佈

抽樣理論:抽樣誤差、抽樣精度

(1)集中趨勢:均值,中位數,分位數,衆數

  • 均值:經常用來衡量連續值、分佈比較規律的連續值的集中趨勢

  • 中位數:衡量異常值(有些值很大,有些值很小)

  • 衆數:離散值的集中趨勢衡量

  • 分位數:與以上三個值共同作用,產生比較好的作用

    • 分位數是指把數據從小到大排列,切分成等分的數據點,最常用的是4分位數。四分位數(Quartile)也稱四分位點,是指在統計學中把所有數值由小到大排列並分成四等份,處於三個分割點位置的數值。

    • 4分位數的計算 方法:

      Q1的位置= (n+1) × 0.25

      Q2的位置= (n+1) × 0.5

      Q3的位置= (n+1) × 0.75

(2)離中趨勢:標準差、方差

  • 標準差公式如下, 標準差越大,表示數據越離散,標準差越小,表示數據越聚攏。

  • 正太分佈圖:

(3)數據分佈:偏態與峯態、正太分佈於三大分佈

  • 偏態係數就是數據平均值偏離狀態的一種衡量 ,公式如下:

    如果S爲正,就是正偏,說明均值比較大;S爲負,就是負偏,說明均值比較小。

  • 峯態係數,數據分佈集中強度的衡量,值越大,頂就越尖

  • 正態分佈

  • 卡方分佈:幾個標準正太分佈(均值爲0,方差爲1)的平方和滿足於一個分佈,就是卡方分佈。

  • T分佈:正太分佈的一個隨機變量除以一個服從卡方分佈的變量所服從的分佈,T分佈經常用來根據小樣本來估計成正太分佈且方差未知的總體的均值。

  • F分佈:是由兩個服從卡方分佈的隨機變量的比構成的分佈。

(4)抽樣理論:抽樣誤差、抽樣精度

全量計算的成本大,但是現在大數據的發展,成本會越來越小;還有一種情況是全量的檢驗是不現實的,例如測燈泡的壽命。抽樣方式有多種:完全隨機抽樣,等差距抽樣,分類的分層抽樣等。

例子:

解:由題意得,這是重複抽樣,誤差爲0.07公斤,要保證95.45%的概率的話,每條草魚的重量範圍在[2-(20.07), 2+(20.07)],即可以保證95.45%的概率草魚的重量在1.86到2.14kg範圍內。

2.編碼實現

(1)Pandas 常用的數據結構有兩種:Series 和 DataFrame

Series 是一個帶有 名稱 和索引的一維數組,既然是數組,肯定要說到的就是數組中的元素類型,在 Series 中包含的數據類型可以是整數、浮點、字符串、Python對象等。

DataFrame 是一個帶有索引的二維數據結構,每列可以有自己的名字,並且可以有不同的數據類型。你可以把它想象成一個 excel 表格或者數據庫中的一張表,DataFrame 是最常用的 Pandas 對象。

關於詳解Pandas常用數據結構的博客:https://juejin.im/post/5b34408f51882574d20bbbf7

(2)pandas如何均值、方差等

import pandas as pd
file = pd.read_csv("./data/HR.csv")

file['satisfaction_level'].mean() #求均值
file['satisfaction_level'].median() #求中位數
file['satisfaction_level'].quantile(q=0.25) #求satisfaction_level這一列的四分位數
file['satisfaction_level'].mode() # 求衆數
file["number_project"].std() # 標準差
file["number_project"].var() # 方差
file["number_project"].sum() #方差
file["number_project"].skew() # 偏態係數
file["number_project"].kurt() # 峯態係數

(3)生成正太分佈函數、T分佈、F分佈

import scipy.stats as ss
ss.norm # 生成標準正態分佈函數
ss.norm.stats(moments="mvsk") #返回m,v,s,k. m表示均值mean,v方差,s偏態係數,k峯態係數
ss.norm.pdf(x= 0.0) # 返回x對應得y值
ss.norm.ppf(q = 0.9) # x必須是0~1之間的數,返回的是從負無窮到0.9所對應得y的累加和
ss.norm.cdf(2) # 表示x從負無窮到2的累積概率是多少
ss.norm.rvs(size =10)# 生成size個符合正太分佈的數字

ss.t # T分佈函數,也有pdf、ppf、cdf、rvs可用
ss.f # F分佈函數,也有pdf、ppf、cdf、rvs可用

(4)抽樣

# 抽樣
import pandas as pd
file = pd.read_csv("./data/HR.csv")

print(file.sample(10)) # 每個屬性中抽10個

結果爲:

print(file.sample(frac=0.001)) # 抽總體樣本的0.1%個數據
print(file["satisfaction_level"].sample(10)) # 抽取“satisfaction_level”這個屬性的10個樣本

結果爲:

3.數據分類

(1)定類(類別):根據事物離散、無差別屬性進行的分類,例如性別、名族;

(2)定序(順序):可以界定數據的大小,但不能測定差值。例如:收入:高、中、低;

(3)定距(間距):可以界定數據大小的同時,可測定差值,但無絕對零點;(無零點,說明乘法、除法、比率是沒有意義的)。例如:不能說20攝氏度是10攝氏度的兩倍,這樣的表述是不正確的;

(4)定比(比率):可以界定數據大小,可測定差值,有絕對零點。例如:身高、體重、體積等;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章