वैरिएबल्स को ट्रांसफॉर्म करना

R में Regression परिचय

Richie Cotton

Data Evangelist at DataCamp

Perch डेटासेट

library(dplyr)

perch <- fish %>%
  filter(species == "Perch")
species mass_g length_cm
Perch 5.9 7.5
Perch 32.0 12.5
Perch 40.0 13.8
Perch 51.5 15.0
Perch 70.0 15.7
... ... ...
R में Regression परिचय

यह रैखिक संबंध नहीं है

ggplot(perch, aes(length_cm, mass_g)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

Perch की लंबाई के मुकाबले उनके वज़न का स्कैटर प्लॉट, ट्रेंड लाइन सहित. जैसे-जैसे लंबाई बढ़ती है, वज़न रैखिक से तेज़ी से बढ़ता है, इसलिए कर्व ऊपर की ओर है.

R में Regression परिचय

Bream बनाम perch

कुछ bream तैरते हुए. Bream काफ़ी चपटी होती हैं.

कुछ perch तैरते हुए. Perch काफ़ी गोल-मटोल होते हैं.

R में Regression परिचय

मास बनाम लंबाई के क्यूब का प्लॉट

ggplot(perch, aes(length_cm ^ 3, mass_g)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

Perch के वज़न बनाम उनकी लंबाई के क्यूब का स्कैटर प्लॉट, ट्रेंड लाइन सहित. इस ट्रांसफ़ॉर्म के बाद ज्यादातर पॉइंट्स ट्रेंड लाइन के क़रीब हैं.

R में Regression परिचय

मास बनाम लंबाई के क्यूब का मॉडलिंग

mdl_perch <- lm(mass_g ~ I(length_cm ^ 3), data = perch)
Call:
lm(formula = mass_g ~ I(length_cm^3), data = perch)

Coefficients:
   (Intercept)  I(length_cm^3)  
       -0.1175          0.0168
R में Regression परिचय

लंबाई के क्यूब से मास की भविष्यवाणी

explanatory_data <- tibble(
  length_cm = seq(10, 40, 5)
)
prediction_data <- explanatory_data %>%
  mutate(
    mass_g = predict(mdl_perch, explanatory_data)
  )
# A tibble: 7 x 2
  length_cm mass_g
      <dbl>  <dbl>
1        10   16.7
2        15   56.6
3        20  134. 
4        25  262. 
5        30  453. 
6        35  720. 
7        40 1075.
R में Regression परिचय

मास बनाम लंबाई के क्यूब का प्लॉट

ggplot(perch, aes(length_cm ^ 3, mass_g)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  geom_point(data = prediction_data, color = "blue")

Perch के वज़न बनाम लंबाई के क्यूब का स्कैटर प्लॉट, ट्रेंड लाइन सहित, predict() से निकले पॉइंट्स के एनोटेशन के साथ. ये पॉइंट्स ट्रेंड लाइन को बिल्कुल फॉलो करते हैं.

ggplot(perch, aes(length_cm, mass_g)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  geom_point(data = prediction_data, color = "blue")

Perch के वज़न बनाम लंबाई का स्कैटर प्लॉट, ट्रेंड लाइन सहित, predict() से निकले पॉइंट्स के एनोटेशन के साथ. पॉइंट्स ट्रेंड लाइन नहीं बल्कि डेटा की कर्व को फॉलो करते हैं.

R में Regression परिचय

Facebook विज्ञापन डेटासेट

विज्ञापन कैसे काम करता है

  1. Facebook को पैसे दें ताकि वह विज्ञापन दिखाए.
  2. लोग विज्ञापन देखते हैं ("impressions").
  3. कुछ लोग जो देखते हैं, वे क्लिक करते हैं.

 

  • 936 पंक्तियाँ
  • हर पंक्ति 1 विज्ञापन दर्शाती है
spent_usd n_impressions n_clicks
1.43 7350 1
1.82 17861 2
1.25 4259 1
1.29 4133 1
4.77 15615 3
... ... ...
R में Regression परिचय

प्लॉट भरा-भरा है

ggplot(
  ad_conversion, 
  aes(spent_usd, n_impressions)
) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

विज्ञापन खर्च के मुकाबले impressions की संख्या का स्कैटर प्लॉट, ट्रेंड लाइन सहित. ज़्यादातर पॉइंट्स प्लॉट के नीचे-बाएँ कोने में ठुँसे हुए हैं.

R में Regression परिचय

स्क्वेयर रूट बनाम स्क्वेयर रूट

ggplot(
  ad_conversion, 
  aes(sqrt(spent_usd), sqrt(n_impressions))
) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)

विज्ञापन खर्च के square root के मुकाबले impressions के square root का स्कैटर प्लॉट, ट्रेंड लाइन सहित. अब पॉइंट्स पूरे प्लॉट में ज़्यादा समान रूप से फैले हैं.

R में Regression परिचय

मॉडलिंग और प्रेडिक्टिंग

mdl_ad <- lm(
  sqrt(n_impressions) ~ sqrt(spent_usd), 
  data = ad_conversion
)
explanatory_data <- tibble(
  spent_usd = seq(0, 600, 100)
)
prediction_data <- explanatory_data %>% 
  mutate(
    sqrt_n_impressions = predict(
      mdl_ad, explanatory_data
    ),
    n_impressions = sqrt_n_impressions ^ 2
  )
# A tibble: 7 x 3
  spent_usd sqrt_n_impressions n_impressions
      <dbl>              <dbl>         <dbl>
1         0               15.3          235.
2       100              598.        357289.
3       200              839.        703890.
4       300             1024.       1048771.
5       400             1180.       1392762.
6       500             1318.       1736184.
7       600             1442.       2079202.
R में Regression परिचय

अभ्यास करते हैं!

R में Regression परिचय

Preparing Video For Download...