Faktor i R: Kategoriska variabler och kontinuerliga variabler

Vad är faktor i R?

Faktor i R är en variabel som används för att kategorisera och lagra data, med ett begränsat antal olika värden. Den lagrar data som en vektor av heltalsvärden. Faktor i R är också känd som en kategorisk variabel som lagrar både sträng- och heltalsdatavärden som nivåer. Faktor används mest i statistisk modellering och utforskande dataanalys med R.

I en datauppsättning kan vi särskilja två typer av variabler: kategorisk och kontinuerlig.

  • I deskriptiv statistik för kategoriska variabler i R är värdet begränsat och baseras vanligtvis på en viss ändlig grupp. Till exempel kan en kategorisk variabel i R vara länder, år, kön, yrke.
  • En kontinuerlig variabel kan dock ta alla värden, från heltal till decimal. Till exempel kan vi ha intäkter, pris på en aktie osv.

Kategoriska variabler

Kategoriska variabler i R lagras i en faktor. Låt oss kontrollera koden nedan för att konvertera en teckenvariabel till en faktorvariabel i R. Tecken stöds inte i maskininlärningsalgoritm, och det enda sättet är att konvertera en sträng till ett heltal.

syntax

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

argument:

  • x: En vektor med kategoriska data i R. Måste vara en sträng eller ett heltal, inte decimal.
  • Nivåer: En vektor med möjliga värden tagna av x. Detta argument är valfritt. Standardvärdet är den unika listan med objekt i vektorn x.
  • Etiketter: Lägg till en etikett till x kategoridata i R. Till exempel kan 1 ta etiketten "man", medan 0, etiketten "kvinna".
  • beordrade: Bestäm om nivåerna ska ordnas i kategoridata i R.

Exempelvis:

Låt oss skapa en faktordataram.

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

Produktion:

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

Det är viktigt att omvandla en sträng till faktorvariabel i R när vi utför maskininlärningsuppgift.

En kategorisk variabel i R kan delas in i nominell kategorivariabel och ordinal kategorisk variabel.

Nominell Kategorisk Variabel

En kategorisk variabel har flera värden men ordningen spelar ingen roll. Till exempel man eller kvinna. Kategoriska variabler i R har ingen ordning.

# 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

Produktion:

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

Från factor_color kan vi inte se någon ordning.

Ordinal Kategorisk Variabel

Ordinalkategoriska variabler har en naturlig ordning. Vi kan specificera ordningen, från den lägsta till den högsta med order = TRUE och högst till lägst med order = FALSE.

Exempelvis:

Vi kan använda summering för att räkna värdena för varje 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

Produktion:

## [1] evening   morning   afternoon midday    
midnight  evening

Exempelvis:

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

Produktion:

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

R beordrade nivån från 'morgon' till 'midnatt' som specificerats i nivåparentesen.

Kontinuerliga variabler

Kontinuerliga klassvariabler är standardvärdet i R. De lagras som numeriska eller heltal. Vi kan se det från datasetet nedan. mtcars är en inbyggd datauppsättning. Den samlar information om olika typer av bilar. Vi kan importera den genom att använda mtcars och kontrollera klassen för variabeln mpg, mile per gallon. Den returnerar ett numeriskt värde som indikerar en kontinuerlig variabel.

dataset <- mtcars
class(dataset$mpg)

Produktion

## [1] "numeric"