« 2023年5月 | トップページ | 2023年7月 »

2023年6月27日 (火)

[R]最小二乗法による単純回帰モデルのパラメーターα、βの推定(「統計学入門」(東京図書)pp.356-357)

> dtf <- read.csv("table10_1.csv", header = TRUE)
> n <- nrow(dtf)
> yy <- dtf$w
> xx <- dtf$v1
> sxx <- sum(xx)
> syy <- sum(yy)
> sxx2 <- sum(xx ^ 2)
> sxxyy <- sum(xx * yy)
> syy2 <- sum(yy ^ 2)
> xxm <- mean(xx)
> yym <- mean(yy)
> sx2 <- sum((xx - xxm) ^ 2)
> sxy <- sum((xx - xxm) * (yy - yym))
> sy2 <- sum((yy - yym) ^ 2)
> b <- sxy / sx2
> a <- yym - b * xxm
> cat(sprintf("βの最小二乗推定量 = %.2f\n", b))
βの最小二乗推定量 = 71.98
> cat(sprintf("αの最小二乗推定量 = %.2f\n", a))
αの最小二乗推定量 = -25.56

2023年6月21日 (水)

[R]2項分布n=100,p=0.01のときの確率分布(「統計解析のはなし」(東京図書)p.86)

> n <- 100
> p <- 0.01
> xx <- 0:6
> pp <- dbinom(xx, n, p)
> print(data.frame(xx, pp))
xx pp
1 0 0.3660323413
2 1 0.3697296376
3 2 0.1848648188
4 3 0.0609991658
5 4 0.0149417149
6 5 0.0028977871
7 6 0.0004634508

2023年6月17日 (土)

[R]2項分布n=10,p=0.1のときの確率分布(「統計解析のはなし」(東京図書)p.85)

> n <- 10
> p <- 0.1
> xx <- 0:6
> pp <- dbinom(xx, n, p)
> print(data.frame(xx, pp))
xx pp
1 0 0.348678440
2 1 0.387420489
3 2 0.193710244
4 3 0.057395628
5 4 0.011160261
6 5 0.001488035
7 6 0.000137781

2023年6月16日 (金)

[R]2項分布n=10,p=0.5のときの確率分布(「統計解析のはなし」(東京図書)p.84)

> n <- 10
> p <- 0.5
> xx <- 0:10
> pp <- dbinom(xx, n, p)
> print(data.frame(xx, pp))
xx pp
1 0 0.0009765625
2 1 0.0097656250
3 2 0.0439453125
4 3 0.1171875000
5 4 0.2050781250
6 5 0.2460937500
7 6 0.2050781250
8 7 0.1171875000
9 8 0.0439453125
10 9 0.0097656250
11 10 0.0009765625

2023年6月13日 (火)

[R]母比率の信頼区間の推定(「意味がわかる統計学」(ベレ出版)pp.218-221)

> n <- 10000
> xx <- 2100
> p <- xx / n
> ah <- 0.05
> a <- (xx + qnorm(ah / 2) * sqrt(n * p * (1 - p))) / n
> b <- (xx + qnorm(1 - ah / 2) * sqrt(n * p * (1 - p))) / n
> # 母比率を信頼係数95%で推定した信頼区間
> cat(sprintf("%.3f≦p≦%.3f\n", a, b))
0.202≦p≦0.218

2023年6月12日 (月)

[R]母平均μが未知のときの母分散σ^2の推定(「意味がわかる統計学」(ベレ出版)pp.215-218)

> x <- c(13.7, 15.5, 16.1, 14.4, 16.3)
> n <- length(x) - 1
> xm <- mean(x)
> devsqs <- sum((x - xm) ^ 2)
> ah <- 0.05
> a <- devsqs / qchisq(1 - ah / 2, n)
> b <- devsqs / qchisq(ah / 2, n)
> # 母分散σ^2の信頼係数95%の信頼区間
> cat(sprintf("%.2f≦σ^2≦%.2f\n", a, b))
0.45≦σ^2≦10.32

2023年6月10日 (土)

[R]母平均μが既知のときの母分散σ^2の推定(「意味がわかる統計学」(ベレ出版)pp.211-214)

> x <- c(13.7, 15.5, 16.1, 14.4, 16.3)
> n <- length(x)
> mu <- 15.
> devsqs <- sum((x - mu) ^ 2)
> ah <- 0.05
> a <- devsqs / qchisq(1 - ah / 2, n)
> b <- devsqs / qchisq(ah / 2, n)
> # 母分散σ^2の信頼係数95%の信頼区間
> cat(sprintf("%.2f≦σ^2≦%.2f\n", a, b))
0.41≦σ^2≦6.26

2023年6月 8日 (木)

[R]母分散σ^2が未知のときの母平均μの推定(「意味がわかる統計学」(ベレ出版)pp.207-211)

> x <- c(13.7, 15.5, 16.1, 14.4, 16.3)
> n <- length(x)
> degf <- n - 1
> xm <- mean(x)
> s <- sqrt(var(x))
> ah <- 0.05
> a <- xm + qt(ah / 2, degf) * s / sqrt(n)
> b <- xm + qt(1 - ah / 2, degf) * s / sqrt(n)
> # 母平均μを信頼係数95%で区間推定した信頼区間
> cat(sprintf("%.2f≦μ≦%.2f\n", a, b))
13.81≦μ≦16.59

2023年6月 7日 (水)

[R]母分散σ^2が既知のときの母平均μの推定(「意味がわかる統計学」(ベレ出版)pp.205-207)

> x <- c(13.7, 15.5, 16.1, 14.4, 16.3)
> n <- length(x)
> xm <- mean(x)
> s <- 1
> ah <- 0.05
> a <- xm + qnorm(ah / 2, 0, s) * s / sqrt(n)
> b <- xm + qnorm(1 - ah / 2, 0, s) * s / sqrt(n)
> # 母平均μを信頼係数95%で区間推定した信頼区間
> cat(sprintf("%.2f≦μ≦%.2f\n", a, b))
14.32≦μ≦16.08

2023年6月 6日 (火)

[C#]実行ファイルのフルパスを得る

ApplicationクラスのExecutablePathプロパティを使う。以下のソースコードをコンパイルして実行してみる。

using System;
using System.Windows.Forms;
class Exepath {
static void Main() {
Console.WriteLine(Application.ExecutablePath);
}
}

実行してみる。

D:\work>exepath.exe
D:\work\exepath.exe
D:\work>cd ..
D:\>work\exepath.exe
D:\work\exepath.exe

2023年6月 5日 (月)

[Python]等差数列を作成する

numpyのlinspaceメソッドを使う。

>>> import numpy as np
>>> print(np.linspace(0, 12, 2))
[ 0. 12.]
>>> print(np.linspace(0, 12, 3))
[ 0. 6. 12.]
>>> print(np.linspace(0, 12, 4))
[ 0. 4. 8. 12.]
>>> print(np.linspace(0, 12, 5))
[ 0. 3. 6. 9. 12.]
>>> print(np.linspace(0, 12, 6))
[ 0. 2.4 4.8 7.2 9.6 12. ]

2023年6月 2日 (金)

[R]データフレームの行名をリセットする

データフレームを作成すると、自動的に行名が付けられる。

> no <- c(2, 4, 1, 5, 3)
> name <- c("A", "B", "C", "D", "E")
> dtf <- data.frame(no, name)
> dtf
no name
1 2 A
2 4 B
3 1 C
4 5 D
5 3 E

上の左端の数字のとおりに、データフレーム作成時に、最初から順番に1~5の番号が強制的に割り振られる。このデータフレームを、例えばソートすると以下のようになる。

> dtf2 <- dtf[order(dtf$no), ]
> dtf2
no name
3 1 C
1 2 A
5 3 E
2 4 B
4 5 D

3,1,5,2,4とソート前に割り振られた番号(行名)がそのまま付いたままになる。この行名を消すにはrownames関数を使う。NULLを与えると行名はすべて消される(最初から順番に1~の番号が割り当てられる)。

> rownames(dtf2) <- NULL
> dtf2
no name
1 1 C
2 2 A
3 3 E
4 4 B
5 5 D

例えば、以下のようなこともできる。

> rownames(dtf2) <- 5:1
> dtf2
no name
5 1 C
4 2 A
3 3 E
2 4 B
1 5 D

2023年6月 1日 (木)

[R]日付型ベクトルから年、月、日を数値型ベクトルで取り出す

lubridateパッケージのyear,month,day関数を使う。

> library(lubridate)
> dt <- seq(as.Date("2022-11-02"), as.Date("2023-02-02"), by = "month")
> print(dt)
[1] "2022-11-02" "2022-12-02" "2023-01-02" "2023-02-02"
> print(year(dt))
[1] 2022 2022 2023 2023
> print(month(dt))
[1] 11 12 1 2
> print(day(dt))
[1] 2 2 2 2

同様に時分秒を取り出すためのhour,minute,second関数もあるが、日付型ベクトル(as.Date)の場合は0が戻る。

> print(hour(dt))
[1] 0 0 0 0
> print(minute(dt))
[1] 0 0 0 0
> print(second(dt))
[1] 0 0 0 0

« 2023年5月 | トップページ | 2023年7月 »

無料ブログはココログ

■■

■■■