《Python專案——描述性統計分析》
一,簡介
描述性統計分析,是統計學當中的一種分析方法,它是對原始資料進行概括和觀察後的一種描述,一般分為集中趨勢分析和離散程度分析兩種方法。對於集中趨勢分析,我們主要研究的是資料的集中程度,有眾數,中位數,均值這幾個反映指標;而離散程度分析主要度量的是資料的分散程度,有四分位數,標準差這兩個反映指標。值得注意的是,當資料集的集中趨勢較強時,分散程度就越弱,反之亦然。
二,輸入
#獲得原始資料
def getdata():
while True:
data=eval(input('請輸入資料型資料(資料間用\',\'作為分隔符:)'))
for i in data:
judge=type(i)
if judge != int:
print('輸入非資料型資料,請重新輸入')
print('-'*20)
break
else:
return data
三,處理輸出
(一)集中趨勢分析
1.眾數
#對原始資料求眾數
def Mode(data):
'''
data:tuple
'''
count={}
mode_list=[]
for num in data:
if count.get(num,0) == 0:
count[num]=1
else:
count[num]+=1
for key,value in count.items():
if value == max(count.values()):
mode_list.append(key)
for i in range(len(mode_list)):
mode_list[i]=str(mode_list[i])
return ','.join(mode_list)
2.中位數
def Median(data):
data=sorted(data)
if len(data) %2 !=0:
locate=int((len(data)+1)/2)
med=data[locate-1]
else:
locate=(len(data)+1)/2
med=(data[int(locate-0.5-1)]+data[int(locate+0.5-1)])/2
return med
3.均值
def Average(data):
count=len(data)
sum=0
for num in data:
sum+=num
avg=sum/count
return avg
(二)離散程度分析
1.四分位數
def Quartile(data):
data=sorted(data)
Ql=(len(data)+1)*0.25
QU=(3*(len(data)+1))/4
if Ql ==int(Ql):
Ml=data[int(Ql)-1]
else:
Ml=(1-(Ql-int(Ql)))*data[int(Ql-1)]+(Ql-int(Ql))*data[int(Ql)]
if QU ==int(QU):
Mu=data[int(QU)-1]
else:
Mu=(1-(QU-int(QU)))*data[int(QU-1)]+(QU-int(QU))*data[int(QU)]
return Ml,Mu
2.標準差
def Stdev(avg,data):
mils=[]
sum=0
for num in data:
mils.append((num-avg)**2)
for num in mils:
sum+=num
return (sum/len(data))**(1/2)
四,結合輸出
def getdata():
while True:
data=eval(input('請輸入資料型資料(資料間用\',\'作為分隔符):'))
for i in data:
judge=type(i)
if judge != int:
print('輸入非資料型資料,請重新輸入')
print('-'*20)
break
else:
return data
def Mode(data):
count={}
mode_list=[]
for num in data:
if count.get(num,0) == 0:
count[num]=1
else:
count[num]+=1
for key,value in count.items():
if max(count.values())==1:
return None
if value == max(count.values()):
mode_list.append(key)
for i in range(len(mode_list)):
mode_list[i]=str(mode_list[i])
return ','.join(mode_list)
def Median(data):
data=sorted(data)
if len(data) %2 !=0:
locate=int((len(data)+1)/2)
med=data[locate-1]
return med
else:
locate=(len(data)+1)/2
med=(data[int(locate-0.5-1)]+data[int(locate+0.5-1)])/2
return med
def Average(data):
count=len(data)
sum=0
for num in data:
sum+=num
avg=sum/count
return avg
def Quartile(data):
data=sorted(data)
Ql=(len(data)+1)*0.25
QU=(3*(len(data)+1))/4
if Ql ==int(Ql):
Ml=data[int(Ql)-1]
else:
Ml=(1-(Ql-int(Ql)))*data[int(Ql-1)]+(Ql-int(Ql))*data[int(Ql)]
if QU ==int(QU):
Mu=data[int(QU)-1]
else:
Mu=(1-(QU-int(QU)))*data[int(QU-1)]+(QU-int(QU))*data[int(QU)]
return Ml,Mu
def Stdev(avg,data):
mils=[]
sum=0
for num in data:
mils.append((num-avg)**2)
for num in mils:
sum+=num
return (sum/len(data))**(1/2)
data=getdata()
mode=Mode(data)
med=Median(data)
avg=Average(data)
Ml,Mu=Quartile(data)
std=Stdev(avg,data)
print('眾數為{},\n中位數為{},\n上分位數為{},\n下分位數為{},\n均值為{:.2f},\n標準差為{:.2f},\n'.format(mode,med,Ml,Mu,avg,std))
相關文章
- 常用【描述性統計指標】含義(by python)指標Python
- 分析“詞頻統計“專案程式
- 專案sql統計SQL
- 如何統計專案程式碼?
- 系統分析員/專案經理/DBA?
- 專案分析
- 如何建立iOS證書和描述性檔案iOS
- Hadoop學習筆記—20.網站日誌分析專案案例(三)統計分析Hadoop筆記網站
- 軟體專案管理流程分析與設計專案管理
- Kowala專案分析
- Python:對程式做效能分析及計時統計Python
- python畢業設計專案原始碼Python原始碼
- 多元統計之因子分析模型及Python分析示例模型Python
- Kafka專案實戰-使用者日誌上報實時統計之分析與設計Kafka
- 統計專案內程式碼行數
- python 統計檔案中有多少空行Python
- ESB 專案需求分析和方案設計淺談
- SPSS統計分析過程包括描述性統計、均值比較、一般線性模型、相關分析、迴歸分析、對數線性模型、聚類分析、資料簡化、生存分析、時間序列分析、多重響應等幾大類...SPSS模型聚類
- 專案---考評系統排課演算法分析演算法
- 個人專案----詞頻統計WEB(部分功能)Web
- 個人專案----詞頻統計(補全功能)
- Ospaf專案-commits詞頻統計模組MIT
- python gui專案PythonGUI
- python建立專案Python
- VB計算器專案演算法結構分析演算法
- 編寫具有描述性的 RESTful API (四): 通知系統RESTAPI
- 入門Python資料分析最好的實戰專案(二)Python
- 入門Python資料分析最好的實戰專案(一)Python
- QTP的描述性程式設計與正規表示式QT程式設計
- 多元統計分析01:多元統計分析基礎
- 正態分佈的應用——基於描述性統計與分佈的推論
- BTBI-nCov疫情分析BI系統專案詳情
- 團隊專案需求分析
- 記帳本專案分析
- EECS 183專案分析
- Python資料分析之 pandas彙總和計算描述統計Python
- 鏈遊專案系統開發方案設計
- 個人專案----詞頻統計----單元測試