美文网首页
R进阶:缺失值的处理、拟合关系

R进阶:缺失值的处理、拟合关系

作者: wo_monic | 来源:发表于2020-08-06 11:08 被阅读0次

    缺失值的处理

    1.使用中位数或者均值(非数值时使用众数)来填补缺失值

    x <- c(1,2,7,8,NA,10,22,NA,15,NA,9)
    y <-c('a',NA,'b',NA,'b','a','a','b','a','c','d')
    df <- data.frame(x, y)
    df
    x_mean <- mean(x,na.rm = TRUE)
    x_mean #x的平均值
    x_median <- median(x, na.rm = TRUE)
    x_median  #x的中位数
    y_mode <- as.character(y[which.max(table(y))])
    y_mode   #y的众数
    df2 <- replace_na(data = df, replace = list(x = x_mean, y = y_mode))
    df2  #使用x的均值,y的众数,来填充缺失值。
    

    2.使用随机数
    3.使用mice包多重填补法补充数据

    1)mice()函数从一个含缺失值的数据框开始,返回一个包含多个完整数据集对象(默认可以模拟参数5个完整的数据集);

    2)with()函数可依次对每个完整数据集应用统计建模;

    3)pool()函数将with()生成的单独结果整合到一起。

    随机数的生成方法

    set.seed(12138)
    x1 <- runif(n = 1000, min = 1, max = 15) #runif生成均匀分布随机数,n指定数量,min最小值,max最大值
    x2 <- rnorm(n = 1000,mean = 10,sd=5) + 10 #rnorm生成正态随机数 ,n数量,mean正态分布的均值,sd正态分布的标准差
    x3 <- rt(n = 1000, df = 3) #T测验随机数
    x4 <- rf(n = 1000, df1 = 2, df2 = 3) #F测验随机数
    x5 <- rpois(n= 1000,lambda=5) #泊松分布的随机数
    x6 <- rbinom(n=1000,size=100,prob=0.75) #二项分布随机数 rbinom是生成二项分布,即正面/反面这样,n是生成的数量,size是实验次数,prob是指定概率。

    模拟1000次抛硬币,coin <- rbinom(n=1000,size=1,prob=0.5)

    y <- 2*x1 - 0.3*x2 + 0.6*x3 - 1.2*x4 + rexp(1000,rate=1)#rexp(1000,rate=1)生成指数分布的随机数1000个

    将NA赋值给指定列的随机生成的行的值

    miss.df是一个数据框
    miss.df[sample(1:nrow(miss.df), 40),1] <- NA
    sample(1:nrow(miss.df), 40)是生成随机的1到行数(1000)之间的随机的40个数
    后面的1是指定第一列

    library(mice)
    im <- mice(data = miss.df, m = 10,maxit = 6, method = 'pmm') #m是多重插补的次数,maxit是设置获取完整数据集的个数,method是预测方法,pmm使用平均值预测
    fit <- with(data = im, expr = lm(y ~ x1 + x2 + x3 + x4+x5+x6))
    pooled <- pool(object = fit)
    summary(pooled)
    lm.fit <- lm(y ~ x1 + x2 + x3 + x4+x5+x6, data = miss.df)
    summary(lm.fit)
    

    关于拟合关系,参考https://zhuanlan.zhihu.com/p/51533928

    y~x1 + x2 + x3 + x4+x5+x6
    是一个拟合关系,y是因变量,x1,x2,x3,x4,x5,x6是自变量,~代表存在函数关系。此处的x1,x2,x3,x4,x5,x6之间不是传统意义的加法运算,而是表示每一个都是一个自变量。
    ~之后的符号的含义:

    • +表示添加新的变量
    • -表示移除一个变量
    • :表示相互作用
    • *表示交叉
    • %in%表示套叠
    • ^表示对交叉进行限制

    lm()是拟合线性模型,可用于回归分析,单因素方差分析,协方差分析

    相关文章

      网友评论

          本文标题:R进阶:缺失值的处理、拟合关系

          本文链接:https://www.haomeiwen.com/subject/xqforktx.html