# encording with Shift-JIS
#
# Chapter 7. Regression model
#

setwd("C:/EconDat/7_regress")
getwd()

#
# 例7.1: 消費の単回帰モデル
#

## 都道府県データの読み込み
df_pref <- read.csv("../data/prefdat/pref_dat_2019.csv", header=TRUE)
head(df_pref)

## 単位の変更
df_pref$consumption <- df_pref$consumption/10000
df_pref$income <- df_pref$income/10000


## 単回帰分析 Simple Regression
results <- lm(consumption~ income, df_pref)
summary(results)

dev.off() # 今あるグラフを消す
par(ps = 20)          #  文字を大きく
par(mex=1.5)   # 1行の高さを1.5倍とする

#
# 図7.3: 消費と所得の回帰直線
#

#回帰直線
plot(df_pref$income, df_pref$consumption, xlab="可処分所得 (10,000円)", 
     ylab="消費支出(10,000円)", col = "blue", pch = 21, bg = "blue")
abline(results, col="red", lwd=1.5)

#
# 例7.6: 消費の単回帰モデル: 回帰係数の検定
#

results <- lm(consumption~ income, df_pref)
summary(results)

## t分布の臨界値
### 下側
qt(0.025, 45)

### 上側
qt(0.975, 45)

### bのP値の計算
(1-pt(7.188, 45))*2


#
# 例7.8: 消費の重回帰モデルの推定と検定
#

## 単位の変更
df_pref$phone <- df_pref$phone/1000

results <- lm(consumption~ income + phone, df_pref)
summary(results)


#
# 付論 Appendix
# A7 7章 回帰分析での推定と検定・付論
#

#
# 例7.9: 消費の単回帰モデル: 回帰係数の片側検定
#

#片側検定の臨界値
## 上側の臨界値
df <- 47-2
## 10%
t_upper_10p <- qt(0.90,df)
t_upper_10p
## 5%
t_upper_10p <- qt(0.95,df)
t_upper_10p
## 1%
t_upper_10p <- qt(0.99,df)
t_upper_10p

##片側検定のP値
1-pt(7.187689,df=45)

#
# 例7.10: 電力使用量の重回帰モデル
#

results <- lm(power_usage~ garbage + num_households, df_pref)
summary(results)

## 家計数を回帰式の説明変数に入れなかった場合
results <- lm(power_usage~ garbage, df_pref)
summary(results)


