




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算描述性统计量:1、summary():例: summary(mtcarsvars)summary。函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻 辑型向量的频数统计。2、apply()函数或 sapply()函数计算所选择的任意描述性统计量。mean、 sd、 var、 min、 max、 median、 length、 range和quantile。函数fivenum()可返回图基五数总括(Tukey' s fivenumber summary ,即最小值、 下四分位数、中位数、上四分位数和最大值)。sapply()例: mystats <- fun
2、ction(x, na.omit = FALSE) if (na.omit)x <- x!is.na(x) m <- mean(x) n <- length(x) s <- sd(x) skew <- sum(x - m)A3/sA3)/n kurt <- sum(x - m44/sA4)/n - 3 return(c(n = n, mean = m, stdev = s, skew = skew, kurtosis = kurt) sapply(mtcarsvars, mystats)3、describe。:Hmisc包:返回变量和观测的数量、缺失值和唯一
3、值的数目、平均值、 分位数,以及五个最大的值和五个最小的值。例: library(Hmisc)describe(mtcarsvars)4、stat.desc(): pastecs包若basic=TRUE (默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、 最大值、值域,还有总和。若desc=TRUE (同样也是默认值),则计算中位数、平均数、平均数的标准误、平均 数置信度为95%的置信区间、方差、标准差以及变异系数。若norm=TRUE (不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们 的统计显著程度)和Shapiro "ilk正态检验结果。这里使用了p值来
4、计算平均数的置信区间(默认置信度为 0.95: 例: library(pastecs)stat.desc(mtcarsvars)5、describe。: psych 包计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、 值域、偏度、峰度和平均值的标准误例: library(psych)describe(mtcarsvars)分组计算描述性统计量1、aggregate。:例:aggregate(mtcarsvars, by = list(am = mtcars$am), mean)2、by():例: dstats <- function(x)(c(mean=
5、mean(x), sd=sd(x)by(mtcarsvars, mtcars$am, dstats)by(mtcars,vars,mtcars$am,plyr:colwis(dstats)3、summaryBy() : doBy 包例 library(doBy)summaryBy(mpg + hp + wt am, data = mtcars, FUN = mystats)4、describe.by(): doBy包(describe.by()函数不允许指定任意函数,) 例:library(psych)describe.by(mtcarsvars, mtcars$am)5、reshape包分组
6、:(重铸和融合)例:library(reshape)dstats <- function(x) (c(n = length(x), mean = mean(x),sd = sd(x)dfm <- melt(mtcars, measure.vars = c("mpg", "hp","wt"), id.vars = c("am", "cyl")cast(dfm, am + cyl + variable ., dstats)频数表和列联表表7-1用于创建和处理列联表的函数tabletvar
7、ivar2. varN)使川N个类阚型变情(周f)创建一个履推划联去根据-个公式划-个斯阵或数据惬创建-TN维列联表prop . table (tab J e, margins)fnarin, table (tabJe, grgim与)俵mrgWms定,义的边际列表将去中菜日表示为分故形式 依皿工贸3定义的边际列袅“弟表中条目的和addinargins ( tabler margins)f table (tiathJe粒柳述辿marKi (默认是求和结果)放入表中 创建一个蒙凑的“平铀”式列联表1、table():生成简单的频数统计表mytable <- with(Arthritis,
8、table(Improved)Mytable2、prop.table():频数转化为比例值prop.table(mytable)3、prop.table()*100 :转化为百分比prop.table(mytable)*100二维列联表4、table(A,B)/xtabs(A+b,data=mydata)例: mytable <- xtabs( Treatment+Improved, data=Arthritis)5、margin.table()和prop.table():函数分别生成边际频数和比例(1:行,2:歹U)行和与行比例margin.table(mytable, 1)prop.
9、table(mytable, 1)列和与列比例margin.table(mytable, 2)prop.table(mytable, 2)prop.table(mytable)6、addmargins():函数为这些表格添加边际和addmargins(mytable)admargins(prop.table(mytable)addmargins(prop.table(mytable, 1), 2)addmargins(prop.table(mytable, 2, 1)7.crossTable(): gmodels 包例:library(gmodels)CrossTable(Arthritis$
10、Treatment, Arthritis$Improved)多维列联表1、table()和xtabs():都可以基于三个或更多的类别型变量生成多维列联表。2、ftable():例: mytable <- xtabs( Treatment+Sex+Improved, data=Arthritis)mytableftable(mytable)margin.table(mytable, 1)margin.table(mytable, 2)margin.table(mytable, 3)margin.table(mytable, c(1,3)ftable(prop.table(mytable,
11、c(1,2)ftable(addmargins(prop.table(mytable, c(1,2), 3)gtable(addmargins(prop.table(mytable, c(1,2), 3) * 100独立检验1、卡方独立性检验:chisq.test()例:library(vcd)mytable <- xtabs(Treatment+Improved, data=Arthritis)chisq.test(mytable)mytable <- xtabs(Improved+Sex, data=Arthritis)chisq.test(mytable)2、Fisher 精
12、确检验:fisher.test()例: mytable <- xtabs(Treatment+Improved, data=Arthritis) fisher.test(mytable)3、Cochran-Mantel - Haenszel 检验: mantelhaen.test()例: mytable <- xtabs(Treatment+Improved+Sex, data=Arthritis)mantelhaen.test(mytable)相关性度量1、assocstats()例:library(vcd)mytable <- xtabs(Treatment+Improv
13、ed, data=Arthritis) assocstats(mytable)2、cor():函数可以计算这三种相关系数,3、cov():函数可用来计算协方差例:states <- state.x77, 1:6cov(states)cor(states)cor(states, method="spearman")x <- states c("Population", "Income", "Illiteracy", "HS Grad") y <- states c("L
14、ife Exp", "Murder") cor(x, y) 4、pcor():偏相关 ggm包 例:library(ggm)pcor(c(1,5, 2, 3, 6), cov(states)相关性的显著性检验1、cor.test()其中的x和y为要检验相关性的变量,alternative则用来指定进行双侧检验或单侧检验(取值为"two.side"、"less"或"greater"),而 method用以指定要计算的相关类型("pearson"、"kendall"或&
15、quot;spearman")当研究的假设为总体的相关系数小于0时,请使用alternative="less"。在研究的假设为总体的相关系数大于0时,应使用alternative="greater"。在默认情况下,假设为alternative="two.side"(总体相关系数不等于0)。例:cor.test(states, 3, states, 5)2、corr.test():可以为Pearso仆 Spearman或Kendall相关计算相关矩阵和显著性水平。 例:library(psych)corr.test(state
16、s, use = "complete")3、pcor.test(): psych 包t检验1、t.test(yx,data)(独立样本)例:library(MASS) t.test(Prob So, data=UScrime)2、t.test(y1,y2,paired=TRUE)( 4E独立)例:library(MASS)sapply(UScrimec("U1", "U2"), function(x) (c(mean = mean(x), sd = sd(x) with(UScrime, t.test(U1, U2, paired =
17、 TRUE)组间差异的非参数检验两组的比较:1、wilcox.test(yx,data):评估观测是否是从相同的概率分布中抽得例:with(UScrime, by(Prob, So, median)wilcox.test(Prob So, data=UScrime)2、wilcox.test(y1 ,y2,paried=TRUE):它适用于两组成对数据和无法保证正态性假设的情境。例:sapply(UScrimec("U1", "U2"), median)with(UScrime, wilcox.test(U1, U2, paired = TRUE)多于两
18、组的比较:1、kruskal.test(yA , data):各组独立例:states <- as.data.frame(cbind(state.region, state.x77)kruskal.test(Illiteracy state.region, data=states)2、friedman.test(yA|B,data):各组不独立非参数多组比较:1、npmc() :npmc 包例:class <- state.regionvar <- state.x77, c("川iteracy")mydata <- as.data.frame(cbi
19、nd(class, var)rm(class,var)library(npmc)summary(npmc(mydata), type = "BF")aggregate(mydata, by = list(mydata$class), median)回归用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量、效标变量或结果变量)的方法。1、lm():拟合回归模型lm(yx1+x2+x3,data)表8M对拟含线性模型非常有用的其他函数SS i5summary(展示操告模型的详细结果coefficients()列由操合模型的模型卷段(做距顼卬斜率confint(
20、)世供模型叁数的置信区间(默认95%)f)划出拟合模型的帧测值residua)刊出m介模型的段差值anova()生成一个拟合模型的方差分析表.或者比较陶个或变审报合模型的方差分析表vcov1:列H;镇型参数的协方差距阵ATCO输出赤池信电统计也plDt()生成评价拟合模型的囹析图predict()用融合模型对新的数据堤隙刑响应变H值简单线性回归1、lm():(data 是数据框)例:fit <- lm(weight height, data = women)summary(fit)women$weightfitted(fit)residuals(fit)plot(women$height
21、, women$weight, main = "Women Age 30-39",xlab = "Height (in inches)", ylab = "Weight (in pounds)")多项式回归例:fit2 <- lm(weight height + I(heightA2), data = women)summary(fit2)plot(women$height, women$weight, main = "Women Age 30-39", xlab = "Height (in inc
22、hes)", ylab = "Weight (in lbs)")lines(women$height, fitted(fit2)2、scatterplot():绘制二元关系图例:library(car)scatterplot(weight height, data = women, spread = FALSE,lty.smooth = 2, pch = 19, main = "Women Age 30-39", xlab = "Height (inches)",ylab = "Weight (lbs.)"
23、;)多元线性回归1、scatterplotMatrix() : car 包scatterplotMatrix()函数默认在非对角线区域绘制变量间的散点图,并添加平滑(loess)和线性拟合曲线。对角线区域绘制每个变量的密度图和轴须图。例:fit <- lm(Murder Population + Illiteracy + Income +Frost, data = states)有交互项的多元线性回归例:fit <- lm(mpg hp + wt + hp:wt, data = mtcars)summary(fit)1、effect() : effects包:展示交互项的结果ter
24、m即模型要画的项,mod为通过lm()拟合的模型, xlevels是一个列表,指定变量要设定的常量值,multiline=TRUE选项表示添加相应直线。例:library(effects)plot(effect("hp:wt", fit,xlevels=list(wt = c(2.2, 3.2, 4.2),multiline = TRUE)回归诊断1、confint():求模型参数的置信区间例:fit <- lm(Murder Population + Illiteracy + Income +Frost, data=states)confint(fit)2、plot
25、():生成评价模型拟合情况的图形例:fit <- lm(weight height, data = women)par(mfrow = c(2, 2)plot(fit)3、lm():删除观测点例:newfit <- lm(weight height + I(heightA2), data = women-c(13, 15),) par(mfrow = c(2, 2)plot(newfit)par(opar)盘r包提供了大量函数,大大增强了拟合和评价回归模型的能力(参见表84支表84rar包中的)回归诊断实用函数函数目 的qqPlot()价位效比较用durbi nWa tsonTes
26、 t (、对误差A机英件做Duibinfatson擀物CH Pl 口 口 ()成分与次差图nevTest(对非恒泥的误差方差做得分检验spr eadLeve1Plot()分做水平检验outliexTest(Bonfcmm i离师点椅'席avPlots()般加的变成图形inluncePlot(1问旧影响图scatterplot (I增强的胜点明scat t erplo tMa t rix(1增强的放点图更阵vif ()方差膨胀国(gvlma包提供了对所有线性模型假设进行检验的方法检验正态性:4、qqPlot() : car包:学生化残差(studentized residual,也称学生
27、化删除残差或折叠化残差) 例:library(car)fit <- lm(Murder Population + Illiteracy + Income + Frost, data = states)qqPlot(fit, labels = s(states), id.method = "identify" ,simulate = TRUE, main ="Q-Q Plot")注:id.method = "identify"选项能够交互式绘图5、fitted():提取模型的拟合值例:fitted(fit) Nev
28、ada”6、residuals。:二项式回归模型的残差例:residuals(fit) Nevada”7、residplot():生成学生化残差柱状图(即直方图),并添加正态曲线、核密度曲线和轴须 图。它不需要加载car包例:residplot <- function(fit, nbreaks=10) z <- rstudent(fit)hist(z, breaks=nbreaks, freq=FALSE,xlab="Studentized Residual",main="Distribution of Errors")rug(jitter(
29、z), col="brown")curve(dnorm(x, mean=mean(z), sd=sd(z),add=TRUE, col="blue", lwd=2)lines(density(z)$x, density(z)$y,col="red", lwd=2, lty=2)legend("topright",legend = c( "Normal Curve", "Kernel Density Curve"),lty=1:2, col=c("blue"
30、,"red"), cex=.7)residplot(fit)误差的独立性8、durbinWatsonTest():验证独立性例:durbinWatsonTest(fit)验证线性9、crPlots(): car包成分残差图也称偏残差图例:cr列ots(fit)同方差性(car包的两个函数)10、ncvTest():生成一个计分检验,零假设为误差方差不变,备择假设为误差方差随着拟 合值水平的变化而变化。若检验显著,则说明存在异方差性11、spreadLevelPlot():添加了最佳拟合曲线的散点图,展示标准化残差绝对值与拟合值的 关系。例:library(car)ncvTe
31、st(fit)spreadLevelPlot(fit)线性模型假设的综合验证1、gvlma() : gvlma包:线性模型假设进行综合验证,同时还能做偏斜度、峰度和异方差性的评价例:library(gvlma)gvmodel <- gvlma(fit)summary(gvmodel)多重共线性1、vif() : car包:函数提供VIF值, 、:v i f >2就表明存在多重共线性问题例:vif(fit)sqrt(vif(fit) > 2异常观测值1、outlierTest() : car包:求得最大标准化残差绝对值Bonferroni调整后的p值例:library(car)
32、outlierTest(fit)高杠杆值点1、hat.plot():观测点的帽子值大于帽子均值的2或3倍,即可以认定为高杠杆值点例:hat.plot <- function(fit)p <- length(coefficients(fit)n <- length(fitted(fit)plot(hatvalues(fit), main = "Index Plot of Hat Values")abline(h = c(2, 3) * p/n, col = "red", Ity = 2)identify(1:n, hatvalues(fi
33、t), names(hatvaluesfit)hat.plot(fit)强影响点:Cook' s D直大于4/(n-k -1),则表明它是强影响点,其中n为样本量大小,k是预测变量数目。例:cutoff <- 4/(nrow(states) - length(fit$coefficients) - 2)plotfit, which = 4, cook.levels = cutoff)abline(h = cutoff, lty = 2, col = "red")1、influencePlot(): car包:离群点、杠杆值和强影响点的信息整合到一幅图形中例:i
34、nfluencePlot(fit, id.method = "identify", main = "Influence Plot",sub = "Circle size is proportial to Cook's Distance")纵坐标超过+2或小于 2的州可被认为是离群点,水平轴超过0.2或0.3的州有高杠杆值(通常为预测值的组合)。圆圈大小与影响成比例,圆圈很大的点可能是对模型参数的估计造成的不成比例影响的强影响点变量变换表心5常见的变换-2-1-0.500.512变换MY1/YI理1门无y-1、powerTran
35、sform():car包:函数通过 入的最大似然估计来正态化变量x',例:library(car)summary(powerTransform(states$Murder)2、boxTidwell():car包:通过获得预测变量哥数的最大似然估计来改善线性关系例:library(car)boxTidwell(Murder Population + Illiteracy, data = states)模型比较1、anova():基础包:比较两个嵌套模型的拟合优度例:fit1 <- lm(Murder Population + Illiteracy + Income +Frost,
36、data = states)fit2 <- lm(Murder Population + Illiteracy, data = states)anova(fit2, fit1)2、AIC() : AIC值越小白模型(可以不嵌套)要优先选择,它说明模型用较少的参数获得了足 够的拟合度。例:fit1 <- lm(Murder Population + Illiteracy + Income +Frost, data = states)fit2 <- lm(Murder Population + Illiteracy, data = states)AIC(fit1, fit2)变量
37、选择1、stepAIC() : MASS包:逐步回归模型例:library(MASS)fitl <- lm(Murder Population + Illiteracy + Income +Frost, data = states)stepAIC(fit, direction = "backward") 2、regsubsets。leaps包:全子集回归 例:library(leaps)leaps <- regsubsets(Murder Population + Illiteracy +Income + Frost, data = states, nbest
38、= 4)plot(leaps, scale = "adjr2") 交叉验证1、crossval()函数:bootstrap包:实现k重交叉验证 例:shrinkage <- function(fit, k = 10) require(bootstrap)# define functionstheta.fit <- function(x, y) lsfit(x, y)theta.predict <- function(fit, x) cbind(1, x) %*% fit$coef# matrix of predictorsx <- fit$model
39、, 2:ncol(fit$model)# vector of predicted valuesy <- fit$model, 1results <- crossval(x, y, theta.fit, theta.predict, ngroup = k)r2 <- cor(y, fit$fitted.values)A2r2cv <- cor(y, results$cv.fit)A2cat("Original R-square =", r2, "n")cat(k, "Fold Cross-Validated R-squar
40、e =", r2cv, "n")cat("Change =", r2 - r2cv, "n") 2、shrinkage。:交叉验证;R平方减少得越少,预测则越精确。例:fit <- lm(Murder Population + Income + Illiteracy +Frost, data = states)shrinkage(fit) 相对重要性1、scale():将数据标准化为均值为0、标准差为1的数据集,这样用 R回归即可获得标准化的回归系数。注意,scale()函数返回的是一个矩阵,而lm()函数要求一个数据
41、框例:zstates <- as.data.frame(scale(states)zfit <- lm(Murder Population + Income + Illiteracy +Frost, data = zstates)coef(zfit)2、relweights():相对权重例:relweights <- function(fit, .) R <- cor(fit$model)nvar <- ncol(R)rxx <- R2:nvar, 2:nvarrxy <- R2:nvar, 1svd <- eigen(rxx)evec <
42、- svd$vectorsev <- svd$valuesdelta <- diag(sqrt(ev)# correlations between original predictors and new orthogonal variables lambda <- evec %*% delta %*% t(evec)lambdasq <- lambdaA2# regression coefficients of Y on orthogonal variablesbeta <- solve(lambda) %*% rxyrsquare <- colSums(b
43、etaA2)rawwgt <- lambdasq %*% betaA2import <- (rawwgt/rsquare) * 100lbls <- names(fit$model2:nvar)rownames(import) <- lblscolnames(import) <- "Weights"# plot resultsbarplot(t(import), names.arg = lbls, ylab = "% of R-Square",xlab = "Predictor Variables", m
44、ain = "Relative Importance of Predictor Variables", sub = paste("R-Square = ", round(rsquare, digits = 3), )return(import)# using relweights()fit <- lm(Murder Population + Illiteracy + Income +Frost, data = states)relweights(fit, col = "lightgrey")方差分析1、aov() =lm()单因
45、素方差分析2、plotmeans():绘制带置信区间的图形例:library(multcomp) attach(cholesterol) table(trt)aggregate(response, by = list(trt), FUN = mean) aggregate(response, by = list(trt), FUN = sd) fit <- aov(response trt) summary(fit) library(gplots)plotmeans(response trt, xlab = "Treatment", ylab = "Response", main = "Mean Plotnwith 95% CI")detach(cholesterol)多重比较1、TukeyHSD():对各组均值差异的成对检验例:TukeyHSD(fit)par(las = 2)par(mar = c(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨国公司财务数据跨境保密协议
- 餐饮企业股权代持与解除协议样本
- 纵隔肿瘤术后呼吸护理
- 2025年农村自建房协议书
- 沟通培训心得
- 水嫩皮肤管理项目介绍
- 重症护理健康宣教
- 高中物理专项复习:描述运动的基本概念
- 颁奖典礼动态模板29
- 菌汤牦牛肉丸加工技术规范-编制说明
- 2025年建筑安全生产管理人员考试题库
- 2024年江苏省知识产权竞赛参考试题库(含答案)
- 危化品驾驶员押运员安全培训
- 肝硬化行TIPS术后整体护理查房
- 【MOOC】《模拟电子线路A》(南京邮电大学)章节中国大学慕课答案
- EB病毒感染-课件
- 水工隧洞施工技术规范
- 执行立案申请书模版
- 软件采购意向协议书范本
- 《大棚蔬菜种植技术》课件
- 《电工电子技术(II)》试题A卷 及答案
评论
0/150
提交评论