數據特征分析:2.對比分析

對比分析

兩個相互聯系的數(指標)進行比較(絕對數比較、相對數比較)?

?

對比分析

對比分析 → 兩個互相聯系的指標進行比較

絕對數比較(相減) / 相對數比較(相除)
結構分析、比例分析、空間比較分析、動態對比分析

?1.絕對數比較 -->相減

相互對比的指標在量級上不能差別過大??
(1)折線圖比較 (2)多系列柱狀圖比較

data.plot(kind='line',style = '--.',alpha = 0.8,figsize = (10,3),title = 'AB產品銷量對比-折線圖')
data.plot(kind = 'bar', width = 0.8,alpha = 0.8,figsize = (10,3),title = 'AB產品銷量對比-柱狀圖')
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
# 1、絕對數比較 → 相減  
data = pd.DataFrame(np.random.rand(30,2)*1000,columns = ['A_sale','B_sale'],index = pd.period_range('20170601','20170630'))
print(data.head())
# 創建數據 → 30天內A/B產品的日銷售額

data.plot(kind='line',style = '--.',alpha = 0.8,figsize = (10,3),title = 'AB產品銷量對比-折線圖')
# 折線圖比較
data.plot(kind = 'bar',width = 0.8,alpha = 0.8,figsize = (10,3),title = 'AB產品銷量對比-柱狀圖')
# 多系列柱狀圖比較

?

?

絕對值 在一個月中,折線圖的曲線

?  (3)柱狀圖堆疊圖+差值折線圖比較

plt.bar(x, y1, width = 1, facecolor = 'yellowgreen')   plt.bar(x, y2, width = 1, facecolor = 'lightskyblue')
plt.plot(x, y3, "--go") 差值折線圖
?
#絕對數比較,看它們比較的狀況--相減

x = range(len(data))
y1 = data['A_sale']
y2 = -data['B_sale'] #做一個正負堆疊圖

fig3 = plt.figure(figsize = (10, 6))
plt.subplots_adjust(hspace = 0.3) #做一下校準,  創建子圖及間隔設置。

ax1 = fig3.add_subplot(2, 1, 1) #柱狀圖創建方式
plt.bar(x, y1, width = 1, facecolor = 'yellowgreen')
plt.bar(x, y2, width = 1, facecolor = 'lightskyblue')
plt.title('AB產品銷量對比-堆疊圖')
plt.grid()
plt.xticks(range(0,30,6))
ax1.set_xticklabels(data.index[::6]) # x軸日期、間隔
ax2 = fig3.add_subplot(2, 1, 2)
y3 = data['A_sale'] - data['B_sale'] #折線圖,做減法
plt.plot(x, y3, "--go")
plt.grid()
plt.title('AB產品銷量對比-差值折線')
plt.xticks(range(0,30,6))
plt.axhline(0, color = 'r', linestyle = '--', alpha = 0.8)  # 添加y軸參考線
ax2.set_xticklabels(data.index[::5]) #加個標簽。# 創建差值折線圖

可以看到它們大概一個月中銷量的對比。

絕對數的比較更多的是兩個樣本量差不多,但更多的時候用的是相對數,相對數更多的時候是做一個結構性比較。

?

2、相對數比較 → 相除

有聯系的指標綜合計算后的對比,數值為相對數
結構分析、比例分析、空間比較分析、動態對比分析

(1)結構分析? 頻率對比

在分組基礎上,各組總量指標與總體的總量指標對比,計算出各組數量在總量中所占比重
反映總體的內部結構

data = pd.DataFrame({'A_sale':np.random.rand(30)*1000,'B_sale':np.random.rand(30)*200},index = pd.period_range('20170601','20170630'))
print(data.head())
print('------')
# 創建數據 → 30天內A/B產品的日銷售額
# A/B產品銷售額量級不同

data['A_per'] = data['A_sale'] / data['A_sale'].sum()  #A_sale的頻率 
data['B_per'] = data['B_sale'] / data['B_sale'].sum()  #計算出每天的營收占比,B_sale的頻率 
data['A_per%'] = data['A_per'].apply(lambda x:"%.3f%%" % (x*100)) 
data['B_per%'] = data['B_per'].apply(lambda x:"%.3f%%" % (x*100)) #轉換為百分數
data.head()

能看絕對值的,看相對值肯定是沒錯的,看相對值就已經拋開了相對值的影響,趨勢對比、完成度,

fig,axes = plt.subplots(2,1,figsize = (10,6),sharex=True)
data[['A_sale','B_sale']].plot(kind='line',style = '--.',alpha = 0.8,ax=axes[0])
axes[0].legend(loc = 'upper right')
data[['A_per','B_per']].plot(kind='line',style = '--.',alpha = 0.8,ax=axes[1])
axes[1].legend(loc = 'upper right')
# 絕對值對比較難看出結構性變化,通過看銷售額占比來看售賣情況的對比# 同時可以反應“強度” → 兩個性質不同但有一定聯系的總量指標對比,用來說明“強度”、“密度”、“普遍程度”
# 例如:國內生產總值“元/人”,人口密度“人/平方公里”

按總量做一個對比,也能看出大概趨勢,按百分比就好比較了(每一天中兩個產品銷量的對比)。結構分析反映的其實是跟總量之間的關系,可以說明強度、硬度

?(2)比例分析? 相比做除法

?它的核心在于通過多個變量或者說不同的變量之間的相比,比之后的新的變量,這個新變量賦予新的意義。比如說男女比例的比值可以看出其他方面。

比如人的流出占比和資本的流出占比

# 在分組的基礎上,將總體不同部分的指標數值進行對比,其相對指標一般稱為“比例相對數”
# 比例相對數 = 總體中某一部分數值 / 總體中另一部分數值 → “基本建設投資額中工業、農業、教育投資的比例”、“男女比例”...
# 2、相對數比較 → 相除
# (2)比例分析
data = pd.DataFrame({'consumption':np.random.rand(12)*1000 + 2000,'salary':np.random.rand(12)*500 + 5000},index = pd.period_range('2017/1','2017/12',freq = 'M'))
print(data.head())
print('------')
# 創建數據 → 某人一年內的消費、工資薪水情況
# 消費按照2000-3000/月隨機,工資按照5000-5500/月隨機

data['c_s'] = data['consumption'] / data['salary'] #一年的消費占比情況;  比例相對數 --->> 消費收入比
data
data['c_s'].plot.area(color = 'green', alpha = 0.5, ylim = [0.3, 0.6], figsize = (8, 3), grid = True) #創建面積圖去表達 
data

?

(3)空間比較分析 (橫向)

比如說同樣的2017年北京和深圳膜拜單車使用量,空間是比較抽象的更多的是在時間相同的情況下,不同的元素的比較。

同一時間內不同空間(這四個產品)的相互比較

 同類現象在同一時間不同空間的指標數值進行對比,反應同類現象在不同空間上的差異程度和現象發展不平衡的狀況空間比較相對數 = 甲空間某一現象的數值 / 乙空間同類現象的數值一個很現實的例子 → 絕對數來看,我國多經濟總量世界第一,但從人均水平來看是另一回事
data.sum().plot(kind = 'bar', color = ['r', 'g', 'b', 'k'], alpha = 0.8, grid = True) 同一個月內
data[:10].plot(kind = 'bar',color = ['r','g','b','k'], alpha = 0.8, grid = True, figsize = (12,4),width = 0.8) 同一天內
# 2、相對數比較 → 相除
# (3)空間比較分析(橫向對比分析)

data = pd.DataFrame({'A':np.random.rand(30)*5000,'B':np.random.rand(30)*2000,'C':np.random.rand(30)*10000,'D':np.random.rand(30)*800},index = pd.period_range('20170601','20170630'))
print(data.head())
print('------')
# 創建數據 → 30天內A/B/C/D四個產品的銷售情況
# 不同產品的銷售量級不同
#同一時間(每個月內) data.sum().plot(kind = 'bar', color = ['r', 'g', 'b', 'k'], alpha = 0.8, grid = True)#求和得到一個柱形圖,4個產品的不同營銷情況 for i, j in zip(range(4), data.sum()): plt.text(i - 0.25, j + 2000, '%.2f'% j, color = 'k') #通過柱狀圖做橫向比較, ---->> 4個產品的銷售額總量#同一時間(每一天) data[:10].plot(kind = 'bar',color = ['r','g','b','k'], alpha = 0.8, grid = True, figsize = (12,4),width = 0.8) # 多系列柱狀圖,橫向比較前十天4個產品的銷售額。 # 關于同比與環比 # 同比 → 產品A在2015.3和2016.3的比較(相鄰時間段的同一時間點) # 環比 → 產品A在2015.3和2015.4的比較(相鄰時間段的比較) # 如何界定“相鄰時間段”與“時間點”,決定了是同比還是環比

同比和環比都是在時間點上不一樣,都是類似同一個內容在不同時間的比較;同比更多的是去年的今天和今年的今天的比較,環比是今年每個時間段的比較,

?

(4)動態對比分析(縱向)

在時間層面,同一個東西在不同時間軸上進行對比,反映的是變化、速度、趨勢

 同一現象在不同時間上的指標數值進行對比,反應現象的數量隨著時間推移而發展變動的程度及趨勢最基本方法,計算動態相對數 → 發展速度動態相對數(發展速度) = 某一現象的報告期數值 / 同一現象的基期數值基期:用來比較的基礎時期報告期:所要研究的時期,又稱計算期
# 2、相對數比較 → 相除   (4)動態對比分析(縱向對比分析)

data = pd.DataFrame({'A':np.random.rand(30)*2000+1000},index = pd.period_range('20170601','20170630'))
print(data.head())
print('------')
# 創建數據 → 30天內A產品的銷售情況
data['base'] = 1000  # 假設基期銷售額為1000,后面每一天都為計算期
#累計增長量 = 報告期水平 - 固定基期水平
data['l_growth'] = data['A'] - data['base'] #每一天減去它就可以了 data
#逐期增長量= 報告期水平 - 報告期前一期水平
data['z_growth'] = data['A'] - data.shift(1)['A'] #每一天每個周期跟上個增長量的對比;shift移動一行 data.fillna(0, inplace = True) #替換缺失值 data[['l_growth','z_growth']].plot(figsize = (10,4),style = '--.',alpha = 0.8) plt.axhline(0,hold=None,color='r',linestyle="--",alpha=0.8) # 添加y軸參考線 plt.legend(loc = 'lower left') plt.grid() # 通過折線圖查看增長量情況 data.head()

?

累計增長量和逐期增長量的大小差別,如果是累計增長量它本身是跟著機器相比較,效益好每天都是增長的;

逐期增長量可以看到每天的一個變化頻率和變動趨勢了,如果今天的增長量和昨天的增長量比下降了就會是個負數。如果把逐期增長量加在一起,如果大于0,就是往上長的。

?

#定基增長速度
data['lspeed'] = data['l_growth'] / 1000
#環比增長速度
data['zspeed'] = data['z_growth'] / data.shift(1)['A']#報告期的水平/上期的水平

data[['lspeed','zspeed']].plot(figsize = (10,4),style = '--.',alpha = 0.8)  
plt.axhline(0,hold=None,color='r',linestyle="--",alpha=0.8)  # 添加y軸參考線
plt.grid()
data.head()

?

轉載于:https://www.cnblogs.com/shengyang17/p/9630749.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451272.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451272.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451272.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java基礎-Java中的內存分配與回收機制

Java基礎-Java中的內存分配與回收機制 作者:尹正杰 版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 一. 二.轉載于:https://www.cnblogs.com/yinzhengjie/p/9279601.html

離散數學中關于自反與反自反的通俗解釋

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 設R是A上的二元關系&#xff0c;二元關系自反&#xff1a;任取一個A中的元素x&#xff0c;如果都有<x,x>在R中&#xff0c;那么就…

[Educational Round 5][Codeforces 616F. Expensive Strings]

這題調得我心疲力竭...Educational Round 5就過一段時間再發了_(:з」∠)_ 先后找了三份AC代碼對拍&#xff0c;結果有兩份都會在某些數據上出點問題...這場的數據有點水啊_(:з」∠)_【然而卡掉本弱還是輕輕松松的】 題目鏈接&#xff1a;616F - Expensive Strings 題目大意&a…

Redis自增計數

INCR key 將 key 中儲存的數字值增一。 如果 key 不存在&#xff0c;那么 key 的值會先被初始化為 0 &#xff0c;然后再執行 INCR 操作。 如果值包含錯誤的類型&#xff0c;或字符串類型的值不能表示為數字&#xff0c;那么返回一個錯誤。 本操作的值限制在 64 位(bit)有符號數…

android布局中使用include及需注意點

在android布局中&#xff0c;使用include&#xff0c;將另一個xml文件引入&#xff0c;可作為布局的一部分&#xff0c;但在使用include時&#xff0c;需注意以下問題&#xff1a;一、使用include引入如現有標題欄布局block_header.xml&#xff0c;代碼如下&#xff1a;<Rel…

周鴻祎回顧IPO一周年:保持創業心態 看好無線

奇虎360董事長兼CEO周鴻祎 3月19日晚間消息&#xff0c;在奇虎360上市接近一周年之際&#xff0c;奇虎360董事長兼CEO周鴻祎與媒體及個人投資者進行溝通&#xff0c;他表示這一年壓力比以前更大&#xff0c;因為在上市光環下依然需要保持創業心態&#xff0c;同時他強調無線和…

《Effective Java》 第二講:對于所有對象都通用的方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 上接《Effective Java》 第一講&#xff1a;創建和銷毀對象 八、覆蓋 equals 時請遵守通用約定 1. 自反性&#xff1a;對于任何非空的引…

linux刪除文件操作

linux刪除文件夾命令 在用Linux的時候&#xff0c;有時候要刪除一個文件夾&#xff0c;往往會提示次此文件非空&#xff0c;沒法刪除&#xff0c;這個時候&#xff0c;必須使用rm -rf命令。 實例一&#xff1a; rm -rf /var/log/httpd/access 將會刪除/var/log/httpd/access目錄…

Python 運算符重載

https://www.cnblogs.com/hotbaby/p/4913363.html轉載于:https://www.cnblogs.com/changbaishan/p/9668720.html

python爬取elasticsearch內容

我們以上篇的elasticsearch添加的內容為例&#xff0c;對其內容進行爬取&#xff0c;并獲得有用信息個過程。 先來看一下elasticsearch中的內容&#xff1a; {"took": 88,"timed_out": false,"_shards": {"total": 5,"successful…

創業必經之路——Paul Graham創業曲線

導讀&#xff1a;國外媒體avc.com近日發表一篇文章《The Startup Curve》&#xff0c;文中談到創業者都處于Paul Graham創業曲線中各個階段&#xff0c;不要一味的畏懼失敗&#xff0c;要多傾聽客戶反饋并從中尋找制勝的信息。總而言之&#xff0c;不畏艱難即可成功。以下為文章…

Java:對象的強、軟、弱和虛引用

見&#xff1a;http://zhangjunhd.blog.51cto.com/113473/53092 maven/Java/web/bootstrap/dataTable/app開發QQ群&#xff1a;566862629。希望更多人一起幫助我學習。 1&#xff0e;對象的強、軟、弱和虛引用在JDK 1.2以前的版本中&#xff0c;若一個對象不被任何變量引用&am…

java注解:@Deprecated(不建議使用的,廢棄的);@SuppressWarnings(忽略警告,達到抑制編譯器產生警告的目的)

java注解&#xff1a;Deprecated(不建議使用的&#xff0c;廢棄的), SuppressWarnings(忽略警告&#xff0c;達到抑制編譯器產生警告的目的)Deprecated可以修飾類、方法、變量&#xff0c;在java源碼中被Deprecated修飾的類、方法、變量等表示不建議使用的&#xff0c;可能會出…

Mysql 替換字段的一部分內容

UPDATE 表名 SET 字段名 REPLACE( 替換前的字段值, 替換前關鍵字, 替換后關鍵字 ) WHERE 字段名 REGEXP "替換前的字段值"; 例子&#xff1a; UPDATE user SET mobile REPLACE( head_img, "http://7xswdm.com1.z0.glb.clouddn.com", "http://qiniu-i…

聊聊3種最常見的響應式設計問題

響應式設計方法對開發者非常有用&#xff0c;因為它使我們的內容在各種設備上廣為傳播。不用保留幾個獨立版本的網站&#xff0c;也可以摒除諸如縮放和流式布局這些方法的弊端。 縮放、流式布局與響應式 這些術語容易造成混淆&#xff0c;設計師常常錯誤地交替互用。實際上&…

PV、TPS、QPS是什么

pv 是指頁面被瀏覽的次數&#xff0c;比如你打開一網頁&#xff0c;那么這個網站的pv就算加了一次&#xff1b;tps是每秒內的事務數&#xff0c;比如執行了dml操作&#xff0c;那么相應的tps會增加&#xff1b;qps是指每秒內查詢次數&#xff0c;比如執行了select操作&#xff…

AOP原理解析及Castle、Autofac、Unity框架使用

轉自&#xff1a;https://www.cnblogs.com/neverc/p/5241466.html AOP介紹 面向切面編程&#xff08;Aspect Oriented Programming,英文縮寫為AOP&#xff09;&#xff0c;通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。 AOP是OOP的延續&#xff0c;是軟件…

bootstrap validator 提供了哪些驗證函數

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 目前提供的校驗方法有&#xff1a; "notEmpty" : "不能為空", "password" : "請輸入正確的密碼&q…

帕累托分布(Pareto distributions)、馬太效應

什么是帕累托分布 帕累托分布是以意大利經濟學家維弗雷多帕雷托命名的。 是從大量真實世界的現象中發現的冪次定律分布。這個分布在經濟學以外&#xff0c;也被稱為布拉德福分布。 帕累托因對意大利20%的人口擁有80%的財產的觀察而著名&#xff0c;后來被約瑟夫朱蘭和其他人概括…

兩個class寫在同一個java文件中

第一種&#xff1a; 一個public類&#xff0c;多個非public類&#xff0c;例如&#xff1a;public class A&#xff5b;&#xff5d;class B&#xff5b;&#xff5d;第二個class前面不能加public。 第二種&#xff1a; 第二種是內部類&#xff0c;寫在公共類體里面的&#xff…