セクシーデータサイエンス

データ解析やプログラミングを勉強する日記!

学習動画サービス

YouTubeの広告で流れてきた udemy
1/9までの新春価格!

https://www.udemy.com

ITや数学のほか、Adobeのソフトを使ったデザイン、プロジェクトマネジメントなどの多様なコースがあるよう。

買い切りで 学習期間の制限なし なのが独特かもと思う。

iOSアプリもあるので通学時間に見るのもいいかも。
(プログラミングや何かは手を動かさないとあんまり身につかないから家に帰ったらやったほうがいいけど)

‎動画で学ぼう:App Store ストーリー

クロス集計表

統計解析ソフトR
クロス集計

2つ以上の条件があって、それぞれの条件に当てはまる組み合わせの人が何人いるか〜 という表。

集計はロジスティック回帰分析などに必要そう。

これを集計すると

# mihon
 Hair   Eye    Sex
1 Brown Hazel   Male
2 Brown Brown Female
3 Brown Brown   Male
4 Black Brown Female
5 Brown  Blue Female
6 Blond  Blue   Male
:
:

⬇️

> table(mihon)
, , Sex = Male

       Eye
Hair    Brown Blue Hazel Green
  Black    32   11    10     3
  Brown    53   50    25    15
  Red      10   10     7     7
  Blond     3   30     5     8

, , Sex = Female

       Eye
Hair    Brown Blue Hazel Green
  Black    36    9     5     2
  Brown    66   34    29    14
  Red      16    7     7     7
  Blond     4   64     5     8


> class(table(mihon))
[1] "table"

素敵!
クラスはtableでした。

集計表からデータを復元

使う場面がすぐに思いつかないけど、元データが作れる

R備え付けの見本データ、HairEyeColorが多重クロス集計表。

まずtable をデータフレームにすると、頻度Freq列が登場。

> HEC <- data.frame(HairEyeColor)
> head(HEC)
    Hair   Eye    Sex Freq
1  Black Brown   Male   32
2  Brown Brown   Male   53
3    Red Brown   Male   10
4  Blond Brown   Male    3
5  Black  Blue   Male   11
6  Brown  Blue   Male   50

(Black Brown Male ) を32個、(Brown Brown Male)を53個、... 作ると、集計前のデータが再現できる

> HEC2 <- data.frame(lapply(HEC, function(i) rep(i, HEC[,"Freq"]))[-4])
> head(HEC2)
   Hair   Eye  Sex
1 Black Brown Male
2 Black Brown Male
3 Black Brown Male
4 Black Brown Male
5 Black Brown Male
6 Black Brown Male

感想

外観をみるときはとりあえずsummary 使ってたけど、性質で分かれるようなデータならtable もよさそう。
(まで書いて、よく見るのは数値だからsummaryしてるんだったと思い出した)
実データの復元は本にあって面白かったけど、使い道はRの練習くらい?

数ページだけ本を開いたよ!Rの因子型

昨日は忘年会だったから本を数ページだけ進めた🍻

factor

Rのfactor , 別名、因子型、カテゴリー型

見た目は文字列に似てるけど、
factor型だとsummarytableで個数を数えるのに便利

> summary(iris$Species)
    setosa versicolor  virginica 
        50         50         50 

オプション ordered を使うと
順序づけもできる。 label は各factorの名前のようなもので、ordered=TRUE とするとlabelにかいた順番で順序がつく。

> a <- factor(c("good", "nice", "bad", "good"),
+   labels=c("bad", "good", "nice"),
+   ordered = TRUE)
> a
[1] good nice bad  good
Levels: bad < good < nice

表示してみると不等号で順序が表された。

数値をすきな範囲で区切って分類できる cut も便利そう。
グラフ書くときに解釈しやすい感じでくぎれる。

# 適当なデータを用意
> sample(1:80, 20) -> age
> sample(1:80, 20) 
 [1] 68 69 67 38 66  4 70 26 50 54 11 23 55  6 43 58 72 31 80 74

# カットする
# 20歳以下、20〜60歳以下、60超の3種類に分かれる
> age2 <- cut(age, breaks=c(0, 20, 60, Inf),
+   right=TRUE, labels=c("kodomo", "otona", "koureisha"),
+   ordered=TRUE)
> age2
 [1] kodomo    otona     koureisha otona     koureisha koureisha
 [7] otona     kodomo    otona     otona     kodomo    kodomo   
[13] otona     otona     koureisha otona     kodomo    otona    
[19] otona     otona    
Levels: kodomo < otona < koureisha

順序付き因子、
使ったことなかったれど、検定で順序が必要なときに使えるかな?

独学が続かない私が満を持してブログを始めたわけ

ブログ開設おめでとう!ありがとう!

データ解析やプログラミングの能力を上げたいなと思い、
本を借りたり、動画サービスをやってはみたけれど、
いつも1月くらいでなんとなく飽きてしまいました。

どうしたら続けられるか?
高学歴友人にきいたところによると、ブログに書き貯めると「続けなきゃ!」と思うし、誰かの役に立つ。僕もそういうブログに助けられる。
・・・んだって!

はてブロは1ヶ月以上続くのか!
Fionaの次回作にご期待ください!!

よかったらで応援してください(*'▽ '*)

はてなブログにしたのは

好きなブロガーさんが、はてなブログ(Proの方)を使っているので、ブログ書くならはてなブログしかないと思ってました!
意識高いオタクが集う技術サイトにはなんか入りづらかったし、、、

この記事のタイトルも、「ブログっぽい」タイトルを一生懸命つけてみたの。どうかなぁ