Faktor i R: Kategoriske variable og kontinuerte variable

Hvad er faktor i R?

Faktor i R er en variabel, der bruges til at kategorisere og gemme dataene, med et begrænset antal forskellige værdier. Den gemmer dataene som en vektor af heltalsværdier. Faktor i R er også kendt som en kategorisk variabel, der gemmer både streng- og heltalsdataværdier som niveauer. Faktor bruges mest i statistisk modellering og eksplorativ dataanalyse med R.

I et datasæt kan vi skelne mellem to typer variabler: kategorisk og kontinuerlig.

  • I beskrivende statistik for kategoriske variable i R er værdien begrænset og normalt baseret på en bestemt endelig gruppe. For eksempel kan en kategorisk variabel i R være lande, år, køn, erhverv.
  • En kontinuert variabel kan dog tage alle værdier, fra heltal til decimal. For eksempel kan vi have omsætningen, prisen på en aktie osv.

Kategoriske variabler

Kategoriske variabler i R er lagret i en faktor. Lad os tjekke koden nedenfor for at konvertere en tegnvariabel til en faktorvariabel i R. Tegn understøttes ikke i maskinlæringsalgoritmen, og den eneste måde er at konvertere en streng til et heltal.

Syntaks

factor(x = character(), levels, labels = levels, ordered = is.ordered(x))

argumenter:

  • x: En vektor af kategoriske data i R. Skal være en streng eller heltal, ikke decimal.
  • Niveauer: En vektor af mulige værdier taget af x. Dette argument er valgfrit. Standardværdien er den unikke liste over elementer i vektoren x.
  • Etiketter: Tilføj en etiket til de x kategoriske data i R. For eksempel kan 1 tage etiketten "mand", mens 0 er etiketten "kvinde".
  • bestilt: Bestem, om niveauerne skal sorteres i kategoriske data i R.

Eksempel:

Lad os skabe en faktordataramme.

# Create gender vector
gender_vector <- c("Male", "Female", "Female", "Male", "Male")
class(gender_vector)
# Convert gender_vector to a factor
factor_gender_vector <-factor(gender_vector)
class(factor_gender_vector)

Output:

## [1] "character"
## [1] "factor"

Det er vigtigt at transformere en streng til faktorvariabel i R, når vi udfører Machine Learning-opgave.

En kategorisk variabel i R kan opdeles i nominel kategorisk variabel og ordinal kategorisk variabel.

Nominel Kategorisk Variabel

En kategorisk variabel har flere værdier, men rækkefølgen er ligegyldig. For eksempel mand eller kvinde. Kategoriske variable i R har ikke rækkefølge.

# Create a color vector
color_vector <- c('blue', 'red', 'green', 'white', 'black', 'yellow')
# Convert the vector to factor
factor_color <- factor(color_vector)
factor_color

Output:

## [1] blue   red    green  white  black  yellow
## Levels: black blue green red white yellow

Fra factor_color kan vi ikke se nogen rækkefølge.

Ordinal Kategorisk Variabel

Ordinale kategoriske variabler har en naturlig rækkefølge. Vi kan angive rækkefølgen, fra den laveste til den højeste med rækkefølge = TRUE og højest til lavest med rækkefølge = FALSK.

Eksempel:

Vi kan bruge opsummering til at tælle værdierne for hver faktorvariabel i R.

# Create Ordinal categorical vector 
day_vector <- c('evening', 'morning', 'afternoon', 'midday', 'midnight', 'evening')
# Convert `day_vector` to a factor with ordered level
factor_day <- factor(day_vector, order = TRUE, levels =c('morning', 'midday', 'afternoon', 'evening', 'midnight'))
# Print the new variable
factor_day

Output:

## [1] evening   morning   afternoon midday    
midnight  evening

Eksempel:

## Levels: morning < midday < afternoon < evening < midnight
# Append the line to above code
# Count the number of occurence of each level
summary(factor_day)

Output:

##   morning    midday afternoon   evening  midnight
##         1         1         1         2         1

R bestilte niveauet fra 'morgen' til 'midnat' som angivet i niveauparentesen.

Kontinuerlige variabler

Kontinuerlige klassevariabler er standardværdien i R. De gemmes som numeriske eller heltal. Vi kan se det fra datasættet nedenfor. mtcars er et indbygget datasæt. Den samler information om forskellige biltyper. Vi kan importere det ved at bruge mtcars og kontrollere klassen for variablen mpg, mile per gallon. Det returnerer en numerisk værdi, der angiver en kontinuerlig variabel.

dataset <- mtcars
class(dataset$mpg)

Produktion

## [1] "numeric"