R提高篇(五): 描述性統計分析

来源:http://www.cnblogs.com/tgzhu/archive/2016/10/19/5961176.html
-Advertisement-
Play Games

數據作為信息的載體,要分析數據中包含的主要信息,即要分析數據的主要特征(即數據的數字特征), 對於數據的數字特征, 包含數據的集中位置、分散程度和數據分佈,常用統計項目如下: 集中趨勢統計量: 均值(Mean)、中位數(Median)、眾數(Mode)、百分位數 離散趨勢統計量:標準差(sd)、方差 ...


 數據作為信息的載體,要分析數據中包含的主要信息,即要分析數據的主要特征(即數據的數字特征), 對於數據的數字特征, 包含數據的集中位置、分散程度和數據分佈,常用統計項目如下:

  • 集中趨勢統計量:  均值(Mean)、中位數(Median)、眾數(Mode)、百分位數
  • 離散趨勢統計量:標準差(sd)、方差(var)、極差(range)、變異繫數(CV)、標準誤、樣本校正平方和(CSS)、樣本未校正平方和(USS)
  • 分佈情況統計量:偏度、峰度
  • 示例函數

 集中趨勢


  • 均值(mean):描述數據取值的平均位置,指一組數據的平均數,R 函數語法: mean(x, trim = 0, na.rm = FALSE, ...),計算公式為:
  • 中位數(Median): 定義為數據排序位於中間位置的值, R函數語法:median(x, na.rm = FALSE),計算公式:
  • 眾數(Mode): 就是一組數據中占比例最多的那個數, R中未提供直接調用的函數,R演算法: names(table(x))[which.max(table(x))]
  • 百分位數(percentile): 是中位數的推廣.將數據按從小到大的排列後,對於0≤p<1,它的p分位點定義, R函數語法:quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,names = TRUE, type = 7, ...),計算公式為:
      • 要計算的點到起始點的距離/終點到起始點的距離=要計算的比例
      • 實際計算中:0.75分位數與0.25分位數(第75百分位數與第25百分位數)比較重要,它們分別稱為上、下四分位數,並分別記為Q3=m0.75,Q1=m0.25
  • 如果一隻腳放在攝氏1度的水裡,另一隻腳放在攝氏79度的水裡,平均水溫40度,你感覺舒服? 說明只瞭解數據的集中趨勢是不夠的,還需要看數據的離散程式

離散趨勢


  • 方差(Variance): 是描述數據取值分散性的一個度量.樣本方差(sample variance)是樣本相對於均值的偏差平方和的平均,記為s2,R函數語法:var(x, y = NULL, na.rm = FALSE, use),計算公式為:
      • 其中x是樣本的均值
  • 標準差(Standard Deviation): 也稱均方差(mean square error),是方差的算術平方根,R函數語法:sd(x, na.rm = FALSE),計算公式為:
  • 極差(Range): 描述樣本分散性的數字特征.當數據越分散,其極差越大,R函數語法: range(..., na.rm = FALSE),計算公式為:
  • 變異繫數(CV): 又稱離散繫數,是刻劃數據相對分散性的一種度量,它是一個無量鋼的量,用百分數表示,R無對應函數,計算公式為:
  • 樣本校正平方和(CSS):無R函數,計算公式:
  • 樣本未校正平方和(USS): 無R函數,計算公式:
  • 四分位差(quartile deviation):也稱為內距或四分間距(inter-quartile range),它是上四分位數(QL)與下四分位數(QU)之差,通常用Qd表示。計算公式為:
  • 標準誤:均值標準誤差就是樣本均值的標準差,是描述樣本均值和總體均值平均偏差程度的統計量,計算公式為:

 分佈情況統計


  • 偏度繫數:是刻劃數據的對稱性指標.關於均值對稱的數據其偏度繫數為0,右側更分散的數據偏度繫數為正,左側更分散的數據偏度繫數為負,偏度系統計算公式:
  • 峰度繫數:當數據的總體分佈為正態分佈時,峰度繫數近似為0;當分佈較正態分佈的尾部更分散時,峰度繫數為正;否則為負.當峰度繫數為正時,兩側極端數據較多;當峰度繫數為負時,兩側極端數據較少。峰度繫數計算公式:

 示例函數


  • 計算各種描述性統計量函數腳本如下:
    setwd("E:\\R")
    myDescriptStat <- function(x){
      n <- length(x)                    #樣本數據個數
      m <- mean(x)                      #均值
      me <- median(x)                   #中位數
      mo <- names(table(x))[which.max(table(x))]  #眾數
      sd <- sd(x)                       #標準差
      v <- var(x)                       #方差
      r <- max(x) - min(x)              #極差
      cv <- 100 * sd/m                  #變異繫數
      css <- sum(x - m)^2               #樣本校正平方和
      uss <- sum(x^2)                   #樣本未校正平方和
      R1 <- quantile(x,0.75) - quantile(x,0.25)     #四分位差
      sm <- sd/sqrt(n)                              #標準誤
      g1 <- n/((n-1)*(n-2)*sd^3)*sum((x-m)^3)/sd^3  #偏度繫數
      g2 <- ((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/sd^4 -(3*(n-1)^2)/((n-2)*(n-3))) #峰度繫數
      data.frame(N=n,Mean=m,Median=me,Mode=mo,
                 Std_dev=sd,Variance=v,Range=r,
                 CV=cv,CSS=css,USS=uss,
                 R1=R1,SM=sm,Skewness=g1,Kurtosis=g2,
                 row.names=1)
    }
  •   示例結果如下:

    > setwd("E:\\R")
    > source("myDescriptStat.R")
    > w<-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)  #學生體重
    > myDescriptStat(w)
       N  Mean Median Mode  Std_dev Variance Range       CV          CSS      USS  R1       SM
    1 15 62.36   63.5 62.2 7.514823 56.47257  27.6 12.05071 2.019484e-28 59122.16 8.9 1.940319
          Skewness   Kurtosis
    1 -0.001013136 0.09653947
  • 繪學生的體重的直方圖和核密度估計圖,並與正態分佈的概率密度函數作對照圖,代碼及示例:

    hist(w,freq=FALSE)
    lines(density(w),col="blue")
    x<-44:76
    lines(x,dnorm(x,mean(w),sd(w)),col="red")
  • 示例圖形:
  • 結論:可以通過密度估計曲線與正態分佈的概率密度曲線之間差別的大小來判斷數據是否來自正態總體.從上圖看,基本上可以認為學生的體重來自正態總體

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 入門瞭解html、css、js、jQuery:http://www.w3school.com.cn/, bootstrap、nodejs、php、jQuery入門:http://www.runoob.com/, bootstrp官方文檔及less教程:http://www.bootcss.com/, ...
  • 一、簡介 do_RichLabel支持html格式的文本內容,但是只支持部分標簽,這個示例列出了一些支持的常用標簽,android能支持的標簽相對ios更少 二、效果圖 三、相關下載 https://github.com/do-project/code4do/tree/master/richlabe ...
  • zDialog彈出框: 代替window.open、window.alert、window.confirm;提供良好的用戶體驗; 水晶質感,設計細膩,外觀漂亮; 相容ie6/7/8、firefox2/3、Opera;彈出框在ie6下不會被select控制項穿透; 無外部css文件,引用Dialog.j ...
  • 1. 複雜數據類型 Object ECMAScript中的對象其實就是一組數據(屬性)和功能(方法)的集合。 1) 創建Object實例: 1.使用構造函數創建,new Object() var person = new Object(); person.name = "briup"; person ...
  • × 目錄 [1]圓周運動 [2]鐘擺運動 [3]拋物線運動 前面的話 上一篇介紹了變速運動,但只實現了直線運動。如果元素的left和top同時運動,並遵循不同的曲線公式,則會進行不同形式的曲線運動。本文將詳細介紹圓周運動、鐘擺運動和拋物線運動這三種曲線運動形式 圓周運動 圓周運動可能是最好理解的曲線 ...
  • 近段時間在程式中寫到有關搜索的功能。其中有使用到MS SQLServer的關鍵詞BETWEEN,它是搜索數值範圍(包括本身)之間的數據。在使用它時,一些情況還需要註意的。如果時間的數據。搜索時間數據,要看資料庫存儲時間精度,存儲只有日期或帶有時間日期就需要註意了。不然搜索出來的數據與預期有有些出入。 ...
  • MySQL 字元串截取函數:left(), right(), substring(), substring_index()。還有 mid(), substr()。其中,mid(), substr() 等價於 substring() 函數,substring() 的功能非常強大和靈活。 1. 字元串截 ...
  • 前言:真正用到mysql是在公司的第二個項目下,具體的一些在之前的博客文章(http://www.cnblogs.com/zhengzeze/p/5623440.html)中也提到了,其中涉及到,免安裝版的mysql的配置問題,之前是從網上博客中學習的。現在把它貼出來,免得以後找不到了。具體的文章轉 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...