簡體   English   中英

測量數據幀的負/正偏度

[英]Measure negative/positive skewness of a dataframe

我正在尋找一種方法來檢查數據是否使用 Spark 向左或向右傾斜。 以下示例給出了相同的偏度統計數據。

>>> from pyspark.sql import functions as f
>>> val1 = [('2018-01-01',20),('2018-02-01',100),('2018-03-01',50),('2018-04-01',0),('2018-05-01',0),('2018-06-01',0),('2018-07-01',0),('2018-08-01',0),('2018-09-01',0)]
>>> val2 = [('2018-01-01',0),('2018-02-01',0),('2018-03-01',0),('2018-04-01',0),('2018-05-01',0),('2018-06-01',0),('2018-07-01',20),('2018-08-01',100),('2018-09-01',50)]
>>> columns = ['date','value']
>>> val1_df = spark.createDataFrame(val1, columns)
>>> val1_df.agg(f.skewness("value")).show()
+-----------------+
|  skewness(value)|
+-----------------+
|1.646145420937772|
+-----------------+

>>> val2_df = spark.createDataFrame(val2, columns)
>>> val2_df.agg(f.skewness("value")).show()
+------------------+
|   skewness(value)|
+------------------+
|1.6461454209377715|
+------------------+

是否有任何方法可以根據 spark 中的“日期”列獲得正偏度或負偏度?

這兩個向量具有相同的分布,因此您的偏斜將相同

from scipy.stats import skew

val1 = [20,100,50,0,0,0,0,0,0]
skew(val1)

Out[6]: 1.646145420937772

val2 = [0,0,0,0,0,0,50,100,20]
skew(val2)

Out[7]: 1.646145420937772

如果用 100 替換第二個向量中的零,則分布將向左傾斜

val2 = [100,100,100,100,100,100,50,100,20]
skew(val2)

Out[9]: -1.5578824286327273

在 pyspark

from pyspark.sql import functions as f

val1 = [(20,100),(100,100),(50,100),(0,100),(0,100),(0,0),(0,50),(0,100),(0,20)]
cols = ['val1','val2']
df = spark.createDataFrame(val1, cols)
display(df.select(f.skewness(df['val1']),f.skewness(df['val2'])))

skewness(val1)  | skewness(val2)
1.6461454209377713 |-0.9860224906700872

偏度是一個統計時刻,它是一種定量方式來確定分布是正偏還是負偏斜以及偏斜程度。 它是一種單變量方法。 有多元偏度和峰度,但它更復雜看看這個

您要求的是對分布進行定性分析。 對於多變量分析,您可以使用卡方檢驗或 Royston 的 H 檢驗。 或者,您可以根據日期對值進行分組並直觀地查看它。

如果您想要分析結果,您可以按日期對值進行分桶,按值降序排序,然后找出哪 3 或 4 個日期具有前 3 或 4 分桶值。 您可以通過定義 QTR 查找表並與之進行比較來找出日期屬於哪個季度。 這會讓你知道它是到年底還是年初。 如果頂部日期到處都是,那么分布很可能與日期無關。

計算平均值和中位數。

當均值大於中位數時,存在正或右偏分布; 當均值、中位數和眾數相同時,存在正態分布(鍾形曲線); 當平均值低於中位數時,存在負或左偏分布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM