詳解r語言的特點「r語言是什麼專業學的」

作為一門編程語言,R已經演變和發展了20多年。開發者的目標非常清晰,就是使R成一款簡單易用且靈活的,能夠綜合執行統計計算、數據探索和可視化的工具。

在眾多統計軟體中,R能夠脫穎而出,有幾個優勢:免費開源、高度通用性、作為動態腳本語言的靈活、代碼可重複性,除此之外,R語言還有著豐富的資源強大的社區,來自不同領域的統計學、計量經濟學等專業研究者,在為R語言做貢獻,使R有幸將數據科學知識應用於現實世界,進一步提高其功能並揭示其潛力。

當然,R也存在一些固有缺點,例如學習曲線相對比較陡峭、第三方包的質量良莠不齊等。但我相信,未來的R將不再局限為一種語言,而是成為行業間通用的交流貨幣。

程序員不用的R語言,在這些行業卻「香」到不行

R語言都有哪些行業在用

● 統計分析

在統計分布、假設檢驗和統計建模里,R語言是「絕對王者」。藉助ggplot2畫靜態圖,plotly畫交互圖,你可以快速創建所需的各種可視化圖表,方便又直觀(跟領導彙報時都多了份底氣)

程序員不用的R語言,在這些行業卻「香」到不行

● 金融分析

R語言在金融領域的應用主要包括量化策略、投資組合、風險控制、時間序列等。

以時間序列為例,在金融市場里,最重要的一個維度就是時間,一切交易和價格隨著時間一點一滴地被記錄下來。

此外,R語言被長期應用在量化金融分析領域,其專門的量化投資包能夠滿足投資者量化投資的需要,通過數據處理和運算,自動判斷未來價格走勢,從而自動擇股。

● 數據挖掘

數據挖掘領域通常面臨著關聯規則挖掘、聚類、分類這三大問題

很多人對R的第一印象是,它只是一個統計計算的一個軟體。但R有足夠的能力以一個快速和簡單的方式來實現機器學習演算法,並通過使用機器學習的方法來構建預測模型的基本能力。

● 互聯網

R語言在互聯網的主要應用是推薦系統、消費預測和社交網路等。

在互聯網高速發展的今天,通過建立社交網路,形成人類行為相關性的分析框架,而且對於尋找行為相似性更高的用戶進行軌跡預測、商品推薦、鏈路預測等場景都有著直接或潛在的應用價值。

● 全球地理科學

國內一些R語言的先進組織,已經開發出了地理可視化、天氣預測等功能,比如這張批量繪製GIS圖,簡直不要太好看:

程序員不用的R語言,在這些行業卻「香」到不行

R語言與醫學大數據

醫學數據分析已經成為當前的熱門領域,它是醫學、統計學和計算機科學等領域的交叉學科,而R語言在臨床數據統計方面擁有其他語言無法媲美的優勢,因此受到了廣大醫學科研人員追捧的「香餑餑」。

現在的趨勢是醫療數據的大量爆發及快速的電子數字化,比如基因數據:一次全面的基因測序,產生的個人數據則達到 300GB;在生物醫藥方面,功能性磁共振影像的數據量也達到了數萬TB級別,每一幅影像包含有5萬像素值;此外,各種健身、健康可穿戴設備的出現,使得血壓、心率、體重,血糖,心電圖(EKG)等的監測都變為現實和可能,信息的獲取和分析的速度已經從原來的按「天」計算,發展到了按「小時」,按「秒」計算……

這種數據的擴展速度和覆蓋範圍是前所未有的,數據的來源也紛繁複雜。大數據給生物醫學領域帶來了巨大的影響,而生物醫學領域的發展離不開數據分析。數據的開發、利用、整理和分析為臨床實踐及科學研究提供了大量有價值的信息。

程序員不用的R語言,在這些行業卻「香」到不行

可以說,掌握R語言,利用其強大的統計分析和可視化功能,對提高醫療質量、強化患者安全、降低風險、降低醫療成本等方面發揮無與倫比的巨大作用。現在市面上有很多流行的統計和作圖軟體,如 SAS、SPSS、Stata 等。為何要選擇 R 呢?具體來講,R 有如下優勢。

  • 大多數統計軟體需要付費,而 R 是基於 GNU 通用公共許可協議發布的,它可以免費使用和傳播。
  • R 可以在多種平台下使用,如 Windows、macOS、各種版本的 Linux 和 UNIX 等。有用戶甚至在瀏覽器和手機操作系統上運行 R。
  • R 編程簡單,僅需要熟悉一些函數的參數和用法,不需要了解程序實現的細節。
  • R 小巧但功能強大,被稱為數據分析界的「瑞士軍刀」。R 的安裝文件大小不到100MB,大部分函數存在於擴展包里。這些擴展包涵蓋了各行各業中數據分析的前沿方法。
  • R 實現了可重複性分析,用戶可以從重複性分析工作中抽身出來,也能與同行分享分析過程並從中獲益。藉助 R 及其擴展包,用戶能在一份文檔中混合編寫 R 代碼和標記文本,並自動生成分析報告。

R語言在「臨床診斷」的應用

在臨床醫學中,醫生的一項重要任務是判斷就診者是否患病,以便採取適當的進一步行動。臨床檢測結果常被用於指導臨床決策,因此,對臨床診斷試驗的質量評價尤為重要。

用於描述檢測質量的統計學指標有:靈敏度、特異度、預測值、正確率和似然比等。通常最簡單的診斷結果是根據檢驗指標的測定值將受試對象分成真陽性(a)、假陽性(b)和假陰性(c)、真陰性(d)兩組。

對於這類檢驗指標的評價,通常是對檢驗結果與目前公認的最準確的診斷方法,即金標準 (gold standard)作比較,以正確區分「有病」和「無病」。而靈敏度和特異度是反映真實性最重要和不可缺少的指標。

靈敏度(sensitivity)是指患者檢測結果為陽性的百分率,也稱真陽性率:

靈敏度=a/(a+c)*100%

特異度(specificity)是指未患病的人檢測結果為陰性的百分率,也稱真陰性率:

特異度=d/(b+d)*100%

在實際應用中,我們往往只知道試驗的結果,並據此作出臨床判斷,但並不知道受試者究竟是否是患者。因此,我們需要了解檢驗結果預測疾病的能力,如陽性結果中真正的患者的比例是多少。

陽性預測值(positive predictive value)是指在檢測結果呈陽性的情況下受試者患病的比例:

陽性預測值=a/(a+b)*100%

陰性預測值(negative predictive value)是指在檢測結果為陰性的情況下受試者不患病的比例:

陰性預測值=d/(c+d)*100%

靈敏度和特異度反映了檢測方法的判斷能力不受患病率的影響,但受到疾病嚴重程度等患者特徵的影響。而預測值受到患病率的影響,患病率越低,陽性預測值越低,而陰性預測值越高。這時,最好來圖解靈敏度、特異度、陽性預測值和陰性預測值。

假設在一項研究中有 100 名患者和 100 名非患者。某一檢測試驗的靈敏度為 80%,特異度為 90%。數據可以描述如下:

> table1 <- as.table(cbind(c(80, 20), c(10, 90)))
> dimnames(table1) <- list("檢測結果" = c("陽性", "陰性"),
+ "金標準" = c("有病", "無病"))
> table1
金標準
檢測結果 有病 無病
陽性 80 10
陰性 20 90
> mosaicplot(t(table1), col = c("red", "white"), main = "")

由此得到不同患病率下的靈敏度和特異度示意圖:

程序員不用的R語言,在這些行業卻「香」到不行

圖a中,靈敏度是左側紅色部分的相對高度(80%),特異度是右側白色部分的相對高度(90%)。陽性預測值是指左側紅色部分相對於所有紅色部分所佔的比例,在此例中為 80/(80 + 10) ≈ 88.9%。陰性預測值是指右側白色部分相對於所有白色部分所佔的比例,在此例中為 90/(20 + 90) ≈ 81.8%。

事實上,左側部分的相對寬度反映了這種疾病的患病率。在此例中,兩個組的數目相等,所以患病率為 50%。靈敏度和特異度的計算限定在每一列中,因此它們與患病率無關。如果不考慮研究的設定條件,尤其是在社區研究中,患病率通常遠遠低於 50%。

圖b表示的患病率較低,因為左側部分的寬度僅為兩列加起來的總寬度的5%。靈敏度(80%)和特異度(90%)與前例一致,但陽性預測值現在要小得多。患病組(左側)的紅色部分面積不到總的紅色面積的一半,陽性預測值僅為 80/(80 + 190) ≈ 29.6%。

在患病率為 5%的情況下,檢測結果呈陽性的人患病的可能性不到 30%。在社區或人群中對一種罕見疾病進行臨床診斷必須謹慎,因為結果實際上可能反映的是其他類似疾病的情況。

降低患病率對陰性預測值也有一定影響。在圖b中,右側白色部分的面積占絕對大的比重。陰性預測值為 1710/(1710 + 20) ≈ 98.8%。這比之前的 81.8%有所升高。但是,陰性檢測結果可能不會對臨床排除疾病的傾向決定有太大的影響。因此,患病率很低的篩查檢測中,很少用到陰性預測值。

以上就是臨床診斷試驗中的二分類結果的評價指標,而R語言在醫學中的應用遠不止這些,像比如截斷值、ROC曲線、SPSS、樣本量計算、Meta分析等。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/274110.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:10
下一篇 2024-12-17 14:10

相關推薦

發表回復

登錄後才能評論