当前位置: 首页 > 数据分析师 > 数据分析师实战技能 > 数据分析师数据分析 > R语言 基本数据分析

R语言 基本数据分析

发布时间:2020年09月29日 07:16:54 来源: 点击量:216

【摘要】本文基于R语言进行基本数据统计分析,包括基本作图,线性拟合,逻辑回归,bootstrap采样和Anova方差分析的实现及应用。不多说,直接上代码

本文基于R语言进行基本数据统计分析,包括基本作图,线性拟合,逻辑回归,bootstrap采样和Anova方差分析的实现及应用。

不多说,直接上代码,代码中有注释。

1. 基本作图(盒图,qq图)

#basic plotboxplot(x)qqplot(x,y)

2.  线性拟合

#linear regressionn = 10x1 = rnorm(n)#variable 1x2 = rnorm(n)#variable 2y = rnorm(n)*3mod = lm(y~x1+x2)model.matrix(mod) #erect the matrix of modplot(mod) #plot residual and fitted of the solution, Q-Q plot and cook distancesummary(mod) #get the statistic information of the modelhatvalues(mod) #very important, for abnormal sample detection

3. 逻辑回归

#logistic regressionx <- c(0, 1, 2, 3, 4, 5)y <- c(0, 9, 21, 47, 60, 63) # the number of successesn <- 70 #the number of trailsz <- n - y #the number of failuresb <- cbind(y, z) # column bindfitx <- glm(b~x,family = binomial) # a particular type of generalized linear modelprint(fitx)plot(x,y,xlim=c(0,5),ylim=c(0,65)) #plot the points (x,y)beta0 <- fitx$coef[1]beta1 <- fitx$coef[2]fn <- function(x) n*exp(beta0+beta1*x)/(1+exp(beta0+beta1*x))par(new=T)curve(fn,0,5,ylim=c(0,60)) # plot the logistic regression curve



3. Bootstrap采样
# bootstrap# Application: 随机采样,获取最大eigenvalue占所有eigenvalue和之比,并画图显示distributiondat = matrix(rnorm(100*5),100,5) no.samples = 200 #sample 200 times# theta = matrix(rep(0,no.samples*5),no.samples,5) theta =rep(0,no.samples*5); for (i in 1:no.samples){    j = sample(1:100,100,replace = TRUE)#get 100 samples each time   datrnd = dat[j,]; #select one row each time   lambda = princomp(datrnd)$sdev^2; #get eigenvalues#   theta[i,] = lambda;   theta[i] = lambda[1]/sum(lambda); #plot the ratio of the biggest eigenvalue}# hist(theta[1,]) #plot the histogram of the first(biggest) eigenvaluehist(theta); #plot the percentage distribution of the biggest eigenvaluesd(theta)#standard deviation of theta#上面注释掉的语句,可以全部去掉注释并将其下一条语句注释掉,完成画最大eigenvalue分布的功能


4. ANOVA方差分析

#Application:判断一个自变量是否有影响 (假设我们喂3种维他命给3头猪,想看喂维他命有没有用)# y = rnorm(9); #weight gain by pig(Yij, i is the treatment, j is the pig_id), 一般由用户自行输入#y = matrix(c(1,10,1,2,10,2,1,9,1),9,1)Treatment <- factor(c(1,2,3,1,2,3,1,2,3)) #each {1,2,3} is a groupmod = lm(y~Treatment) #linear regressionprint(anova(mod))#解释:Df(degree of freedom)#Sum Sq: deviance (within groups, and residuals) 总偏差和# Mean Sq: variance (within groups, and residuals) 平均方差和# compare the contribution given by Treatment and Residual#F value: Mean Sq(Treatment)/Mean Sq(Residuals)#Pr(>F): p-value. 根据p-value决定是否接受Hypothesis H0:多个样本总体均数相等(检验水准为0.05)qqnorm(mod$residual) #plot the residual approximated by mod#如果qqnorm of residual像一条直线,说明residual符合正态分布,也就是说Treatment带来的contribution很小,也就是说Treatment无法带来收益(多喂维他命少喂维他命没区别)

如下面两图分别是 

(左)用 y = matrix(c(1,10,1,2,10,2,1,9,1),9,1)和

(右)y = rnorm(9);

的结果。可见如果给定猪吃维他命2后体重特别突出的数据结果后,qq图种residual不在是一条直线,换句话说residual不再符合正态分布,i.e., 维他命对猪的体重有影响。

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部