用r语言求正态分布的标准差:产生100个均值为0标准差为1的正态分布随机数:rnorm(100,mean=0,sd=1)指数分布数dnorm(x,mean=5,sd=1,log=TRUE)。
正态分布的标准差正态分布N~(μ,duδ^2),方差D(x)=δ^2,E(x)=μ。服从标准正态分布,通过查标准正态分布表就可以直接计算出原正态分布的概率值。μ维随机向量具有类似的概率规律时,随机向量遵从多维正态分布。
标准正态分布
又称为u分布,是以0为均数、以1为标准差的正态分布,记为N(0,1)。标准正态分布曲线下面积分布规律是:在-1.96~+1.96范围内曲线下的面积等于0.9500,在-2.58~+2.58范围内曲线下面积为0.9900。统计学家还制定了一张统计用表(自由度为∞时),借助该表就可以估计出某些特殊u1和u2值范围内的曲线下面积。
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
用的最多的,是求均值的mean()函数,当然这里也要提到,像sum()这种求和函数,
还有sd(x) 标准差函数,var(x) 方差函数。min()求最小值,max()求最大值。
我们来具体试试,这里使用一个向量:
test<-c(2,4,5,23,199,25,78,90,12)
求最大值
>max(test)
[1] 19
求最小值
>min(test)
求和
>sum(test)
[1] 43
求标准差,求方差
>sd(test)
[1] 65.01154
>var(test)
[1] 4226.
在来试试最重要的均值
>mean(test)
[1] 48.66667
另外中位数计算。使用median()函数
>median(test)
[1] 23
如果给定一种概率分布,通常会有四类计算问题:
计算其概率密度density (d)计算其概率分布probability(p)计算其百分位数quantile (q)随机数模拟random (r)上面四类计算对应的英文首字母,就是R语言类率分布函数的开头字母。
比如说,正态分布是norm的化,那密度函数就是dnorm(),分布函数就是pnorm(),
更有用的是用相应分布生成随机数,比如rnorm(),就会生成服从正态分布的随机数。
比如我们生成100个服从正态分布的随机数
rnorm(100)
[1] -9.064408e-01 1.026560e+00 -1.097470e+00 1.055395e+00 9.377175e-01
[6] -2.080103e-01 -3.092396e-01 -8.739942e-01 -1.242774e+00 1.102486e+00
[11] 1.082092e+00 -1.695528e+00 -5.930809e-01 -2.100800e-01 8.253859e-01
[16] -1.112551e+00 -3.960474e-01 -9.354820e-01 7.291608e-01 -3.773510e-01
[21] -3.438082e-01 -7.378688e-02 -9.047609e-01 -1.036344e+00 9.485103e-01
[26] -3.437985e-01 -2.145275e-02 1.350098e+00 -1.283633e+00 3.767240e-01
[31] 1.169566e+00 -4.325399e-01 -9.215626e-02 3.839357e-01 3.045491e-01
......
我们再用相应的频率分布直方图来看一下,这些生成的随机数:
hist(rnorm(100))
R就画出了这些随机数的频率分布图