Syleir’s note

2020.4.1より統計検定やE資格の勉強の進捗を報告しています。統計検定準1級、E資格、G検定取得しました!当ブログへのリンクはご自由にどうぞ。

MENU

朗報(?)

今日は現代数理統計学の基礎 (共立講座 数学の魅力)3章までを解いています。

 

統計検定準1級の延期による実施が検討されているようです。

https://www.toukei-kentei.jp/post-7865/

 

正直ここ最近は1級に向けた勉強をしていたので、準1級の試験が遅くなればなるほど1級の対策が厳しくなります。準1級に関してはここから2ヶ月程度真面目にやれば受かる手応えがあるのですが、夏になると大学の試験があったり戦略を組むのがなかなか難しいです。

 

今のところは近いうちは1級の数理統計範囲を勉強することにしているのですが、準1級の日程発表次第で戦略の再考が必要かもしれません。難しいのが準1級と1級の試験で全然別物と言っていいほどに傾向が違うことなんですよね、、

 

現段階の戦略は現代数理統計学の基礎はある程度準1級とも共通する部分があるので(ほんとか?)、これを全通しすることを目標にしていきたいと思います。

「入門 はじめての多変量解析」終了!

入門はじめての多変量解析を数日こなしていました。多変量解析は初習範囲なので、やさしいものがよいだろうということで、この本を選びましたが、式変形が非常に丁寧で、具体例も多く、非常に取り組みやすかったです。多変量解析がそれぞれ何をやっているか、という概念の理解を非常に滑らかに行ってくれるので、とてもありがたい本でした。

 

 

次は現代数理統計学の基礎に取り組んでいきたいと思います。

確率分布の数理的な扱いに慣れていきたいです。

 

現代数理統計学の基礎 (共立講座 数学の魅力)

現代数理統計学の基礎 (共立講座 数学の魅力)

 

 

iOSアプリ「ショートカット」と「pythonista3 」を連携させて朝アラームを止めたら自動で天気を読み上げさせる!

みなさんは忙しい朝、アラームを止めて、後20秒目を瞑っていたい、そんな気持ちになりませんか?
僕はなるんですが、そんな20秒で天気と気温を読み上げてくれたらいいな〜というiPhone使いのあなたにおすすめ、iOSアプリ「ショートカット」と「pythonista3 」を使って朝アラームを止めたら自動で天気と最高気温、最低気温を読み上げさせ、天気の画像を出力させてやろう!という記事です。


久しぶりの投稿になりすみません。ここ数日pythonの勉強をしていたら「ショートカット」と「pythonista3」を使って朝アラームを止めたら自動で天気を読み上げさせることが出来るのではないか?と思ってやってみたら出来てしまったのでこの記事を書くことにしました。思いの外難しくて時間がかかってしまいました。

使用するアプリ

使用するアプリは以下の2つです。

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料
apps.apple.com

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220
apps.apple.com

フォルダの整備

pythonista3 を起動、This iPhoneの中にweatherというフォルダを作り、その中に以下のコードをweather.pyとして貼ります。このweatherというフォルダの中に天気に応じて出力したい画像をimportしてweather.py内の.JPGや.PNGの名前を写真の名前に変更します。(写真を参考にしてください)
f:id:syleir:20200424171808j:plain
f:id:syleir:20200424171724j:plain

pythonista3 内でプログラムの作成

pythonista3のソースコードは以下のようになります。

import requests
import speech 
import time
import datetime
from PIL import Image
speech.say("おはようございます。","ja-JP",0.5) 	

dt_now = datetime.datetime.now()

hour=dt_now.hour
minute=dt_now.minute
str1="ただいまの時刻は{}時{}分です。".format(hour,minute)

		
speech.say(str1,"ja-JP",0.5) 
	

url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010'
api_data1 = requests.get(url).json()

data1 = api_data1['forecasts'][0]['telop']



if "雨" in data1:
	rainy=Image.open('rainy.PNG')
	rainy.show()

elif "晴" in data1:
	sunny=Image.open('sunny.JPG')
	sunny.show()
	
elif "雪" in data1:
	snowy=Image.open('snowy.PNG')
	snowy.show()
	
else:
	cloudy=Image.open('cloudy.JPG')
	cloudy.show()


tmp_max=api_data1['forecasts'][0]['temperature']['max']
if tmp_max is not None:
	tmp_max_cel = api_data1['forecasts'][0]['temperature']['max']['celsius']
	tmp_min=api_data1['forecasts'][0]['temperature']['min']
	if tmp_min is not None:
		tmp_mic_cel=api_data1['forecasts'][0]['temperature']['min']['celsius']
		tokyo_w="今日の東京の天気は{}".format(data1)
		tokyo_t="最高気温は{}度".format(tmp_max_cel)
		tokyo_t_="最低気温は{}度です。".format(tmp_min_cel)
		speech.say(tokyo_w ,"ja-JP",0.5)
		time.sleep(0.3)
		speech.say(tokyo_t, "ja-JP",0.5)
		time.sleep(0.3)
		speech.say(tokyo_t_ ,"ja-JP",0.5)
		time.sleep(0.3)
		
	else:
		tokyo_w="今日の東京の天気は{}".format(data1)
		tokyo_t="最高気温は{}度です".format(tmp_max_cel)
		speech.say(tokyo_w, "ja-JP",0.5)
		time.sleep(0.3)
		speech.say(tokyo_t ,"ja-JP",0.5)
		time.sleep(0.3)
else:
	tokyo_w="今日の東京の天気は{}です。".format(data1)
	speech.say(tokyo_w,"ja-JP",0.5)
	time.sleep(0.3)

url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=110010'
api_data2 = requests.get(url).json()
data2 = api_data1['forecasts'][0]['telop']

if "雨" in data1 or "雨" in data2:
	speech.say("傘が必要です。","ja-JP",0.5)

requestsライブラリについてはStashからインストールしなければならないので注意。やり方は結構長いので別の方のブログにお任せします。

細かいコードの説明は省きます(いろんなブログを参考にしました。そちらの方がどう足掻いても詳しいので、キーワードを入れて検索してみると良いと思います)が、datetimeライブラリを使って時間を取得、requestsライブラリを使って天気や気温の情報を取得、speechライブラリを使って自動音声化しながら、timeライブラリを用いて発語タイミングを調節する感じです。この辺はうまくやる方法がありそう。このコードでは東京の天気を取得していますが他の都市にお住まいの方は取得対象のURLのcity=130010の6桁の数字を他の数字に変えます。livedoorこれを参考にしてください。PCからならうまく開けると思います。

また、最初に得た天気の情報に従って画像を出力するコードを書いています。
中盤のif 分岐は最低気温や最高気温は1日の中で5時14時くらいに取ることが多いですが、この時刻を過ぎるとデータが取得できないためエラーを吐いてしまう対策です。毎朝3時位に起きる方々はいらないと思います。

ショートカットの作成

これができたらショートカットを起動し、下部タブのオートメーションをタップ、オートメーションを下の写真のように作成します。
f:id:syleir:20200424172556j:plain
f:id:syleir:20200424172617j:plain
個人用オートメーションを作成→イベント内のアラームをタップ→スヌーズか停止かは好きな方を選択(僕は両方制作しました)→アクションを追加→スクリプティングから音量とpythonista3を開く、pythonistaでのスクリプトの実行が選択できます。

音量を100%に設定は自分の好きな音量に設定してください。この手順を入れることにより就寝前の設定音量が0でも爆音で喋ってくれます。オートメーションからpythonista3のスクリプトを実行させる際はThis iPhoneのフォルダからの相対PATHをちゃんと通してあげなければいけないみたいです。この場合は/weather/weather.pyでよさげ。今回のスクリプトは引数がいらないので空欄にしています。引数設定する際はなんか実行してくれないバグがあるとか聞いたことがあります。よく知らないですけど工夫すれば解決するみたいです。

課題

pythonista3はマナーモードだと音が出ないので寝る前にマナーモードを解除する必要がある。ショートカットはマナーモードオンオフには対応してないので手動でやる必要がある。通知がきたらうるさいのでおやすみモード併用が推奨。

やってみて

思ったより上手くいって感動しています。朝天気を調べる手間が要らないのは素敵ですね。ここ最近の自粛生活で天気関係ないのが欠点ですが、、

補足

pythonista3はあまり発展が少なく、勉強している人も少ないです。もっと発展的なUIの稼働やアプリの運用をしたい方は
amzn.to
がおすすめです。pythonista3の基本操作からちょっとした応用まで網羅的に記載されています。

Pythonista3で競技プログラミングを初めてみませんか?
syleir.hatenablog.com


pythonista3とショートカットの連携についてはこちらの記事もオススメです。
syleir.hatenablog.com

numpy

今日はnumpyを勉強しました。自分の持ってるデバイスで1番強いのがiPad proなのでそれでいろんなライブラリ使えるようになるといいんですが、なかなかそうもいかないみたいなので化石みたいなPC使って勉強してます、、

 

いいパソコン降ってこないかな〜

戦略

今後の戦略について一晩考えた結果、とりあえず1級の勉強をしようと思います。確率分布の計算に慣れることを頑張ります。

 

そしてもう一つ、傍らにpythonで色々モデリングして動かせるようになりたいと思います。4月いっぱいはそんな感じで頑張っていきたいと思います、

 

なかなかモチベーションの維持という面では厳しい日々ですが、今後ともよろしくおねがいします!

超絶悲報

今日は、入門はじめての多変量解析を終わらせたのですがそれどころではなく、、、

 

https://www.toukei-kentei.jp/post-8653/

 

新型コロナウイルス感染症感染拡大の影響で、6/21の統計検定準1級の試験が中止になってしまいました、、

 

年に1回しかないので、延期なのか中止なのか、というところが大事になってくるところですが、自分の戦略をどうするか考えなければなりません。

 

  • 準1級は延期と信じて準1級の勉強をする
  • 秋の1級の試験を取りに行く

 

の2択ですかね、準1級と1級は試験の性質が違うので1級の対策をする時間が多くなったという意味では朗報なのかもしれません。どうするかはよく考えたいと思います。

 

幸い手元に現代数理統計学の基礎 (共立講座 数学の魅力)があるので、ひとまずはこれを進めるのでも良いのかもしれません。

 

それにしても今回の中止、統計学のエキスパートの日本統計学会様でも読めなかったんですね、なかなか感染症は難しいものです。