Qiita APIでタグ×時期×いいね数の相関を調べたら現実を突きつけられた

# どんなにいいものを生み出しても、見てもらえなかったらなにもないのと同じ
先輩から言われ、ハッとした言葉です。

2023年度になったということで**心機一転**！Qiita記事を書くことをはじめ、たくさんアウトプットをしていこうと思っています:muscle:
でもせっかく頑張ってアウトプットしたのに見てもらえず、なにもないのと同じになったら悲しい:cry:

**そこで！**

**Qiita記事をたくさんの人に見てもらうにはどうしたらよいか**、自分なりに仮説を立て、**Qiita API**を利用して検証してみました:point_up:

# 使用したもの
- Node-RED（Railwayでデプロイ）
- Qiita API

# 仮説を立てる
### たくさんの人に見てもらえる記事とは何か
内容が面白く、書き方がうまい記事がたくさんの人に見てもらえることは言うまでもありませんが、それができるようになるためには時間がかかります:no_good:
同じ技量でもちょっとした工夫で、少しでも見てもらえる機会を増やすことはできないか:thinking:

そこで目を付けたのが**タグ**です🏷️

フォローしているタグが付いている新着記事はタイムラインに表示されるため、フォロワーの多いタグが付いている記事はたくさんの人に見てもらいやすいといえます。
フォロワーの多いタグ・少ないタグの比較だとちょっと単純すぎるので、**年度初めの今この時期に見てもらいやすいタグは何か**という観点で仮説を立ててみることにしました！

### タグの選定
私もそうであるように、年度初めには心機一転新しいことを始める人が多いと思います。
したがって年度初めのQiitaには、プログラミングの勉強を始めたばかりの新人プログラマさんが多いのではないでしょうか。
そこで、年度初めにQiita記事を投稿するときは、**「新人プログラマ応援」タグをつけるとたくさんの人に見てもらえる**という仮説をたてました。

# 検証方法を決める
以下の4つの条件で、記事の"勢い"を比較します！
- 2023年4月1日～17日(年度初め)
    - 新人プログラマ応援タグあり
    - 新人プログラマ応援タグなし
- 2022年5月1日～2023年3月31日
    - 新人プログラマ応援タグあり
    - 新人プログラマ応援タグなし

「記事の"勢い"」という考え方は、先人の知恵をお借りしました:pray:
[Qiitaの記事の”勢い”を調べる　～もしかしたらまだ見ぬ掘り出し記事が見つかるかも～](https://qiita.com/tishiyama/items/878db02f2095b6a5ce8b)

こちらの記事では５ちゃんねるの"勢い"の計算方法が、以下のように紹介されています。
**勢い＝レス数/（現在のunix時間-スレッド内の１番目の投稿のunix時間）÷86400**

86400は24時間を秒に換算した数値のため、**1日当たりのいいね数＝勢い**となっています。

今回の検証では各パラメータを以下のように定義し、計算式を利用します。
■レス数＝いいね数　※他人の記事の閲覧数は取得できないようです
■現在の時間＝現在の時間(2023年4月1日18時00分) または　2023年4月1日00時00分
■１番目の投稿時間＝記事の投稿時間


**年度初め**かつ**新人プログラマ応援タグあり**の記事が、他の3つの条件の記事よりも"勢い"が大きければ、**年度初めは「新人プログラマ応援」タグをつけるとたくさんの人に見てもらえる**という仮説が立証できたといえるでしょう！

# 検証する
### Node-REDエディター画面
条件ごとに1つ、計4つのフローを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958610/bd2b52f3-1a30-a9ae-bbcf-ea1f425b1e0c.png)

### APIリクエスト
今回は各条件ごとに、**ストック数上位10記事**に絞って"勢い"を調べます。(いいね数はうまく取得できず・・・)
- 新人プログラマ応援タグなし×年度初め
```
https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>80  -tag:新人プログラマ応援 created:>2023-04-01
```
- 新人プログラマ応援タグあり×年度初め
```
https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>35  tag:新人プログラマ応援 created:>2023-04-01
```
- 新人プログラマ応援タグなし×年度初めでない
```
https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>1345  -tag:新人プログラマ応援 created:>2022-05-01 created:<2023-03-31
```
- 新人プログラマ応援タグあり×年度初めでない
```
https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>320  tag:新人プログラマ応援 created:>2022-05-01 created:<2023-03-31
```

### JSON
- 新人プログラマ応援タグなし×年度初め
```
[{"id":"581705a76b2b6dce","type":"tab","label":"タグなし×年度初め","disabled":false,"info":"","env":[]},{"id":"15ab756039acfca0","type":"inject","z":"581705a76b2b6dce","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":140,"wires":[["e7c9298b55a622d3"]]},{"id":"843be88535a58465","type":"debug","z":"581705a76b2b6dce","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":640,"y":140,"wires":[]},{"id":"e7c9298b55a622d3","type":"http request","z":"581705a76b2b6dce","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>80  -tag:新人プログラマ応援 created:>2023-04-01","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":310,"y":140,"wires":[["99595f32935f60c1"]]},{"id":"99595f32935f60c1","type":"csv","z":"581705a76b2b6dce","name":"","sep":",","hdrin":false,"hdrout":"none","multi":"one","ret":"\\n","temp":"title,likes_count,created_at","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":470,"y":140,"wires":[["843be88535a58465"]]}]
```
- 新人プログラマ応援タグあり×年度初め
```
[{"id":"6024364f774c1226","type":"tab","label":"タグあり×年度初め","disabled":false,"info":"","env":[]},{"id":"a228668079295241","type":"inject","z":"6024364f774c1226","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":160,"wires":[["111d55fd72f66fda"]]},{"id":"6421d1f99cfdfb24","type":"debug","z":"6024364f774c1226","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":620,"y":160,"wires":[]},{"id":"111d55fd72f66fda","type":"http request","z":"6024364f774c1226","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>35  tag:新人プログラマ応援 created:>2023-04-01","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":310,"y":160,"wires":[["4595d0d039a168f8"]]},{"id":"4595d0d039a168f8","type":"csv","z":"6024364f774c1226","name":"","sep":",","hdrin":false,"hdrout":"none","multi":"one","ret":"\\n","temp":"title,likes_count,created_at","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":470,"y":160,"wires":[["6421d1f99cfdfb24"]]}]
```
- 新人プログラマ応援タグなし×年度初めでない
```
[{"id":"cf96acba052ccb3f","type":"tab","label":"タグなし×年度初めでない","disabled":false,"info":"","env":[]},{"id":"dd28e219e4a04232","type":"inject","z":"cf96acba052ccb3f","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":180,"wires":[["7ce45eb59a627e7e"]]},{"id":"da1b03e2de142c76","type":"debug","z":"cf96acba052ccb3f","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":620,"y":180,"wires":[]},{"id":"7ce45eb59a627e7e","type":"http request","z":"cf96acba052ccb3f","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>1345  -tag:新人プログラマ応援 created:>2022-05-01 created:<2023-03-31","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":290,"y":180,"wires":[["15498ba65f1830a4"]]},{"id":"15498ba65f1830a4","type":"csv","z":"cf96acba052ccb3f","name":"","sep":",","hdrin":false,"hdrout":"none","multi":"one","ret":"\\n","temp":"title,likes_count,created_at","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":470,"y":180,"wires":[["da1b03e2de142c76"]]}]
```
- 新人プログラマ応援タグあり×年度初めでない
```
[{"id":"606fc6567a907bc6","type":"tab","label":"タグあり×年度初めでない","disabled":false,"info":"","env":[]},{"id":"5aa7cc5b98cf1d95","type":"inject","z":"606fc6567a907bc6","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":200,"wires":[["25f534612957d37a"]]},{"id":"77eb9ad1764808ea","type":"debug","z":"606fc6567a907bc6","name":"debug 4","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":640,"y":200,"wires":[]},{"id":"25f534612957d37a","type":"http request","z":"606fc6567a907bc6","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://qiita.com/api/v2/items?page=1&per_page=100&query=stocks:>320  tag:新人プログラマ応援 created:>2022-05-01 created:<2023-03-31","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":310,"y":200,"wires":[["2408c91c6afe41b8"]]},{"id":"2408c91c6afe41b8","type":"csv","z":"606fc6567a907bc6","name":"","sep":",","hdrin":false,"hdrout":"none","multi":"one","ret":"\\n","temp":"title,likes_count,created_at","skip":"0","strings":true,"include_empty_strings":"","include_null_values":"","x":490,"y":200,"wires":[["77eb9ad1764808ea"]]}]
```

# 検証結果
### 残念ながら、条件別の記事の"勢い"に有意な差は見られず:scream:
むしろ年度初めでないときのほうが、新人プログラマ応援タグが付いた記事の"勢い"が強い傾向があるような結果になってしまいました:sweat:
「**〇〇タグをつけるだけでいいね数爆上がり！！！**」なんて甘～い話はないということでしょうかね・・・

##### 条件別記事の"勢い"ランキング

- 新人プログラマ応援タグなし×年度初め：平均勢い**20.2**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958610/4a9b680e-1940-061e-854d-d5bcb9cae173.png)

- 新人プログラマ応援タグあり×年度初め：平均勢い**20.3**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958610/72e636e7-664f-8706-6b53-a9ceea3198d4.png)

- 新人プログラマ応援タグなし×年度初めでない：平均勢い**5.4**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958610/fb6a890c-40b5-fd70-4cf0-c0e2cf8d8719.png)

- 新人プログラマ応援タグあり×年度初めでない：平均勢い**8.4**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2958610/b2e54dc0-b396-0030-f741-951f45e948fe.png)

### データを集計してわかったこと
**年度初めは「新人プログラマ応援」タグをつけるとたくさんの人に見てもらえる**という仮説を立証することはできませんでしたが、集めたデータから以下のような気づきを得ました！

- 年度初めの記事のほうが全体的に"勢い"が強い
　⇒記事は出たばかりのほうが"勢い"が強い
- 新人プログラマ応援タグありの記事は、**データの分散が大きい**
　⇒上位の記事の"勢い"が最強＝バズるとすごい！？

# さいごに振り返り
### 次回につなげるための改善点
- 対象にしたデータや、使用した条件(タグ)が不足していた
　⇒データの件数や追加するタグを精査し、比較対象以外の差異が出ないようにする！
- Node-REDの機能を使いこなせなかった
　⇒次回は以下の処理をNode-REDでできるようになりたい！
    - CSVをファイルで出力したかったがうまくいかず、コンソールに表示されたCSVデータをコピーしてエクセルに張り付けた
    - UNIX時間や"勢い"の計算をエクセルで行った
- 仮説・検証に慣れていなかったこともあり、仮説の立て方が甘かった
　⇒繰り返すことで勘所をつかんでいきたい！

最後までお読みいただきありがとうございました！
少しでも参考になるところがあれば嬉しいです:relaxed:
Node-REDやQiita APIの使い方や、仮説・検証のやり方についてなど、アドバイスがあればぜひぜひコメントください！！

# 参考にしたサイト
- Qiitaの記事の”勢い”を調べる　～もしかしたらまだ見ぬ掘り出し記事が見つかるかも～(https://qiita.com/tishiyama/items/878db02f2095b6a5ce8b)