2021年3月22日月曜日

upgrading to R 4

 # library(magrittr) ??
install.packages("tidyverse")
install.packages("tidyr")
install.packages("beepr")
install.packages("forecast")
install.packages("mondate")
install.packages("vars")
install.packages("quantmod")
install.packages("xts")

upgrade version up

2021年3月14日日曜日

金利 NASDAQ 相関 cor.test() intersect()


choose date both TNX and NDX delta is available.


 d <- intersect(index(diff(TNX[,4])[!is.na(diff(TNX[,4]))]), index(diff(NDX[,4])[!is.na(diff(NDX[,4]))]))

check outputs.


head(as.Date(d))

[1] "2007-01-04" "2007-01-05" "2007-01-09" "2007-01-10" "2007-01-11" "2007-01-12"

Check correlation in 2021.


cor.test(diff(TNX[,4])["2021"][as.Date(d)],diff(NDX[,4])["2021"][as.Date(d)])

Pearson's product-moment correlation
data:  diff(TNX[, 4])["2021"][as.Date(d)] and diff(NDX[, 4])["2021"][as.Date(d)]
t = -2.3358, df = 36, p-value = 0.02519
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.61153962 -0.04874962
sample estimates:
       cor 
-0.3627793 
 警告メッセージ: 
 z + c(-1, 1) * sigma * qnorm((1 + conf.level)/2) で: 
  Recycling array of length 1 in array-vector arithmetic is deprecated.
  Use c() or as.vector() instead.

Check correlation all time.


cor.test(diff(TNX[,4])[as.Date(d)],diff(NDX[,4])[as.Date(d)])

Pearson's product-moment correlation
data:  diff(TNX[, 4])[as.Date(d)] and diff(NDX[, 4])[as.Date(d)]
t = 9.819, df = 2787, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.1467388 0.2184915
sample estimates:
      cor 
0.1828587 
 警告メッセージ: 
 z + c(-1, 1) * sigma * qnorm((1 + conf.level)/2) で: 
  Recycling array of length 1 in array-vector arithmetic is deprecated.
  Use c() or as.vector() instead.


> plot.default(diff(TNX[,4])[as.Date(d)],diff(NDX[,4])[as.Date(d)])
> plot.default(diff(TNX[,4])["2021"][as.Date(d)],diff(NDX[,4])["2021"][as.Date(d)])

2021年3月13日土曜日

NASDAQ EPS

download data from here.

modify data like below. use   %s/\s/,/g   in vi.

2020-12-31,1.34
2020-09-30,1.58
2020-06-30,1.45
2020-03-31,1.22
2019-12-31,1.21
       <skip>
2005-06-30,0.13
2005-03-31,0.13

store data into csv file. " ~/nasdaqeps.txt" is used in the sample. change end date accordingly!.

w <- as.xts(read.zoo(read.csv("~/nasdaqeps.txt",header=FALSE)))
ndx_eps <- as.xts(as.vector(na.omit(filter(as.vector(w),rep(1,4)))),seq(as.Date("2005-10-01"),as.Date("2020-10-01"),by='quarters'))

when k2007 is as below.

>  k2007
[1] "2007-01-01::2020-12-31"

summary(lm(apply.quarterly(NDX[,4][k2007],mean) ~ ndx_eps[k2007]+apply.quarterly(PA[k2007],mean)+apply.quarterly(UC[k2007],mean)+apply.quarterly(CS[k2007],mean)))

Call:
lm(formula = apply.quarterly(NDX[, 4][k2007], mean) ~ ndx_eps[k2007] + 
    apply.quarterly(PA[k2007], mean) + apply.quarterly(UC[k2007], 
    mean) + apply.quarterly(CS[k2007], mean))

Residuals:
   Min     1Q Median     3Q    Max 
-787.4 -293.1 -105.6  106.1 2281.4 

Coefficients:
                                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)                      -1.335e+04  8.966e+02 -14.893  < 2e-16 ***
ndx_eps[k2007]                    2.612e+02  7.864e+01   3.321 0.001664 ** 
apply.quarterly(PA[k2007], mean)  7.181e-01  5.575e-02  12.882  < 2e-16 ***
apply.quarterly(UC[k2007], mean) -2.917e+00  9.409e-01  -3.100 0.003144 ** 
apply.quarterly(CS[k2007], mean)  4.479e+01  1.096e+01   4.088 0.000154 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 532.2 on 51 degrees of freedom
Multiple R-squared:  0.9611, Adjusted R-squared:  0.958 
F-statistic: 314.8 on 4 and 51 DF,  p-value: < 2.2e-16


2021年3月10日水曜日

gawk awk 正規表現 エスケープ sed gsed

 正規表現メモ

gawk 正規表現


\w
これは単語を構成する任意のキャラクタ、つまり 文字、数字、それとアンダースコアにマッチする演算子である。 これは [[:alnum:]_] の簡潔な表現とみなして良い。
\W
これは単語を構成する要素にならない任意のキャラクタにマッチする 演算子である。これは [^[:alnum:]_] の簡潔な表現とみなして良い。
\<
これは単語の先頭にある空文字列にマッチする演算子である。 例えば、/\<away/`away'にマッチするが、 `stowaway'にはマッチしない。
\>
これは単語の末尾にある空文字列にマッチする演算子である。 例えば、/stow\>/`stow'にマッチするが、 `stowaway'にはマッチしない。
\y
これは単語の先頭、あるいは末尾の空文字列とマッチする演算子である (つまり語の区切りとマッチするということである)。 例えば、`\yballs?\y'は独立した単語として `ball' にも `balls'にもマッチする。注意! 他のGNU softwareは単語の区切りに\bを使うらしい。
\B
この演算子は単語中の空文字列にマッチする。言い換えると、`\B'は二つ の単語の構成要素文字の間にある空文字列にマッチするということである。例え ば、/\Brat\B/ は`crate'にマッチする。しかし、`dirty rat' にはマッチしない。`B'は簡単にいうと`\y'の反対語である。
\( .... \) () でマッチの塊を扱う
\n  \n は n 番目の () に対応 ([a-z]*) \1*

gsed 正規表現


\< 
        “単語”の先頭。
\> 
        “単語”の末尾。
\b 
        “単語”の先頭、あるいは末尾。言い換えれば、 “語の区切り”とマッチする。
\B 
        “単語”の中にある空文字列にマッチします
\`  
        バッファの先頭。
\'  
        バッファの末尾。
\w 
        “単語”を構成するキャラクタ、つまり文字と数字それにアンダースコア のいずれか。
\W 
        “単語”を構成するキャラクタ以外のキャラクタの いずれか。
\s 
        「空白」一文字とマッチする。localeの影響に注意。
\S
        「空白以外」の一文字とマッチ。

2021年3月9日火曜日

data.frame locale xts format

 
>  last(PI,8)

                PI
2020-06-01 20032.7
2020-07-01 20173.9
2020-08-01 19624.3
2020-09-01 19762.2
2020-10-01 19627.8
2020-11-01 19386.2
2020-12-01 19499.2
2021-01-01 21453.9

上記がある時日付のフォーマットだけを変更する。

Sys.setlocale("LC_TIME","C") 
data.frame(t=(PI  %>% last(.,8) %>%  index() %>% format(., "%Y %b")), d=(PI  %>% last(.,8) %>%  as.vector()))  
Sys.setlocale("LC_TIME", "ja_JP.UTF-8")


YYYY MMM にするのはこちら

Sys.setlocale("LC_TIME","C")

data.frame(t=(PI  %>% last(.,8) %>%  index() %>% format(., "%b %Y")), d=(PI  %>% last(.,8) %>%  as.vector()))

Sys.setlocale("LC_TIME", "ja_JP.UTF-8") 


         t       d
1 2020 Jun 20032.7
2 2020 Jul 20173.9
3 2020 Aug 19624.3
4 2020 Sep 19762.2
5 2020 Oct 19627.8
6 2020 Nov 19386.2
7 2020 Dec 19499.2
8 2021 Jan 21453.9

>   system("locale")

LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL=

日付 フォーマット date time format POSIX

 

1.時刻フィールド


%H     時 (00..23)
%I     時 (01..12)
%k     時 (0..23)
%l     時 (1..12)
%M     分 (00..59)
%p     AM あるいは PM のロケール
%r     時刻、12 時間 (hh:mm:ss [AP]M)
%s     1970-01-01 00:00:00 UTC からの秒数 (標準外の拡張)
%S     秒 (00..60)
%T     時刻、24 時間 (hh:mm:ss)
%X     ロケールによる時刻の表現 (%H:%M:%S)
%Z     タイムゾーン (例 EDT)、あるいはタイムゾーンが決定できないならば無し

2.日付フィールド


%a     ロケールの省略形の曜日名 (Sun..Sat)
%A     ロケールの完全表記の曜日名、可変長 (Sunday..Saturday)
%b     ロケールの省略形の月名 (Jan..Dec)
%B     ロケールの完全表記の月名、可変長 (January..December)
%c     ロケールの日付と時刻 (Sat Nov 04 12:02:33 EST 1989)
%d     月内通算日数 (01..31)
%D     日付 (mm/dd/yy)
%h     %b と同じ
%j     年内通算日数 (001..366)
%m     月 (01..12)
%U     日曜日を週の最初の日とした年内通算週 (00..53)
%w     週のうちの曜日 (0..6) (0 が日曜日)
%W     月曜日を週の最初の日とした年内通算週 (00..53)
%x     ロケールの日付表現 (mm/dd/yy)
%y     年の最後の 2 つの数字 (00..99)
%Y     年 (1970...)

Sys.getenv() 環境

 1. 全体

>  Sys.getenv()

__CF_USER_TEXT_ENCODING             0x1F5:0x1:0xE
__CFBundleIdentifier                org.rstudio.RStudio
CLICOLOR_FORCE                      1
COMMAND_MODE                        unix2003
DISPLAY                             /private/tmp/com.apple.launchd.zbStA3g2rP/org.xquartz:0
DYLD_FALLBACK_LIBRARY_PATH          /Library/Frameworks/R.framework/Resources/lib:/Users/honomoto/lib:/usr/local/lib:/usr/lib:::/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/jre/lib/server
EDITOR                              vi
GIT_ASKPASS                         rpostback-askpass
HOME                                /Users/honomoto
LANG                                en
LANGUAGE                            en
LC_CTYPE                            en
LC_TYPE                             en

LN_S                                ln -s
LOGNAME                             honomoto
MAKE                                make
MPLENGINE                           tkAgg
PAGER                               /usr/bin/less
PATH                                /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Library/TeX/texbin:/opt/X11/bin
R_BROWSER                           /usr/bin/open
R_BZIPCMD                           /usr/bin/bzip2
R_DOC_DIR                           /Library/Frameworks/R.framework/Resources/doc
R_GZIPCMD                           /usr/bin/gzip
R_HOME                              /Library/Frameworks/R.framework/Resources
R_INCLUDE_DIR                       /Library/Frameworks/R.framework/Resources/include
R_LIBS_SITE                         
R_LIBS_USER                         ~/Library/R/4.0/library
R_PAPERSIZE                         a4
R_PDFVIEWER                         /usr/bin/open
R_PLATFORM                          x86_64-apple-darwin17.0
R_PRINTCMD                          lpr
R_QPDF                              /Library/Frameworks/R.framework/Resources/bin/qpdf
R_RD4PDF                            times,inconsolata,hyper
R_SESSION_TMPDIR                    /var/folders/yw/p0wwlz5r8xj4zf001s7n3j780000gn/T//RtmppzWaAC
R_SHARE_DIR                         /Library/Frameworks/R.framework/Resources/share
R_STRIP_SHARED_LIB                  strip -x
R_STRIP_STATIC_LIB                  strip -S
R_SYSTEM_ABI                        macos,gcc,gxx,gfortran,gfortran
R_TEXI2DVICMD                       /usr/local/bin/texi2dvi
R_UNZIPCMD                          /usr/bin/unzip
R_ZIPCMD                            /usr/bin/zip
RMARKDOWN_MATHJAX_PATH              /Applications/RStudio.app/Contents/Resources/resources/mathjax-26
RS_PPM_FD_READ                      9
RS_PPM_FD_WRITE                     10
RS_RPOSTBACK_PATH                   /Applications/RStudio.app/Contents/MacOS/rpostback
RS_SHARED_SECRET                    19408203731238894728102252184
RSTUDIO                             1
RSTUDIO_CONSOLE_COLOR               256
RSTUDIO_CONSOLE_WIDTH               123
RSTUDIO_PANDOC                      /Applications/RStudio.app/Contents/MacOS/pandoc
RSTUDIO_SESSION_PORT                25883
RSTUDIO_USER_IDENTITY               honomoto
RSTUDIO_WINUTILS                    bin/winutils
SED                                 /usr/bin/sed
SHELL                               /bin/bash
SSH_ASKPASS                         rpostback-askpass
SSH_AUTH_SOCK                       /private/tmp/com.apple.launchd.RiShkX8Usr/Listeners
TAR                                 /usr/bin/tar
TERM                                xterm-256color
TMPDIR                              /var/folders/yw/p0wwlz5r8xj4zf001s7n3j780000gn/T/
TZDIR                               macOS
USER                                honomoto
XPC_FLAGS                           0x0
XPC_SERVICE_NAME                    application.org.rstudio.RStudio.262356.262643


2. 日本語

LANG                                ja_JP.UTF-8
LANGUAGE                            jp 
LC_CTYPE                            ja_JP.UTF-8

3. Locale

> Sys.getlocale()
[1] "ja_JP.UTF-8/ja_JP.UTF-8/ja_JP.UTF-8/C/ja_JP.UTF-8/ja_JP.UTF-8"
>   Sys.setlocale("LC_TIME","C")
[1] "C"

>     Sys.getlocale("LC_TIME", "ja_JP.UTF-8/ja_JP.UTF-8/ja_JP.UTF-8/C/ja_JP.UTF-8/ja_JP.UTF-8")

>     system("locale")

LANG="en"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

> system("locale")

LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL=

4. 日本語環境サンプル
system("locale")
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL=

Personal income forecast 個人所得予測 個人所得 personalincome

 2021MAR09



Sys.setlocale("LC_TIME","C")

data.frame(t=(PI  %>% last(.,8) %>%  index() %>% format(., "%b %Y")), d=(PI  %>% last(.,8) %>%  as.vector()))

Sys.setlocale("LC_TIME", "ja_JP.UTF-8") 



1 Jun 2020 20032.7
2 Jul 2020 20173.9
3 Aug 2020 19624.3
4 Sep 2020 19762.2
5 Oct 2020 19627.8
6 Nov 2020 19386.2
7 Dec 2020 19499.2
8 Jan 2021 21453.9

2020JUL31

1 Nov 2020 19435.0
2 Dec 2020 19562.2
3 Jan 2021 21504.5
4 Feb 2021 19955.1
5 Mar 2021 24142.4
6 Apr 2021 20853.2
7 May 2021 20388.2
8 Jun 2021 20414.3

2020SEP15

1 Dec 2020 19562.2
2 Jan 2021 21504.5
3 Feb 2021 19955.1
4 Mar 2021 24142.4
5 Apr 2021 20848.2
6 May 2021 20404.6
7 Jun 2021 20441.8
8 Jul 2021 20667.7

then,

Jun 2020     20032.7
Jul 2020     20173.9
Aug 2020     19624.3
Sep 2020     19762.2
Oct 2020     19628.7
Nov 2020     19386.3
Dec 2020     19491.3
Jan 2021     21462.2
Feb 2021     19945.6
---------------------
Mar 2021     20120 (2021 MAR 21242.06)
Apr 2021     19995
May 2021     20066
Jun 2021     20185
Jul 2021     20254
Aug 2021     20316
Sep 2021     20369



Feb 2021 19945.6
-------------------------
Mar 2021 20840 (2021 MAR 21242.06)
Apr 2021 20150
May 2021 20066
Jun 2021 20185
Jul 2021 20254
Aug 2021 20316
Sep 2021 20369
Oct 2021 20423


May 2021 20804.2 Jun 2021 20659 Jul 2021 20733 Aug 2021 20919 Sep 2021 21229 Oct 2021 21419 Nov 2021 21106 Dec 2021 21261 Jan 2022 21404

2021SEP15

Aug 2021 20740 ±34 Sep 2021 21229 ±39 Oct 2021 21419 ±42 Nov 2021 21106 ±44 Dec 2021 21261 ±46 Jan 2022 21404 ±47 Feb 2022 21469 ±48 Mar 2022 21553 ±49