Theory
એકમ 1, યંત્રની ઝડપે ફરી ભજવાયો
અઠવાડિયાં પહેલાં તમે screen-time ની સરેરાશ, મધ્યસ્થ અને SD હાથે ગણ્યાં હતાં: વિચલન, વર્ગ, વર્ગમૂળ, આખો વિધિ.
R માં, વિધિ ચાર શબ્દનો છે:
mean(survey$screen, na.rm = TRUE)
તમારા કાગળે આપેલી એ જ સંખ્યા. આ પાઠ એ સોદો ઔપચારિક કરે છે: હાથના કામે તમને શીખવ્યું કે સંખ્યાઓનો અર્થ શું છે; આજની commands એમને તરત ગણે છે: એક પ્રખ્યાત ખૂટતી વસ્તુ સાથે જે દેશના દરેક શરૂઆત કરનારને પકડે છે.
Theory
એક બટન ખૂટતું calculator
R ના આંકડાશાસ્ત્રના keyboard પર બધા માટે key છે: mean, median, sd, var, quantile...
...સિવાય બહુલક. mode() નામનું લેબલવાળું બટન એક મજાક છે: એ દબાવો અને R તમને તમારા data નો storage mode કહે છે ("numeric"): આંકડાશાસ્ત્રના પ્રશ્નનો programming નો જવાબ.
ખરેખરું સૌથી વારંવારનું મૂલ્ય બીજી બે keys માંથી ભેગું કરવું પડે છે: ગણવા table(), અને વિજેતાને તાજ પહેરાવવા which.max().
Practical
આખી એકમ 1 ની ઓજારપેટી, દરેક એક લીટીમાં
screen <- c(60, 90, 90, 120, 150, 180, 600, NA)
# central tendency
mean(screen, na.rm = TRUE) # [1] 184.3 (outlier-dragged, as Unit 1 warned)
median(screen, na.rm = TRUE) # [1] 120
# dispersion (SAMPLE formulas: divide by n-1)
sd(screen, na.rm = TRUE)
var(screen, na.rm = TRUE)
range(screen, na.rm = TRUE) # min and max together
quantile(screen, na.rm = TRUE) # 0% 25% 50% 75% 100%
# the five-number overview + mean, one call:
summary(screen)
# THE QUIRK: mode() is NOT the statistical mode
mode(screen) # [1] "numeric" (storage mode!)
# the real mode, assembled:
t <- table(screen)
names(which.max(t)) # [1] "90"
# group-wise statistics: R's GROUP BY
# tapply(survey$screen, survey$stay, mean, na.rm = TRUE)
# aggregate(screen ~ stay, data = survey, FUN = mean)
Theory
ત્રણ ટેવો જે સંખ્યાઓને પ્રામાણિક બનાવે છે
na.rm = TRUE, હંમેશા વિચારાયેલું: એક NA આ દરેક function ને ચૂપ કરી દે છે (ફેલાવાનો નિયમ): દર વખતે સભાનપણે નક્કી કરો.
તમારો ભાજક જાણો: sd() અને var() નમૂના નું સૂત્ર (n-1) વાપરે છે, pandas ની જેમ: અહેવાલમાં "નમૂનાનું SD" કહો, બરાબર જેમ વિકિરણના પાઠે ઘૂંટાવ્યું.
એક વાર હાથે ચકાસો: એકમ 1 માં તમે હાથે ગણેલા નાના dataset પર sd() ચલાવો: એ જ જવાબ એવો ભરોસો બાંધે છે જે તમને ગણિત કાયમ સોંપી દેવા દે છે.
Quiz
એક student સૌથી વારંવારના screen time ની આશાએ mode(survey$screen) ચલાવે છે અને "numeric" મળે છે. શું ચાલી રહ્યું છે, અને ખરેખરો બહુલક શું ગણે છે?
- R માં mode() **storage** નો પ્રકાર આપે છે; આંકડાકીય બહુલક names(which.max(table(x))) થી ભેગો કરાય છે
- Data માં કોઈ પુનરાવર્તિત મૂલ્ય નથી, એટલે R એ એને બદલે એનો પ્રકાર છાપ્યો
- mode() ને ચાલવા na.rm = TRUE જોઈએ
- R માં ફક્ત factors ને બહુલક હોય છે
Show the answer
R માં mode() **storage** નો પ્રકાર આપે છે; આંકડાકીય બહુલક names(which.max(table(x))) થી ભેગો કરાય છે
R નું mode() "આ કેવી રીતે સંઘરાયું છે?" નો જવાબ આપે છે: આંકડાશાસ્ત્ર સાથે નામની અથડામણ જેણે students ની પેઢીઓને ફસાવી છે: જાણીતો R નો ફાંદો, marks લાયક ખાસ એટલા માટે કે એ આટલો આશ્ચર્યજનક છે. ખરેખરો બહુલક: table(x) દરેક મૂલ્ય ગણે છે, which.max() સૌથી મોટી ગણતરી શોધે છે, names() વિજેતા મૂલ્ય વાંચે છે. વિકલ્પ B થી D એવાં વર્તન ઉપજાવે છે જે નથી: એ function ક્યારેય આવૃત્તિ ગણતું નથી, data કે arguments ગમે તે હોય.
Think first
જૂથ પ્રમાણે: ડીનની એક લીટી
ડીન પૂછે છે: "સરેરાશ screen time, છાત્રાલયવાસી સામે દિવસના વિદ્યાર્થી, એક command." tapply(survey$screen, survey$stay, mean, na.rm = TRUE) વાપરીને: ત્રણેય arguments શું કરે છે એ વર્ણવો, પછી tap કરો.
Show the answer
tapply(મૂલ્યો, જૂથો, function): survey$screen લો (શેનો સારાંશ કરવો), એને survey$stay પ્રમાણે વહેંચો (ઢગલા: hostel અને day), દરેક ઢગલા પર mean લગાડો: output દરેક જૂથ દીઠ એક લેબલવાળી સરેરાશ છે:
day hostel
142 201
એ R નું GROUP BY છે (aggregate(screen ~ stay, df, mean) એ જ વાત સૂત્રથી કહે છે). તમે BCA303 ના GROUP BY ના પાઠમાં આ ઢગલા હાથે બનાવ્યા હતા: એ જ વિચાર, ત્રીજી syntax, દસ સેકન્ડ.
Watch out
સારાંશના આંકડાની લપસણ
mode() ક્યારેય બહુલક નથી: table વત્તા which.max, કે તમારું પોતાનું બે લીટીનું function.
NA નું મૌન: એક ખૂટતું મૂલ્ય mean/sd માંથી NA આપે છે: na.rm નો નિર્ણય જવાબનો ભાગ છે, પાછળથી વિચારવાની વાત નહીં.
quantile() નાં defaults 0/25/50/75/100% છે: બીજા સ્પષ્ટ માંગો: 90મા percentile માટે quantile(x, 0.9).
Theory
આ આગળ ક્યાં જોડાય છે
આ એક લીટીના જવાબ વિષયમાં બાકી બધું ખવડાવે છે: આવૃત્તિનાં કોષ્ટકો એ શ્રેણીગત variables ગણે છે જેમનો સારાંશ આ functions કરી શકતાં નથી (આગલો પાઠ), commands નો પાઠ આખી સપાટી એકઠી કરે છે, અને આલેખનું સમાપન summary() જે વર્ણવે છે એ દોરે છે. તમે હવે course ની અંદર દ્વિભાષી પણ છો: df['screen'].mean() અને mean(df$screen) એ એક જ વિચાર છે: સ્થાનાંતરિતતા જ ખરો અભ્યાસક્રમ છે.
Summary
Key takeaways
- mean, median, sd, var, range, quantile: દરેક એક call; summary() = પાંચ સંખ્યાનું વિહંગાવલોકન વત્તા સરેરાશ.
- na.rm = TRUE એ દરેક call પર સભાન નિર્ણય છે: નહીં તો NA એમને ચૂપ કરે છે.
- sd()/var() નમૂનાનો ભાજક (n-1) વાપરે છે: pandas ની જેમ 'નમૂનાનું SD' કહો.
- mode() storage નો પ્રકાર આપે છે: ખરેખરો બહુલક names(which.max(table(x))) છે.
- જૂથ પ્રમાણે: tapply(મૂલ્યો, જૂથો, fun) કે aggregate(y ~ group, df, fun): R નું GROUP BY.
- Commands ને એક વાર તમારી એકમ 1 ની હાથની ગણતરી સામે ચકાસો: પછી કાયમ સોંપી દો.
- Memory hook: એક ખૂટતું (ખોટા લેબલવાળું) બટન વાળું calculator.