1、自动安装:需要联网,在R的控制台,输入install.packages("MASS")#安装MASS包。
2、离线安装:下载你所需要的包文件到个人计算机目录中,打开R的菜单栏->Packages->“Installpackagefromlocalzipfile?”,选择你下载的包文件即可。
R语言中的多元方差分析1、当因变量(结果变量)不止一个时,可用多元方差分析(MANOVA)对它们同时进行分析。
library(MASS)
attach(UScereal)
y <- cbind(calories, fat, sugars)
aggregate(y, by = list(shelf), FUN = mean)
Group.1 calories fatsugars
1 1 119.4774 0.6621338 6.295493
2 2 129.8162 1.3413488 12.507670
3 3 180.1466 1.9449071 10.856821
cov(y)
calories fat sugars
calories 3895.24210 60.674383 180.380317
fat60.67438 2.713399 3.995474
sugars180.38032 3.995474 34.050018
fit <- manova(y ~ shelf)
summary(fit)
Df Pillai approx F num Df den Df Pr(>F)
shelf 1 0.195944.955 3 61 0.00383 **
Residuals 63
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
summary.aov(fit)
Response calories :
Df Sum Sq Mean Sq F valuePr(>F)
shelf1 45313 45313 13.995 0.0003983 ***
Residuals 63 2039823238
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Response fat :
Df Sum Sq Mean Sq F value Pr(>F)
shelf1 18.421 18.4214 7.476 0.008108 **
Residuals 63 155.236 2.4641
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Response sugars :
Df Sum Sq Mean Sq F value Pr(>F)
shelf1 183.34 183.34 5.787 0.01909 *
Residuals 63 1995.87 31.68
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
2、评估假设检验
单因素多元方差分析有两个前提假设,一个是多元正态性,一个是方差—协方差矩阵同质性。
(1)多元正态性
第一个假设即指因变量组合成的向量服从一个多元正态分布。可以用Q-Q图来检验该假设条件。
center <- colMeans(y)
n <- nrow(y)
p <- ncol(y)
cov <- cov(y)
d <- mahalanobis(y, center, cov)
coord <- qqplot(qchisq(ppoints(n), df = p), d, main = "QQ
Plot Assessing Multivariate Normality",
ylab = "Mahalanobis D2")
abline(a = 0, b = 1)
identify(coord$x, coord$y, labels = row.names(UScereal))
如果所有的点都在直线上,则满足多元正太性。
2、方差—协方差矩阵同质性即指各组的协方差矩阵相同,通常可用Box’s M检验来评估该假设
3、检测多元离群点
library(mvoutlier)
outliers <- aq.plot(y)
outliers
摘自: https://www.cnblogs.com/yupeter007/p/5325575.html
矩阵的存储默认是按列进行存储的
matrix (data = NA, nrow = 1, ncol = 1, byrow =FALSE, dimnames = NULL)
创建一个c(1:12)的三行四列的矩阵,
colnames<-c("c1","c2","c3","c4")
rownames<-c("r1","r2","r3")
x<-matrix(1:12,nrow=3,ncol=4,byrow=TRUE,dimnames=list(rownames,colnames))
x
c1 c2 c3 c4
r1 1 2 3 4
r2 5 6 7 8
r3 9 10 11 12
y<-t(x)
若是针对的是一个向量
y<-(1:10)
装置后得到的是行向量
[1] "matrix"
若要的到列向量则
matrix(rnorm(100),nrow=10)
matrix(2,ncol=n,nrow=m)
4.1创建对角矩阵
diag(x,ncol=n,nrow=m)
若x为矩阵 则diag(x)将会提取矩阵x的对角,则返回的是向量值
返回的是以矩阵对角的对角矩阵
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
n<-ncol
m<-nrow
为矩阵的行和列命名
rownames(x)<-c()
colnames(x)<c()
A为m×n矩阵,c>0,在R中求cA可用符号:“*”,例如:
A为m×n矩阵,B为n×k矩阵,在R中求AB可用符号:“%*%”,例如:
对矩阵求逆
方法一:直接用solve(x)
方法二:加载包MASS
library(MASS)
ginv(matrix)
向量的内积
x<-c(1:5)
y<-c(3:7)
向量的外积
向量、矩阵的外积(叉积)
设x和y是n维向量,则x%o%y表示x与y作外积.
, , 2, 1
[,1] [,2] [,3] [,4]
[1,]28 14 20
[2,]4 10 16 22
[3,]6 12 18 24
, , 1, 2
[,1] [,2] [,3] [,4]
[1,]3 12 21 30
[2,]6 15 24 33
[3,]9 18 27 36
, , 2, 2
[,1] [,2] [,3] [,4]
[1,]4 16 28 40
[2,]8 20 32 44
[3,] 12 24 36 48
outer()是更为强大的外积运算函数,outer(x,y)计算向量x与y的外积,它等价于x %o%y
函数。outer()的一般调用格式为
outer(x,y,fun=”*”)
det(x),求矩阵x的行列式值
qr(x)$rank求x矩阵的秩
解线性方程组和求矩阵的逆矩阵