R语言对应分析

2024-05-05 00:05

1. R语言对应分析

 @[toc]
   Q型分析:样本之间的关系(聚类算法等)   R型分析:变量之间的关系(主成分分析、因子分析等)。   有时候我们不仅要弄清样本之间和变量之间的关系,还要弄清 样本与变量之间的关系 ,而对应分析就是这样一种分析方法。(变量就是指特征)
   对应分析为我们可以提供三个方面的信息
   上述三方面信息都可以通过二维图呈现出来
   当对两个分类变量进行的对应分析称为 简单对应分析 ;   对两个以上的分类变量进行的对应分析称为 多重对应分析 。
   对应分析将变量及变量之间的联系同时反映在一张二维或三维的散点图上,并使联系密切的类别点较集中,联系疏远的类别点较分散;通过观察对应分布图就能直观地把握变量类别之间的联系。
    对于该方法,在减少维度方面与因子分析相似,在作分布图方面与多维尺度方法相似。 
   在对数据作对应分析之前,需要先了解因素间是否独立。如果因素之间相互独立,则没有必要进行对应分析,当因素间在统计学上具有显著的关联性时,在此基础上使用对应分析方法,其分析结果才具有意义。
   p-value < 0.001,两组变量显著不独立,说明具有相关性。

R语言对应分析

2. R语言 求解答,谢谢。

原假设:沙门氏菌的平均水平mu<=0.3MPN/g

对立假设:沙门氏菌的平均水平mu>0.3MPN/g
设向量
>vec<-c(0.593,0.142,0.329,0.691,0.231,0.793,0.519,0.392,0.418)
用t检验
>t.test(vec,mu=0.3,alternative="greater",conf.level=0.01)
t.test 是t检验
括号里第一个参数vec是检验的数据
mu=0.3 是检验均值
alternative="greater" 对立假设是大于号
conf.level=0.01 置信水平α=0.01


结果是

One Sample t-test

data:  vec 
t = 2.2051, df = 8, p-value = 0.02927
alternative hypothesis: true mean is greater than 0.3 
1 percent confidence interval:
 0.6619424       Inf 
sample estimates:
mean of x 
0.4564444 

p-value = 0.02927>0.01 不能否定原假设 在置信水平α=0.01的情况下。
但是在α=0.05的情况下,就可以否定原假设,认为冰激凌中的沙门氏菌超出警戒水平0.3MPN/g

3. 用R语言估计参数值 请帮忙解释下面这段R语言程序每句的含义,谢谢!

从第一行开始,N直到pai,都是赋值语句。其中x1和x2是长度为N,类型为十进制小数的向量。

runif是生成一个随机数,取值在-1到1之间。for循环语句生成具体的两个向量,即x1和x2,其中的每个数都用runif来生成。

紧接之后的if语句用来计数n,其条件为如果对于数值x1[i]和x2[i],如果点(x1[i],x2[i])位于单位圆内,n就加1。一共循环N次。

最后就得出值pai = 4*n/N。


看下来不像是一个参数值估计程序。

用R语言估计参数值 请帮忙解释下面这段R语言程序每句的含义,谢谢!

4. R语言之实战分析

 采编自 DataMiningWithR 
   
                                                                                   
    2.1 观察各个变量数据的规范性    几乎每个变量都有异常值存在,多是异常大值
                                            2.2 观察变量间的相关性 
                                                                                    2.3 双变量间的相关性    由上可知,"oPO4"和"PO4"高度相关,达到0.91
                                            2.4 观察单个变量的数据分布情况 
                                                                                                                           左图可明显判断异常值的存在,右图可展现数据在不同范围内的分布集中度
                                                                                    3.1 了解缺失值的基本分布情况 
                                            3.2 直接删除缺失值,在缺失值占比很少的情况采用 
    3.3 基于一定的规则填充缺失值 
    4.1 数据准备和聚类预览 
   初步判断,可分为4组
                                            4.2 层次聚类 
                                            4.3 kmeans均值聚类 (1) 
                                            4.3 kmeans均值聚类 (2) 
                                            4.1 盖帽法处理异常值    即分别设定数据的上下限,高于上限的用上限替换,低于下限的用下限替换
    4.2 盖帽法处理异常值后重现考察数据的分布情况 

5. R语言基本数据分析

R语言基本数据分析
本文基于R语言进行基本数据统计分析,包括基本作图,线性拟合,逻辑回归,bootstrap采样和Anova方差分析的实现及应用。
不多说,直接上代码,代码中有注释。
1. 基本作图(盒图,qq图)
    #basic plot
    boxplot(x)
    qqplot(x,y)
2.  线性拟合
    #linear regression
    n = 10
    x1 = rnorm(n)#variable 1
    x2 = rnorm(n)#variable 2
    y = rnorm(n)*3
    mod = lm(y~x1+x2)
    model.matrix(mod) #erect the matrix of mod
    plot(mod) #plot residual and fitted of the solution, Q-Q plot and cook distance
    summary(mod) #get the statistic information of the model
    hatvalues(mod) #very important, for abnormal sample detection
3. 逻辑回归

    #logistic regression
    x <- c(0, 1, 2, 3, 4, 5)
    y <- c(0, 9, 21, 47, 60, 63) # the number of successes
    n <- 70 #the number of trails
    z <- n - y #the number of failures
    b <- cbind(y, z) # column bind
    fitx <- glm(b~x,family = binomial) # a particular type of generalized linear model
    print(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和之比,并画图显示distribution
    dat = 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) eigenvalue
    hist(theta); #plot the percentage distribution of the biggest eigenvalue
    sd(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 group
    mod = lm(y~Treatment) #linear regression
    print(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., 维他命对猪的体重有影响。

R语言基本数据分析

6. R语言与统计分析的介绍

《R语言与统计分析》以数据的常用统计分析方法为基础,在简明扼要地阐述统计学基本概念、基本思想与基本方法的基础上,讲述与之相对应的R函数的实现,并通过具体的例子说明统计问题求解的过程。《R语言与统计分析》注重统计的思想性、方法的实用性和计算的可操作性。

最新文章
热门文章
推荐阅读