• R--相关分布函数、统计函数的使用


    分布函数家族: *func()
    r : 随机分布函数
    d : 概率密度函数
    p : 累积分布函数
    q : 分位数函数

     func()表示具体的名称如下表:

    例子

    #r :  随机分布函数
    #d :  概率密度函数
    #p :  累积分布函数
    #q :  分位数函数
    
    #生成符合二项分布的数据
    #  二项分布
    #  X~(N,P) 
    str(rbinom)
    
    x<-rbinom(5,1,0.5)  #做1次试验,假设正面概率为0.5,进行5次观察,每1次试验中正面出现的次数为别为 0 0 1 1 0
    x<-rbinom(5,10,0.5) #做10次试验,假设正面概率为0.5,进行5次观察,每10次试验中正面出现的次数分别为 4 4 7 6 6
    
    x
    plot(x)
    
    
    #概率密度函数
    y<-dbinom(40,100,0.5) #做100次试验,假设正面概率为0.5,正面出现的次数为50次的概率是 0.01084387
    y<-dbinom(40:50,100,0.5) ##做100次试验,假设正面概率为0.5,正面出现的次数分别为40到50的概率分别为: 0.01084387...
    
    sum(y) #累计概率
    
    y<-dbinom(0:100,100,0.5) 
    
    plot(y) #概率密度曲线
    plot(0:100,y,pch=16) #概率密度曲线
    
    
    #累计概率
    z<-pbinom(50,100,0.5)    #累计概率 小于等于50的概率为0.5397946
    z<-dbinom(0:50,100,0.5)
    sum(z)
    
    
    plot(pbinom(0:100,100,0.5))
    
    
    #分为点
    q = qbinom(0.5,100,0.5)  #在0.5分为点的数值为
    q

    单变量统计函数

    均值:mean
    中位数:median
    分位数:quantile
    方差:var
    标准差:sd
    频数表:table

    偏度: Sk=sum((x[!is.na(x)]-Av)^3/Sd^3)/N #偏度

        <0 左偏  >0 右偏

    峰度: Ku=sum((x[!is.na(x)]-Av)^4/Sd^4)/N-3 #峰度

        <3 坡度缓 >3 坡度陡

    #单变量的描述统计
    
    str(airquality) #R自带的空气质量数据集 str 结构structure的缩写
    
    summary(airquality) #汇总数据包括 最小值、分位数、平均数、中位数、最大值、缺失值(NA's)
    
    #平均值
    mean(airquality$Ozone, na.rm = T) #na.rm=T 对缺失值进行删除,存在缺失值,结果为NA
    mean(airquality$Temp, na.rm = T, trim = .01) #trim=.01 按百分比去掉头尾的数,删除极值
    
    
    #中位数
    median(airquality$Ozone, na.rm = T) 
    
    
    #加权平均数
    temp100 <- rnorm(100,30,1)  #通过正态分布生成100个随机数,平均值为30
    
    w <- 1:100 #生成每个值的权重值
    
    wmt = weighted.mean(temp100,w,na.rm = T) #进行加权平均计算
    mt = mean(temp100,na.rm = T)
    
    
    #几何平均数
    x<- c(.045, .021, .255, .019)
    
    xm = mean(x)
    
    xg = exp(mean(log(x)))#exp指数 log对数
    
    
    #中位数
    median(temp100,na.rm = T)
    
    #分位数
    quantile(airquality$Temp, na.rm = T) 
      #  0%  25%  50%  75% 100%     50%中位数  0%最小值 25%上四分位数
      #  56   72   79   85   97 
    
    quantile(airquality$Temp, na.rm = T, probs = c(0,0.1,0.9,1)) #通过probs自定义分位点
    
    #方差
    var(temp100)
    
    #标准差
    ts <- sd(temp100)
    ts^2 #标准差的平方等于方差
    
    
    
    #峰度和偏度
    mysummary = function(x,...){
      Av=mean(x,na.rm = T)
      Sd=sd(x,na.rm = T)
      N=length(x[!is.na(x)])
      Sk=sum((x[!is.na(x)]-Av)^3/Sd^3)/N #偏度
      Ku=sum((x[!is.na(x)]-Av)^4/Sd^4)/N-3 #峰度
      
      result=c(argv=Av, sd=Sd, skew=Sk, kurt=Ku)
      return (result)
    }
    mysummary(temp100)
    #        argv           sd         skew         kurt 
    #30.109613023  1.033804058 -0.008489863 -0.597720454 
    
    #通过apply进行提交
    apply(airquality[,c(-5,-6)],2,FUN=mysummary)
    #Ozone     Solar.R       Wind       Temp
    #argv 42.129310 185.9315068 9.95751634 77.8823529
    #sd   32.987885  90.0584222 3.52300135  9.4652697
    #skew  1.209866  -0.4192893 0.34102753 -0.3705073
    #kurt  1.112243  -1.0040581 0.02886468 -0.4628929
    

    非单封分布:

    #非单峰分布不能简单计算均值
    
    x=rnorm(100,50,9)
    y=rnorm(200,150,9)
    
    z=c(x,y)
    
    plot(density(z)) #使用密度曲线画图
    
    
    abline(v=mean(z),col=3,lw=3)

    双变量函数

    协方差:cov

    相关系数:cor 通过相关系数计算相关性

    缺失值处理:行删除、配对删除等

    #协方差 
    cov(airquality[,-5:-6],use = 'complete.obs')            #行删除,处理缺失值
    cov(airquality[,-5:-6],use = 'pairwise.complete.obs')   #配对删除,处理缺失值
    
    #相关系数
    cor(airquality[,-5:-6],use = 'complete.obs')            #行删除
    cor(airquality[,-5:-6],use = 'pairwise.complete.obs')   #配对删除
    #结果为对称矩阵
  • 相关阅读:
    [Java解惑]数值表达式
    Java使用LdAP获取AD域用户
    LDAP Error Codes
    Excel向上取整
    java中的三种取整函数
    Dwz手册的补充说明和常见问题
    【转】BSON数据格式
    go语言合并两个数组
    vscode远程修改文件('file': A system error occured )
    [转]Linux 桌面玩家指南:20. 把 Linux 系统装入 U 盘打包带走
  • 原文地址:https://www.cnblogs.com/one--way/p/5881774.html
Copyright © 2020-2023  润新知