中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言如何檢驗數據缺失類型

發布時間:2022-03-04 13:58:51 來源:億速云 閱讀:317 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關R語言如何檢驗數據缺失類型,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

題目

R語言如何檢驗數據缺失類型

R語言如何檢驗數據缺失類型

解答

由于題目要求需要重復三次類似的操作,故首先載入所需要的包,構造生成數據的函數以及繪圖的函數:

library(tidyr)    # 繪圖所需
library(ggplot2)  # 繪圖所需
# 生成數據
GenerateData <- function(a = 0, b = 0, seed = 2018) {
  set.seed(seed)
  z1 <- rnorm(100)
  z2 <- rnorm(100)
  z3 <- rnorm(100)
  y1 <- 1 + z1
  y2 <- 5 + 2 * z1 + z2
  u <- a * (y1 - 1) + b * (y2 - 5) + z3
  m2 <- 1 * (u < 0)
  y2_na <- y2
  y2_na[u < 0] <- NA
  # y2_na[as.logical(m2)] <- NA
  dat_comp <- data.frame(y1 = y1, y2 = y2)
  dat_incomp <- data.frame(y1 = y1, y2 = y2_na)
  dat_incomp <- na.omit(dat_incomp)
  return(list(dat_comp = dat_comp, dat_incomp = dat_incomp))
}
# 展現缺失出具與未缺失數據的分布情況
PlotTwoDistribution <- function(dat) {
  p1 <- dat_comp %>%
    gather(y1, y2, key = "var", value = "value") %>%
    ggplot(aes(x = value)) +
    geom_histogram(aes(fill = factor(var), y = ..density..),
                   alpha = 0.3, colour = 'black') +
    stat_density(geom = 'line', position = 'identity', size = 1.5,
                 aes(colour = factor(var))) +
    facet_wrap(~ var, ncol = 2) +
    labs(y = '直方圖與密度曲線', x = '值',
         title = '完整無缺失數據', fill = '變量') +
    theme(plot.title = element_text(hjust = 0.5)) +
    guides(color = FALSE)
  p2 <- dat_incomp %>%
    gather(y1, y2, key = "var", value = "value") %>%
    ggplot(aes(x = value)) +
    geom_histogram(aes(fill = factor(var), y = ..density..),
                   alpha = 0.3, colour = 'black') +
    stat_density(geom = 'line', position = 'identity', size = 1.5,
                 aes(colour = factor(var))) +
    facet_wrap(~ var, ncol = 2) +
    labs(y = '直方圖與密度曲線', x = '值',
         title = '有缺失數據', fill = '變量') +
    theme(plot.title = element_text(hjust = 0.5)) +
    guides(color = FALSE)
  return(list(p_comp = p1, p_incomp = p2))
}

下面考慮三種情況:

1. a = 0, b = 0

a) 生成數據并繪圖展示

# 生成數據并查看數據樣式
dat <- GenerateData(a = 0, b = 0)
dat_comp <- dat$dat_comp
dat_incomp <- dat$dat_incomp

head(dat_comp)
head(dat_incomp)
# 繪圖展示
p <- PlotTwoDistribution(dat)
p$p_comp
p$p_incomp

R語言如何檢驗數據缺失類型

R語言如何檢驗數據缺失類型

缺失數據與未缺失數據的分布如上圖所示。可以發現,對于完整數據與缺失數據之間的  Y1的分布與 Y2的分布與期望相差不大。并且在采用  a=0,b=0這種構造時,從構造的公式可以看出, Y2中樣本的缺失情況與 Y1,Y2兩者都無關(因為 Z 3 與 Y 1 , Y 2 均獨立),所以這種缺失機制是:MCAR

b) 進行t檢驗

題設條件中說的是 Y 1 Y_1 Y1的均值,所以考慮完整數據與缺失數據(這里的缺失指的是若 Y 2 Y_2 Y2有缺失, Y 1 Y_1 Y1也會進行相應地缺失處理)

t.test(dat_comp$y1, dat_incomp$y1)

這里進行t檢驗(其實不是非常嚴謹,因為不一定滿足正態假設),比較缺失與否 Y 1 Y_1 Y1的均值,這里p-value = 0.8334。在顯著性水平為0.05的前提下,并不能斷言有缺失與無缺失兩個 Y 1 Y_1 Y1之間的均值有差異,也就是說其實MCAR, MAR, NMAR三種情況都有可能,并不能斷言哪種不可能發生。

2. a = 2, b = 0

a) 生成數據并繪圖展示

# 生成數據并查看數據樣式
dat <- GenerateData(a = 2, b = 0)
dat_comp <- dat$dat_comp
dat_incomp <- dat$dat_incomp

head(dat_comp)
head(dat_incomp)
# 繪圖展示
p <- PlotTwoDistribution(dat)
p$p_comp
p$p_incomp

R語言如何檢驗數據缺失類型

R語言如何檢驗數據缺失類型

缺失數據與未缺失數據的分布如上圖所示。可以發現,兩個數據的期望以及分布(無論 Y 1 Y_1 Y1還是 Y 2 Y_2 Y2),整體都有一定差異。在采用 a = 2 , b = 0 a = 2, b = 0 a=2,b=0這種構造時,從構造的公式可以看出, Y 2 Y_2 Y2中樣本的缺失情況與 Y 1 Y_1 Y1有關,所以這種缺失機制是:MAR

b) 進行t檢驗

t.test(dat_comp$y1, dat_incomp$y1)

R語言如何檢驗數據缺失類型

3. a = 0, b = 2

a) 生成數據并繪圖展示

# 生成數據并查看數據樣式
dat <- GenerateData(a = 0, b = 2)
dat_comp <- dat$dat_comp
dat_incomp <- dat$dat_incomp

head(dat_comp)
head(dat_incomp)
# 繪圖展示
p <- PlotTwoDistribution(dat)
p$p_comp
p$p_incomp

R語言如何檢驗數據缺失類型

R語言如何檢驗數據缺失類型

缺失數據與未缺失數據的分布如上圖所示。可以發現與上一種情況一樣,兩個數據的期望以及分布(無論 Y1還是  Y2),整體都有一定差異。在采用 a = 0 , b = 2 這種構造時,從構造的公式可以看出,Y2中樣本的缺失情況與 Y2本身有關,所以這種缺失機制是:NMAR

b) 進行t檢驗

t.test(dat_comp$y1, dat_incomp$y1)

R語言如何檢驗數據缺失類型

關于“R語言如何檢驗數據缺失類型”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥江县| 牟定县| 县级市| 黎平县| 赤水市| 澄迈县| 宜昌市| 大兴区| 鹤岗市| 郓城县| 潜江市| 彭山县| 岳阳市| 河南省| 淄博市| 铅山县| 广丰县| 方山县| 通辽市| 阳泉市| 华阴市| 景泰县| 汉川市| 望江县| 万全县| 开阳县| 杨浦区| 瓮安县| 卓资县| 潼南县| 彭阳县| 鄱阳县| 中方县| 务川| 德安县| 囊谦县| 黄山市| 大理市| 教育| 普陀区| 尤溪县|