【问题标题】:data_GAN Logistic Regression in RR中的data_GAN逻辑回归
【发布时间】:2021-12-04 22:23:29
【问题描述】:

我一直在阅读 R 中的逻辑回归。当存在真正有意义的列/变量时,这是有道理的。我的列是 A、B 和 C。C 列只有 1 和 0。我如何使用如此有限的数据集进行回归?任何指导或阅读资源将不胜感激。

> library(Amelia)
> library(mlbench)
> library(dplyr)
> my_data<-read.csv("/Users/morenikeirving/GAN/data_GAN.csv")
> names(my_data)
[1] "A" "B" "C"
> head(my_data)
        A      B  C
1  4.4189 69.580 NA
2 13.2019 61.250 NA
3 25.6290 56.740  1
4 22.2943 68.860  1
5  0.2163 57.690 NA
6  0.2875 72.914 NA
> summary(my_data)
       A                B               C       
 Min.   : 0.000   Min.   :33.00   Min.   :1     
 1st Qu.: 1.226   1st Qu.:59.69   1st Qu.:1     
 Median : 5.897   Median :61.87   Median :1     
 Mean   : 7.450   Mean   :65.40   Mean   :1     
 3rd Qu.:12.600   3rd Qu.:69.58   3rd Qu.:1     
 Max.   :25.800   Max.   :95.00   Max.   :1     
                                  NA's   :2923  
> missmap(my_data, col=c("blue", "red"), legend=FALSE)
> my_data<-my_data %>% mutate(C = ifelse(is.na(C),0,C))
> missmap(my_data, col=c("blue", "red"), legend=FALSE)
> model <-glm(x~., data=my_data, family= binomial)
Error in eval(predvars, data, env) : object 'x' not found
> #Library to read in xls file 
> library(Amelia)
> library(mlbench)
> library(dplyr)
> 
> #Read in csv file 
> my_data<-read.csv("/Users/GAN/data_GAN.csv")
> 
> #Exploring Data 
> #see what's on the data frame 
> names(my_data)
[1] "A" "B" "C"
> 
> #Look at first few rows of the data 
> head(my_data)
        A      B  C
1  4.4189 69.580 NA
2 13.2019 61.250 NA
3 25.6290 56.740  1
4 22.2943 68.860  1
5  0.2163 57.690 NA
6  0.2875 72.914 NA
> 
> #Overall picture of data; looking at first few rows revealed missing data
> summary(my_data)
       A                B               C       
 Min.   : 0.000   Min.   :33.00   Min.   :1     
 1st Qu.: 1.226   1st Qu.:59.69   1st Qu.:1     
 Median : 5.897   Median :61.87   Median :1     
 Mean   : 7.450   Mean   :65.40   Mean   :1     
 3rd Qu.:12.600   3rd Qu.:69.58   3rd Qu.:1     
 Max.   :25.800   Max.   :95.00   Max.   :1     
                                  NA's   :2923  
> #lots of NAs
> 
> #Examine missing data 
> 
> missmap(my_data, col=c("blue", "red"), legend=FALSE)
> 
> #Replace N/A 
> 
> my_data<-my_data %>% mutate(C = ifelse(is.na(C),0,C))
> 
> #Check to make sure missing values are resolved
> missmap(my_data, col=c("blue", "red"), legend=FALSE)

【问题讨论】:

    标签: r dplyr logistic-regression


    【解决方案1】:

    (1) 你问的是如何写逻辑回归代码? 或者 (2) 您是在问如何提高数据集的质量?

    (1)https://stats.idre.ucla.edu/r/dae/logit-regression/

    模型

    在真实环境中,您的数据应该有意义。但是在训练实践数据集中,变量/列的名称并不重要。重要的是您的数据适合用于您的模型(例如,线性回归要求您的结果是连续变量;逻辑回归倾向于使用二元结果,如 C 列)

    (2) 如果您的数据集较小且数据质量较低,那么除了获取新数据集或收集更多数据外,您无能为力。

    您可以考虑重新采样,但这并不总是适用,并且在使用时会出现一系列问题

    【讨论】:

    • 我在问如何编写代码以及当它看起来如此......毫无意义时如何获得意义。我用零替换了 NA。但是我看到的大多数回归示例实际上都使用了有意义的变量,所以我对如何用 A、B、C 编写代码感到困惑。
    • 简短的回答是 C 列是您尝试使用 A 列和 B 列预测的类别。我假设您的数据集只是一个练习集,所以它们的名称无关紧要;从理论上讲,它几乎可以是您想要的任何东西。关键是您正在使用来自 A 和 B 的信息来尝试预测 C。如果您想了解更多的编码或数学知识,您可能需要阅读更多的文章/期刊。按照 UCLA 链接中的小插曲(只需将 admission 视为 C 列,gpa 视为 A 列,gre 视为 B 列)
    • 为了进一步分解,glm() 是您要使用的函数。然后你告诉模型你想让 A 和 B 尝试预测 C(写成 C ~ A+B)。然后 data 用于指定您正在使用的数据框,在您的原始帖子中名为 my_data 。最后,家庭用于指定您的二项式结果并选择逻辑回归。更多信息可以在这里找到:statmethods.net/advstats/glm.html
    猜你喜欢
    • 2018-01-26
    • 2018-02-12
    • 2014-06-20
    • 2021-11-13
    • 2014-06-26
    • 2019-08-20
    • 2021-05-02
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多