关于数据挖掘:R语言在BRFSS数据中可视化分析探索糖尿病的影响因素

5次阅读

共计 4193 个字符,预计需要花费 11 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=9227

原文出处:拓端数据部落公众号

数据集: 行为危险因素监视系统数据

摘要: 该数据集是来自全美约 40 万份与衰弱相干主题的问卷调查。BRFSS 始于 1980 年代,并已通过问卷调查在美国用于监测广泛的疾病。该钻研是追溯性的,而不是设计性的试验,因而只管能够推断出相关性,但不能因果关系。

数据集中的特色既是间断的又是分类的。

指标: 摸索性别,体重和年龄之间的相关性
 

第 0 局部:设置

library(ggplot2)
library(dplyr)
library(Rgraphviz)
library(knitr)
library(grid)
library(gridExtra)
load("brfss2013.RData")
# group and count a feature with discrete values
feature_vcounts <- function(df, f) {
  df %>%
    group\_by\_at(f) %>%
      count()}

# method for binning values
bin\_min\_sample <- function(p) {
  n = 10
  a = 10/p
  b = 10/(1-p)
  max(c(a,b))}

# create a new df for simulating binom probability distribution
binom\_prob\_df <- function(df, f, target) {new\_df <- feature\_vcounts(df,f)
  new\_df$n\[new\_df\[f\] == target\]/sum(new_df$n)}

# filtering df with subgroup value
subgroup_df <- function(df,f, group) {filter(df,df\[f\]==group)}

# calc the vector probability
binom\_prob\_vec <- function(v, target) {sum(v == target)/length(v)}

# sample from df
binom_sample <- function(s,v)
  sample(v, size=s, replace=TRUE)

# create the binomial sample distribution
binom\_sample\_dist <- function(df,f,target) {sample_dist <- c()
  for (i in 1:10001) {prob <- binom\_prob\_vec(binom_sample(100,df\[,f\]),target)
    sample\_dist <- append(sample\_dist,prob)}
  return(sample_dist)}

# convert decimal to percent
to_percent <- function(pvalue) {paste(round(pvalue*100,digits= 2),"%",sep="")}

第 1 局部:数据

导入和过滤数据以仅包含与糖尿病,性别,体重和年龄无关的重要特色。

# Import original file:
orig_dim <- dim(brfss2013)

# Select only relevant features:
weight_diabetes <- brfss2013 %>%
   select(sex, X_ageg5yr, weight2,diabete3)

# ------------------Cleaning data------------------
# 1.Weight strings -> numeric
weight\_diabetes$weight2 <- as.numeric(as.character(weight\_diabetes$weight2))
new\_dim <- dim(weight\_diabetes)

# 2. Remove Null Weights and Weights over 400
weight\_diabetes <- na.omit(weight\_diabetes)
weight\_diabetes <- filter(weight\_diabetes, weight2 <= 400)

# 3. Remove Diabetes Responses
target <- c("Yes", "No")
weight\_diabetes <- filter(weight\_diabetes, diabete3 %in% target)

# 4. Add index and reorder
weight\_diabetes$index <- seq.int(nrow(weight\_diabetes))
weight\_diabetes <- weight\_diabetes\[c(4,3,1,2)\]
clean\_dim <- dim(weight\_diabetes)

# Show data:
kable(head(weight_diabetes,n=5), caption="Diabetes Data Set",padding=0, format = "markdown",align="l")

糖尿病 

分量 

性别

X_ageg5yr

没有

250

60 至 64 岁

没有

127

50 至 54 岁

没有

160

55 至 59 岁

没有

128

60 至 64 岁

没有

265

65 至 69 岁

数据看起来很简略,仅蕴含该我的项目所需的性能。因为数据须要匿名,所以年龄范畴是特定年龄的平安代替计划。年龄范畴将用作此数据集的分类信息。


第 2 局部:钻研问题

钻研问题 1:

性别,体重和年龄之间有相关性吗?(变量:性别,weight2,X_ageg5yr)

因为性别是生物辨认技术中的要害变量,因而探讨性别是否可能与其余变量相干很重要。在这种状况下,咱们正在钻研性别是否与体重相干。

钻研问题 2:

性别或年龄与糖尿病相干吗?怎么样?(变量:性别,X_ageg5yr,weight2,diabete3)

该探索性我的项目的指标是查看体重 / 性别 / 年龄是否与糖尿病相干。理解任何相关性可能有助于依据患者的性别和体重告知患者患糖尿病的可能性。

钻研问题 3:

年龄,体重和糖尿病之间有关系吗?(变量:性别,X_ageg5yr,weight2,diabete3)

为了进一步探讨与糖尿病的可能相关性,咱们还将钻研四个变量之间的关系。


第 3 局部:探索性数据分析

钻研问题 1:

性别,体重和年龄之间有相关性吗?(变量:性别,weight2,X_ageg5yr)

首先检查数据的散布很重要。_性别_是二元分类的,因而咱们将用条形图形象化它的散布。

centered <- theme(plot.title = element_text(hjust = 0.5))
hist\_weight <- ggplot(data=weight\_diabetes,aes(weight2,  fill=weight2))+
  geom_histogram(fill='salmon',color='white') + ggtitle("Histogram \[Weight\]") + centered
weight\_diabetes$log\_weight <- log(weight_diabetes$weight2)
hist\_log\_weight <- ggplot(data=weight\_diabetes,aes(log\_weight, fill=log_weight))+
  geom\_histogram(fill='mediumturquoise',color='white') + ggtitle("Histogram \[Log\_Weight\]") + centered
grid.arrange(hist\_weight, hist\_log_weight, ncol = 2)


对于_Weight2_,散布右偏,而_Weight2 的_对数靠近正态。因为数据的对数标准版本简直是失常的单峰数据,因而能够将权重用于推断统计中的后续剖析。

 
女性参加者比男性参加者更多,其幅度大大超过美国的总人口。这可能表明抽样办法在性别抽样方面并非齐全随机。然而,数据样本足够大,能够持续评估衰弱危险因素。

年龄范畴仿佛在两端都偏差极其。

在比拟年龄和体重时,性别的体重散布仿佛的确存在显著差别。男性仿佛比女性重。

还应留神,仿佛还有一些成年患者体重有余 50 磅,许多患者体重约 400 磅。数据收集过程的将来剖析应摸索这些高下异样值是否是谬误,或者它们是否反映出患有重大衰弱问题的患者。

钻研问题 2:

体重,年龄和 / 或性别与糖尿病相干吗?怎么样?(变量:性别,X_ageg5yr,weight2,diabete3)

 
当察看样本中的女性和男性参与者时,报告的糖尿病比率十分类似。

随着年龄的增长,直到 80 岁及更高年龄,糖尿病的报告比例也仿佛会减少。年龄可能与糖尿病有某种程度的相关性。

随着体重增加,所报告的糖尿病比例也减少。体重仿佛与报告的糖尿病有很强的相关性,应进一步探讨。

钻研问题 3:

年龄,体重和糖尿病之间有关系吗?(变量:性别,X_ageg5yr,weight2,diabete3)

 
报告患有糖尿病的男性和女性的体重散布均较高。男性的体重散布比女性重。

这些箱线图描述了一个更清晰的故事。报告患有糖尿病的患者仿佛在每个年龄段都较重。报告患有糖尿病的年老患者仿佛比老年患者具备更大的体重范畴。尽管尚不分明年龄与糖尿病和体重之间的关系,但应进一步探讨这种关系。

第 4 局部:论断

从数据的初步摸索中能够显著看出,某些性能具备比其余性能更强的相关性。体重与性别无关。性别仿佛与体重无关。然而,糖尿病仿佛与年龄无关,而与体重密切相关。

正文完
 0