Home > Mobile >  data_GAN Logistic Regression in R
data_GAN Logistic Regression in R

Time:12-06

I've been reading about logistical regression in R. It makes sense when there are columns/variables that actually mean something. My columns are A, B, and C. Column C has only 1's and 0's. How am I to do a regression with such a limited dataset? Any guidance or resources to read would be appreciated.

> 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)

CodePudding user response:

(1) Are you asking how to write logistical regression code? Or (2) are you asking how to improve the quality of your dataset?

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

model <- glm(C ~ A B, data = my_data, family = "binomial")

In a real environment, your data should mean something. But in a training-practice dataset, it doesn't matter what your variables/columns are named. What matters is that your data is suitable to be used for your model (e.g. Linear regression requires your outcome to be a continuous variable; logistic regression tends to use binary outcomes like your column C)

(2) If you have a small dataset with low quality data, there's not much you can do other than getting a new dataset or gathering more data.

You can consider resampling, but that is not always applicable and has its own set of problems when using

  • Related