我們拿到一組資料後,想要讀懂必須先找到資料的特徵,描述資料的特徵可以從三方面進行:水平、差異、分布的形狀。在統計學中有專門的統計量用來詮釋這三個方面的特徵。
一、描述水平的統計量
主要有:平均數、分位數、眾數。
平均數一般我們很難獲知總體的數值,所以我們會從總體中抽樣,算出樣本平均值,此時的平均值我們叫做「x拔」,寫成x上加乙個橫線,總體資料平均值我們叫做「miu」,寫成μ。
我們經常用到的平均數有算數平均數和加權平均數。
data4,# 計算算數平均數mean(data)mean(iris$sepal.length)# 計算加權平均數,x代表組中值,w代表組頻數(權數)# 計算時資料本身要先分組才可以weighted.mean(x,w)
分位數一組資料從小到大排序,找到某個位置的資料可以代表資料水平的高低,這就是分位數。常用的是中位數也就是50%分位數。
四分位數指的是一組資料排序後處在25%、75%位置上的數值。
百分位數在上述基礎上,將資料等分成100份。
# 直接計算中位數median(iris$sepal.length)#使用quantile函式計算25%、50%、75%分位數,預設演算法是6quantile(iris$sepal.length,probs = c(0.25,0.5,0.75),type=6)
眾數顧名思義,在一組資料**現的次數最多的數值就是眾數。如果資料分布沒有明顯的峰值,眾數則不存在,如果資料有兩個或者多個峰值,則眾數也會有兩個或多個。
在r語言中沒有專門的眾數函式,需要自己編寫函式。
可以利用mode模式進行編寫,將向量作為輸入,並將模式值作為輸出(模式可以同時包含數字和字元資料。)
總結:當資料分布接近對稱時,建議使用平均數作為衡量水平的統計量;如果資料有明顯的偏斜時,建議使用分位數、眾數作為衡量水平的統計量。
二、描述差異的統計量
所謂的差異指的是,一組資料中的離散程度。資料越離散,水平統計量代對資料的代表性就越差。差異統計量主要有:極差、四分位差、方差、標準差、測量相對離散程度的變異係數。
極差和四分位差
極差就是一組資料中最大值與最小值的差值(也叫全距)。極差一般用作分析資料離散程度的乙個參考值,不會單獨使用的。
四分位差也叫做四分位距。一組資料的75%位置數值與25%位置數值的差值,用iqr表示。四分位差說明了,中間50%的數值的離散程度,差值越小,資料越集中。
# 用一組資料的最大值減去最小值直接計算極差max(iris$sepal.length)-min(iris$sepal.length)# 計算四分位差iqr(iris$sepal.length,type = 6)
方差和標準差由於平均數代表一組資料的水平,那麼將每個資料與平均數做差值比較,可以用此衡量一組資料的離散程度,這個結果比極差、四分位差更加精準,叫做離差。通過計算所有資料與平均數之差的和為0。所以要將這個差值轉為絕對值後,求和後再平均,這就是絕對離差。
還有一種方法是將離差平方後求平均數,這就是方差。方差開方後,所得的結果為標準差。
標準差是指的一組資料與他的平均數相比,平均相差了多少,這是用的最廣泛的乙個描述差異的統計量。
標準差是反應資料離散程度的絕對值,所以受到原始資料大小的影響,資料觀測值大,標準差也會大。由於很多樣本之間的計量單位不同,大小也不一樣,所以需要計算變異係數。變異係數也成為離散係數,指的是一組資料的標準差與其平均值相比s÷x拔。因為這種做法消除了數值大小和計量單位的影響,所以也可以反應一組資料的相對離散程度,所以變異係數用作不同樣本之間的離散程度比較,值越大,證明相對離散程度越大。
# 計算方差v var(iris$sepal.length)#計算標準差s # 計算變異係數cv
標準分數也成為標準化值。可以度量每個數值在這組資料的相對位置,判斷一組資料裡是否有離群點。換句話說,它描述了資料距離平均值有幾個標準差。
通常我們將3個標準差之外的資料作為離群點。99%的資料在±3個sd之內,95%的資料在±2個sd之內,68%的資料在±1個sd之內。
# 計算標準化分數(距離平均值幾個標準差)# scale函式可以計算標準分數# as.vector將某乙個資料結果以向量的形式輸出# round函式是將某個結果的數值,保留幾位小數as.vector(round(scale(iris$sepal.length),4))
三、描述分布形狀的統計量直方圖可以看出來資料的分布是否是對稱的。有些統計量可以描述不對稱的分布的資料。主要有:偏度係數、峰度係數。
偏度
偏度說的是資料不對稱,偏度係數是一種描述資料有多麼不對稱的統計量。當資料對稱分布時,偏度係數接近0,若大於或者小於1,證明嚴重偏斜分布。一般認為,0.5~±1屬於中等偏斜分布,小於±0.5屬於輕微偏斜分布,負代表左偏,正代表右偏。
峰度
峰度說的是資料分布波浪中峰度的高低,測度分布峰值的統計量就是峰度係數,記作k。峰度一般與標準正態分佈相比較而言,標準正態分佈的峰度係數k>0,為尖峰分布,資料的峰值比標準正態分佈高,那麼資料更集中;如果k<0,形狀更扁平,資料相對分散。
install.packages("agricolae")library(agricolae)# 計算偏度係數skewness(chickwts$weight)# 計算峰度係數kurtosis(hickwts$weight)
四、綜合描述資料注意,如果你使用mac電腦時發現中文亂碼問題,可以嘗試寫入下方**:
sys.setlocale(category="lc_all",locale="en_us.utf-8")
首選選取乙個乙個csv檔案,確保檔案讀取沒有問題:
install.packages("readr","fansi","stringi")library(readr)# 判斷編碼型別readr::guess_encoding("檔案路徑.csv")# 按照編碼型別讀取檔案readr::read_csv("檔案路徑.csv",locale = locale(encoding = "utf-8"))
① describe函式進行資料綜合描述
# 使用包pastecs的stat.desc函式,對資料進行綜合描述install.packages("pastecs")library(pastecs)read.csv("檔案路徑.csv",header = true,encoding = "utf-8")round(stat.desc(example3_9),4) #保留4位小數
② stat.desc函式進行資料綜合描述
install.packages("psych")library(psych)example"檔案路徑.csv")describe(example)
③ summary函式進行資料綜合描述
example
④ 以繪圖的方式將統計量表達出來
# 通過上文的方法載入資料並賦值給物件example2"檔案路徑.csv")# attach(example2)# 確認圖形繪製位置、圖形繪製的預設字型par(fig=c(0,0.8,0,0.8),family='stkaiti')# hist函式可以繪製直方圖(選取乙個使用者繪製圖形的向量資料,xlab橫座標名字,ylab縱座標名字,pro為t代表頻率為f代表頻數,col代表顏色,main代表主要標題)hist(example2$月生活費支出,xlab = "月生活費支出",ylab = "頻率",prob=t,col = "lightblue",main = "")# jitter給向量資料加雜訊,rug向每個資料點新增乙個小的隨機值rug(jitter(example2$月生活費支出))# lines函式t通過各種方式繪製成線條# density進行核密度估計,給定要估計的向量引數即可(用於估計隨機變數概率密度函式的一種非引數方法);# 如果只想畫一條核密度曲線,可以使用plot(density(x))lines(density(example2$月生活費支出),col="red")# 再次確認乙個位置座標,並且位置作用在另乙個新的圖上,且不會覆蓋原來的圖par(fig=c(0,0.8,0.35,1),new=true)# boxplot函式可以繪製箱線圖,給定要繪製的向量資料# horizontal引數true為水平,false非垂直,axes代表是否展示座標軸,true代表展示boxplot(example2$月生活費支出,horizontal = true,axes=false)
繪製的效果如下圖:
【擴充套件】par函式的fig如何理解:
fig=c(x1,x2,y1.y2)。可以確認繪製圖形所在的區域位置。看下圖一目了然
感知機 理解係數向量和樣本點遞迴
感知機是監督學習,適用於線性可分的樣本 和fisher一樣,先有訓練集,再有測試集 分類的理想情況是 如果 代表y要下移動,為了清晰的說,我們將y方差寫成直線一般式 y ax by c 0 其中y的法向量是 a,b 黃色的乙個是樣本點的向量表示 藍色的是法向量 寫出向量的乘法公式,我選取的是標準基 ...
ArcMap 1 向量資料和柵格資料
gis概念中有相當多的資料檔案格式,我們經常接觸到的資料格式可以大致分為 柵格資料 與 向量資料 這兩類。這兩類資料分別對應著不同的應用場景,我們通常使用 柵格資料 來當作底圖,示意地理構造物 如山地 河流 湖泊 建築物 道路等 的空間形態 如形狀 位置 大小等 並可以進行一些簡易的空間分析 使用 ...
貧窮來自於懶惰 立貼為證,強化自我學習和管理
網上的乙個帖子 懶惰很多時候是來自於安於現狀,沒有長遠的眼光。按照朋友說的,三個小時就可完成一天的工作量,那麼其他時間幹點什麼吶?我的理解,三個小時只是完成了預定的工作量,那麼這項工作的內涵還有多少有待開發而沒有開發,需要誰去開發,自己能做嗎?這項工作的外延有多少是可以開發的而還沒有開發,需要誰去開...