Hatena::ブログ(Diary)

My Life as a Mock Quant このページをアンテナに追加 RSSフィード Twitter

2017-01-15

確率変数を変数変換した場合の確率分布

| 15:57 | 確率変数を変数変換した場合の確率分布を含むブックマーク

昔やった気もするが、すぐ忘れる&頭の体操もかねてもう一度

算数

適当な確率分布に従う確率変数x(面倒なので[0, 1]区間の一様分布想定)とそれを2乗した変数yを考える。

このときyの従う確率分布は

 1 = ¥int_0^1 p(x) dx = ¥int_0^1 1 dx = ¥int_0^1 1/(2*¥sqrt{y}) dy

より

 p(y) = 1/(2¥sqrt{y})

となる。

Rでやる

0, 1区間の一様な乱数x, 及びそれを二乗したyを生成。

x <- runif(10^5, 0, 1)
y <- x^2

yのヒストグラムが↑の計算と合うかチェック

hist(y, probability=TRUE)
t <- seq(0, 1, by=0.01)
lines(t, 1/(2*sqrt(t)),col="red", lwd=3)

f:id:teramonagi:20170115155454p:image

2016-12-21

Jupyterで表示されるpd.DataFrameをテーブルっぽく表示させる

| 16:44 | Jupyterで表示されるpd.DataFrameをテーブルっぽく表示させるを含むブックマーク

Jupyterの最期の評価値(pd.DataFrame)と同じように表を出力させたい時。

適当なpd.DataFrameをdfとして

from IPython.display import display, HTML
display(HTML(df.to_html()))

こう。

(追記)

・・・と思ったら

display(df)

で良いみたい。

drillerdriller 2016/12/21 18:46 df.styleというのもありまが、to_htmlのほうが色々加工できるので汎用性高いかもしれませんね
http://pandas.pydata.org/pandas-docs/stable/style.html

teramonagiteramonagi 2016/12/26 14:50 ARIGATASHI!!!

2016-12-04

文字を整数に(string to int)

| 22:49 | 文字を整数に(string to int)を含むブックマーク

ちょいとめんどいので、関数に。

package main
import (
    "fmt"
    "strconv"
)

func atoi(s string) int{
    val, _ := strconv.Atoi(s)
    return val
}
func main(){
    x := atoi("2131")
    fmt.Println(x)
}

標準入力からの値をとる

| 22:26 | 標準入力からの値をとるを含むブックマーク

区切りとかは必要に応じて変更

package main
import (
    "fmt"
    "strings"
    "bufio"
    "os"
)

func main(){
    s := bufio.NewScanner(os.Stdin)
    for s.Scan() {
        for index, element := range strings.Split(s.Text(), " ") {            
            fmt.Println(index)
            fmt.Println(element)
        }
    }
}

fmt.Scanはスペース区切りでとるっぽい

package main
import (
    "fmt"
)

func main(){
    var a, b int
    fmt.Scan(&a)
    fmt.Scan(&b)
}

2016-11-27

use_testthat()でテスト用のディレクトリ・ファイルを一発で作る

| 14:03 | use_testthat()でテスト用のディレクトリ・ファイルを一発で作るを含むブックマーク

devoolsにあったと思った関数が、いつの間にかusethisという新しいパッケージに移っていたので、そのメモ。

こいつに入っている use_testthat()を用いると、Rのパッケージを作る際のテストディレクトリ・ファイルを一発で作ってくれる。

> devtools::install_github("hadley/usethis")
> library("usethis")
> use_testthat()
* Adding testthat to Suggests.
* Creating 'tests/testthat'.
* Generating template 'testthat.R'.
* Writing './tests/testthat.R'
Warning messages:
1: In readLines(file) : incomplete final line found on './DESCRIPTION'
2: In readLines(file) : incomplete final line found on './DESCRIPTION'

これでパッケージ開発時のテストファイル作衛の手間から解放される。

ここの.Rファイルに対するテストファイルを作りたい場合はuse_test()関数を用いればOK。

2016-10-23

値を動的に生成して、動的に取得する

| 22:12 | 値を動的に生成して、動的に取得するを含むブックマーク

assignで動的に値を生成して、getをうまく活用すれば取れる、が、あまりきれいではない。

> f <- function(){
+   for(i in 1:10){
+     assign(paste0("variable_", i), i)
+   }
+   variable_names <- ls(pattern="^variable_.*")
+   sapply(variable_names, function(variable_name){get(variable_name, envir=sys.frame(1))})
+ }
> f()
 variable_1 variable_10  variable_2  variable_3  variable_4  variable_5  variable_6  variable_7  variable_8  variable_9 
          1          10           2           3           4           5           6           7           8           9