bit.ly/tidyperspective-whyR-tr
varsayım 1:
otantik araçları öğretmeliyiz
varsayım 2:
otantik araç olarak R öğretelim
tidyverse tüm seviyelerdeki lisans öğrencileri için veri bilimi döngüsü boyunca ihtiyaç duyulan bilişimsel becerilerini ve düşünmeyi kazanmaları için etkili ve verimli bir yol sağlar.
data: peer-to-peer lending platformu olan Lending Club’dan binlerce borçlanma ile ilgili veri, openintro paketinden, birkaç değişiklikle
library(tidyverse)
library(openintro)
loans <- loans_full_schema %>%
mutate(
homeownership = str_to_title(homeownership),
bankruptcy = if_else(public_record_bankrupt >= 1, "Yes", "No")
) %>%
filter(annual_income >= 10) %>%
select(
loan_amount, homeownership, bankruptcy,
application_type, annual_income, interest_rate
)
loans
Rows: 9,976
Columns: 6
$ loan_amount <int> 28000, 5000, 2000, 21600, 23000, 5000, 24000, 20000, …
$ homeownership <chr> "Mortgage", "Rent", "Rent", "Rent", "Rent", "Own", "M…
$ bankruptcy <chr> "No", "Yes", "No", "No", "No", "No", "No", "No", "No"…
$ application_type <fct> individual, individual, individual, individual, joint…
$ annual_income <dbl> 90000, 40000, 40000, 30000, 35000, 34000, 35000, 1100…
$ interest_rate <dbl> 14.07, 12.61, 17.09, 6.72, 14.07, 6.72, 13.59, 11.99,…
Borçlanma tutarı ile başvuru türü arasındaki ilişkiyi ev sahipliğine göre gösteren yan yana kutu grafikleri oluşturun.
Faiz oranı ile yıllık gelir arasındaki ilişkiyi başvuranın iflasına bağlı olarak gözünüzde canlandırın.
Başvuranların ev sahipliği durumuna göre, ortalama borçlanma tutarını ve başvuran sayısını hesaplayın. Sonuçları azalan ortalama borçlanma tutarına göre görüntüleyin.
Homeownership | Number of applicants | Average loan amount |
---|---|---|
Mortgage | $18,132 | 4,778 |
Own | $15,665 | 1,350 |
Rent | $14,396 | 3,848 |
Başvuranların ev sahipliği durumuna göre, ortalama borçlanma tutarını ve başvuran sayısını hesaplayın. Sonuçları azalan ortalama borçlanma tutarına göre görüntüleyin.
# A tibble: 9,976 × 6
loan_amount homeownership bankruptcy application_type annual_income interest…¹
<int> <chr> <chr> <fct> <dbl> <dbl>
1 28000 Mortgage No individual 90000 14.1
2 5000 Rent Yes individual 40000 12.6
3 2000 Rent No individual 40000 17.1
4 21600 Rent No individual 30000 6.72
5 23000 Rent No joint 35000 14.1
6 5000 Own No individual 34000 6.72
# … with 9,970 more rows, and abbreviated variable name ¹interest_rate
Başvuranların ev sahipliği durumuna göre, ortalama borçlanma tutarını ve başvuran sayısını hesaplayın. Sonuçları azalan ortalama borçlanma tutarına göre görüntüleyin.
[input] veri çerçevesi
# A tibble: 9,976 × 6
# Groups: homeownership [3]
loan_amount homeownership bankruptcy application_type annual_income interest…¹
<int> <chr> <chr> <fct> <dbl> <dbl>
1 28000 Mortgage No individual 90000 14.1
2 5000 Rent Yes individual 40000 12.6
3 2000 Rent No individual 40000 17.1
4 21600 Rent No individual 30000 6.72
5 23000 Rent No joint 35000 14.1
6 5000 Own No individual 34000 6.72
# … with 9,970 more rows, and abbreviated variable name ¹interest_rate
veri çerçevesi [output]
Başvuranların ev sahipliği durumuna göre, ortalama borçlanma tutarını ve başvuran sayısını hesaplayın. Sonuçları azalan ortalama borçlanma tutarına göre görüntüleyin.
Başvuranların ev sahipliği durumuna göre, ortalama borçlanma tutarını ve başvuran sayısını hesaplayın. Sonuçları azalan ortalama borçlanma tutarına göre görüntüleyin.
Başvuranların ev sahipliği durumuna göre, ortalama borçlanma tutarını ve başvuran sayısını hesaplayın. Sonuçları azalan ortalama borçlanma tutarına göre görüntüleyin.
[input] veri çerçevesi
loans %>%
group_by(homeownership) %>%
summarize(
avg_loan_amount = mean(loan_amount),
n_applicants = n()
) %>%
arrange(desc(avg_loan_amount))
# A tibble: 3 × 3
homeownership avg_loan_amount n_applicants
<chr> <dbl> <int>
1 Mortgage 18132. 4778
2 Own 15665. 1350
3 Rent 14396. 3848
[output] veri çerçevesi
aggregate()
aggregate()
ile gruplandırılmış özetaggregate()
ile gruplandırılmış özetformül sözdizimi (formula syntax)
fonksiyonları argüman olarak iletme
veri cercevelerini birleştirme
satırlara erişmek için köşeli parantez gösterimi
tapply()
Mortgage Own Rent
18132.45 15665.44 14396.44
😕 :
fonksiyonları argüman olarak iletme
çeşitli ‘apply()’ fonksiyonlarıni ayırmak
yeni bir veri yapısı ile biten (array
)
iç içe işlevleri okuma
Borçlanma tutarı ile başvuru türü arasındaki ilişkiyi ev sahipliğine göre gösteren yan yana kutu grafikleri oluşturun.
ggplot()
ile görselleştirmeboxplot()
boxplot()
ile görselleştirmeFaiz oranı ile yıllık gelir arasındaki ilişkiyi başvuranın iflasına bağlı olarak gözünüzde canlandırın.
ggplot()
ile görselleştirmeggplot()
ile özelleştirmeggplot(loans,
aes(y = interest_rate, x = annual_income,
color = bankruptcy)) +
geom_point(alpha = 0.1) +
geom_smooth(method = "lm", linewidth = 2, se = FALSE) +
scale_x_log10(labels = scales::label_dollar()) +
scale_y_continuous(labels = scales::label_percent(scale = 1)) +
scale_color_OkabeIto() +
labs(x = "Annual Income", y = "Interest Rate",
color = "Previous\nBankruptcy") +
theme_minimal(base_size = 18)
plot()
ile görselleştirme# From the OkabeIto palette
cols = c(No = "#e6a003", Yes = "#57b4e9")
plot(
loans$annual_income,
loans$interest_rate,
pch = 16,
col = adjustcolor(cols[loans$bankruptcy], alpha.f = 0.1),
log = "x",
xlab = "Annual Income ($)",
ylab = "Interest Rate (%)",
xaxp = c(1000, 10000000, 1)
)
lm_b_no = lm(
interest_rate ~ log10(annual_income),
data = loans[loans$bankruptcy == "No",]
)
lm_b_yes = lm(
interest_rate ~ log10(annual_income),
data = loans[loans$bankruptcy == "Yes",]
)
abline(lm_b_no, col = cols["No"], lwd = 3)
abline(lm_b_yes, col = cols["Yes"], lwd = 3)
legend(
"topright",
legend = c("Yes", "No"),
title = "Previous\nBankruptcy",
col = cols[c("Yes", "No")],
pch = 16, lwd = 1
)
plot()
ile görselleştirmetidymodels ile modelleme ve istatistiki çıkarım:
çok çeşitli paketlerde bulunan modelleme işlevlerine yönelik birleşik bir arayüz
veri çerçevesi içeri / veri çerçevesi dışarı paradigmasına bağlı kalmak
metodoloji için korkuluklar
library(tidyverse)
ile başlayin
paket paket değil, öğrenme hedeflerinin sırasına gore öğretin
blog gönderileri, güncellemeleri, bunların arkasındaki mantık ve işe yarayan örneklerle birlikte vurgular
lifecycle stages (yaşam döngüsü aşamaları) ve rozetler
Her birimiz R’i tidyverse oncesinde öğrendik ve senelerce tidyverse’siz R ogrettik. Daha sonra araştırmamızda ve öğretimimizde tidyverse’i kullanmaya karar verdik. Bu makale, tidyverse seçimimizi destekleyen nedenlerin yanı sıra, tidyverse ile istatistik öğretiminin faydalarının ve zorluklarının bir sentezidir.