溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言中有哪些統(tǒng)計分析方法

發(fā)布時間:2021-04-30 15:42:47 來源:億速云 閱讀:268 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)R語言中有哪些統(tǒng)計分析方法,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

什么是R語言

R語言是用于統(tǒng)計分析、繪圖的語言和操作環(huán)境,屬于GNU系統(tǒng)的一個自由、免費(fèi)、源代碼開放的軟件,它是一個用于統(tǒng)計計算和統(tǒng)計制圖的優(yōu)秀工具。

1、分組分析aggregation

根據(jù)分組字段,將分析對象劃分為不同的部分,以進(jìn)行對比分析各組之間差異性的一種分析方法。

常用統(tǒng)計指標(biāo):

計數(shù) length

求和 sum

平均值 mean

標(biāo)準(zhǔn)差 var

方差 sd

分組統(tǒng)計函數(shù)

aggregate(分組表達(dá)式,data=需要分組的數(shù)據(jù)框,function=統(tǒng)計函數(shù))

參數(shù)說明

formula:分組表達(dá)式,格式:統(tǒng)計列~分組列1+分組列2+...

data=需要分組的數(shù)據(jù)框

function:統(tǒng)計函數(shù)

aggregate(name ~ class, data=data, FUN=length);
#求和
aggregate(score ~ class, data=data, FUN=sum);
#均值
aggregate(score ~ class, data=data, FUN=mean);
#方差
aggregate(score ~ class, data=data, FUN=var);
#標(biāo)準(zhǔn)差
aggregate(score ~ class, data=data, FUN=sd)

2、分布分析cut

根據(jù)分析目的,將數(shù)據(jù)(定量數(shù)據(jù))進(jìn)行等距或者不等距的分組,進(jìn)行研究各組分布規(guī)律的一種分析方法。

分組函數(shù)

cut(data,breaks,labels,right)

參數(shù)說明

data=需要分組的一列數(shù)據(jù)

breaks=分組條件,如果是一個數(shù)字,那么將平均分組;如果是一個數(shù)組,那么將按照指定范圍分組

labels:分組標(biāo)簽

right:指定范圍是否右閉合,默認(rèn)為右閉合,right參數(shù)為TRUE

用戶明細(xì) <- read.csv('data.csv', stringsAsFactors=FALSE)
head(用戶明細(xì))
 
breaks <- c(min(用戶明細(xì)$年齡)-1, 20, 30, 40, max(用戶明細(xì)$年齡)+1)
 
年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks)
用戶明細(xì)[, '年齡分組1'] <- 年齡分組
 
年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks, right = FALSE)
用戶明細(xì)[, '年齡分組2'] <- 年齡分組
 
labels <- c('20歲以及以下', '21歲到30歲', '31歲到40歲', '41歲以上');
年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks, labels = labels)
用戶明細(xì)[, '年齡分組'] <- 年齡分組
 
head(用戶明細(xì))
 
aggregate(formula=用戶ID ~ 年齡分組, data=用戶明細(xì), FUN=length)

3、交叉分析tapply(相當(dāng)于excel里的數(shù)據(jù)透視表)

通常用于分析兩個或兩個以上,分組變量之間的關(guān)系,以交叉表形式進(jìn)行變量間關(guān)系的對比分析;

交叉分析的原理就是從數(shù)據(jù)的不同維度,綜合進(jìn)行分組細(xì)分,以進(jìn)一步了解數(shù)據(jù)的構(gòu)成、分布特征。

交叉分析函數(shù):

tapply(統(tǒng)計向量,list(數(shù)據(jù)透視表中的行,數(shù)據(jù)透視變中的列),FUN=統(tǒng)計函數(shù))

返回值說明:

一個table類型的統(tǒng)計量

breaks <- c(min(用戶明細(xì)$年齡)-1, 20, 30, 40, max(用戶明細(xì)$年齡)+1)

labels <- c('20歲以及以下', '21歲到30歲', '31歲到40歲', '41歲以上');
年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks, labels = labels)
用戶明細(xì)[, '年齡分組'] <- 年齡分組
 
head(用戶明細(xì))
 
tapply(用戶明細(xì)$用戶ID, list(用戶明細(xì)$年齡分組, 用戶明細(xì)$性別), FUN=length)

4、結(jié)構(gòu)分析prop.table

是在分組的基礎(chǔ)上,計算各組成部分所占的比重,進(jìn)而分析總體內(nèi)部特征的一種分析方法。

for example:資產(chǎn)占有率就是一個非常經(jīng)典的運(yùn)用

統(tǒng)計占比函數(shù)

prop.table(table,margin=NULL)

參數(shù)說明:

table,使用tapply函數(shù)統(tǒng)計得到的分組計數(shù)或求和結(jié)果

margin,占比統(tǒng)計方式,具體參數(shù)如下:

屬性 注釋

1 按行統(tǒng)計占比

2 按列統(tǒng)計占比

NULL 按整體統(tǒng)計占比

data <- read.csv('data.csv', stringsAsFactors=FALSE);
head(data)
 
t <- tapply(data$月消費(fèi).元., list(data$通信品牌), sum)
t
prop.table(t);
 
t <- tapply(data$月消費(fèi).元., list(data$通信品牌), mean)
t
prop.table(t);
 
t <- tapply(data$月消費(fèi).元., list(data$省份, data$通信品牌), sum)
t
prop.table(t, margin = 2)

5、相關(guān)分析prop.table

是研究現(xiàn)象之間是否存在某種依存關(guān)系,并對具體有依存關(guān)系的現(xiàn)象探討其相關(guān)方向以及相關(guān)程度,是研究隨機(jī)變量之間的相關(guān)關(guān)系的一種統(tǒng)計方法。

相關(guān)系數(shù)r 可以用來描述定量變量之間的關(guān)系

相關(guān)分析函數(shù):

cor(向量1,向量2,...)返回值:table類型的統(tǒng)計量

data <- read.csv('data.csv', fileEncoding = "UTF-8");
 
cor(data[, 2:7])

補(bǔ)充:R中基本統(tǒng)計分析方法整理

面對一大堆的數(shù)據(jù),往往會讓人眼花繚亂。但是只要使用一些簡單圖形和運(yùn)算,就可以了解數(shù)據(jù)更多的特征。R提供了很多關(guān)于數(shù)據(jù)描述的函數(shù),通過這些函數(shù)可以對數(shù)據(jù)進(jìn)行一個簡單地初步分析。

獲取描述性統(tǒng)計量的R函數(shù)

(1)常用統(tǒng)計函數(shù)(參數(shù)x為向量)

mean(x):平均值

median(x):中位數(shù)

sd(x):標(biāo)準(zhǔn)差

var(x):方差

sum(x):求和

min(x):最小值

max(x):最大值

range(x):值域

......等等

(2)summary()函數(shù)

提供最小值、下四分位數(shù)、中位數(shù)、平均值、上四分位數(shù)、最大值。

R語言中有哪些統(tǒng)計分析方法

(3)apply()或sapply函數(shù)

計算參數(shù)指定的任意描述性統(tǒng)計量。

其中sapply()用法:sapply(x,F(xiàn)UNC,options) ,x是待處理的數(shù)據(jù)框,F(xiàn)UNC是用戶指定的函數(shù),如sum()、max()、mean()等等,指定了的options會傳遞給FUNC。

R語言中有哪些統(tǒng)計分析方法

(4) Hmisc包中的describe()函數(shù)

返回變量和觀測值的數(shù)目、缺失值和唯一值的數(shù)目、平均值、分位數(shù)、五個最大的值和五個最小的值。

R語言中有哪些統(tǒng)計分析方法

(5)pastecs包中的stat.desc()函數(shù)

可以計算種類繁多的描述性統(tǒng)計量

R語言中有哪些統(tǒng)計分析方法

(6)psych包也提供了一個describe()函數(shù)

它可以計算非缺失值的數(shù)量、平均數(shù)、標(biāo)準(zhǔn)差、中位數(shù)、截尾均值、絕對中位差、最小值、最大值、值域、偏度、峰度等。

R語言中有哪些統(tǒng)計分析方法

關(guān)于R語言中有哪些統(tǒng)計分析方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI