2019년 7월 27일 토요일

R Error in tolower() invalid multibyte string using DocumentTermMatrix


https://stackoverflow.com/questions/13187605/error-in-tolower-invalid-multibyte-string

# to avoid datatables warning: error in tolower(x) invalid multibyte string
# assuming all columns are char
new_data <- as.data.frame(
  lapply(old_data, enc2utf8),
  stringsAsFactors = FALSE
)

2019년 7월 26일 금요일

P-value

원문 : https://JihongL.github.io/2017/09/12/P-value/

P-value, 유의확률

통계학을 배우면서 많이 들었던 개념 중 하나, P-value.
P-value는 우리말로는 유의확률이라고 표현하며, 귀무가설이 맞는다는 가정하에, 표본에서 관찰된 값이 귀무가설에서 얼마나 관찰될지에 대한 확률값이다.
P-value를 유의수준과 비교하여 귀무와 대립 중 어느것을 채택할지 결정하는데, 보통 유의수준을 0.05로 선정하고 P-value값이 이보다 낮게 측정되면 대립가설을 채택하게 된다.
대립가설을 채택할 기준이 0.05라는 것은, 0.95는 귀무가설을 채택할 것이라는 것이며, 가설채택에 있어 기존의 입장을 유지하려는 경향이 크다는 것을 의미한다. 즉 보수적이라는 것.
이러한 경향을 바탕으로 P-value는 Smoking gun이라는 생각이 들었다. 무죄추정의 원칙을 기반으로 하는 법정에서 증거를 바탕으로 유죄를 선고하듯, P-value도 가설채택에 결정적인 역할을 한다고 봤기 때문.
예를들어, 특정 학급의 평균 키가 170cm일 것이라는 귀무가설과 170cm보다 클 것이라는 대립가설을 세우고, 그 유의수준을 0.05로 가정해보자. 이를 나타내면 다음과 같을 것이다.
H0:M=170
H1:M>170
α:0.05
θ:1
이때, 표본에서 관찰된 값이 170이면 귀무가설을 강화하게 된다.
하지만 172가 관찰되었다면? 이때 P-value는 0.0228로, 유의수준인 0.05보다 작으며, 해당 연구는 대립가설을 채택하게 된다.
이처럼 다양한 연구에 통계적인 유의미를 따지기 위해서 P-value를 가장 많이 사용한다. 하지만 P-value에도 다양한 한계가 존재하기에 사용할 때에도, 다른이의 연구를 볼 때도 주의가 필요하다.
우선, P-value는 귀무가설이 맞는다는 가정하에서 측정되는 값이다. P-value가 0.02라는 것은 해당 사건이 귀무가설 하에서 발생할 확률이 0.02%인 것으로 해석된다. 여기서 반대로 대립가설이 맞을 확률을 나머지 0.98로 해석할 수 있는데, 이는 수치를 곡해하는 것이다. 또한 P-value 자체가 차이의 크기를 나타내지 못한다는 것을 인지하고 있어야 한다. 실험의 설계에 따라 실제로는 아주 미세한 차이임에도 통계적으로 유의한 차이가 있는 것처럼 P-value를 악용할 수도 있다.
다음으로는 연구에 사용되는 데이터가 많아질수록 P-value가 작아진다는 것이다.
이러한 P-value의 한계를 악용하여 본인의 연구를 의미 있게 발표하는 학자들이 간혹 있다고 한다. 따라서 P-value는 해당 실험결과가 귀무가설과 차이가 발생했다는 것으로 인지하고, 결과를 받아들이기 전에 비판적으로 바라볼 필요가 있다.
P-value를 통해 연구결과를 왜곡하는 경우가 발생하면서 사용을 금지한 경우도 발생했다. (링크) 하지만, 이들도 P-value를 대체할 기준을 제시하지는 못했다고. 따라서 P-value를 대체할 기준을 찾기 전까지는 연구의 신뢰성을 위한 다른 수치도 함께 제공해야 한다. 바로 연구의 신뢰구간과 효과크기를 함께 제시하는 것이다. 이를 수치를 함께 참고함으로써 해당 연구가 어떤 기준에서 유의미하다고 판단할 수 있을지 객관적으로 볼 수 있을 것이다.

2019년 7월 25일 목요일

Homebrew 설치

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

install.packages("ggiraphExtra") 설치 오류

When I install ggiraph or rvg I get the following code:


brew update
brew upgrade
brew reinsall cairo

R ggplot2 한글 깨짐

theme_set(theme_gray(base_family="AppleGothic"))

R wordcloud 한글 깨짐

https://appree.tistory.com/36

R 한글 인코딩 문제

Sys.setlocale("LC_CTYPE", "ko_KR.UTF-8");


txt <- readLines(file("file.txt", encoding = "EUC-KR"))

RSQLite install.pacakges로 설치 오류 날때

1. 아래 주소에서 바이너리 압축파일을 받는다.
https://cran.r-project.org/web/packages/RSQLite/index.html

2. 다운로드 받은 압축파일이 있는 경로에서 커맨트 창에 아래 명령어를 실행한다.

R CMD INSTALL RSQLite_2.1.1.tgz


3. R Studio에서 Load한다.
library(RSQLite)

'Error : .onLoad failed in loadNamespace() for 'rJava'



 user@userui-MacBook-Pro  /usr/bin sudo R CMD javareconf
Password:
Java interpreter : /usr/bin/java
Java version     : 12.0.2
Java home path   : /Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home/include/darwin  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include  -fPIC  -Wall -g -O2  -c conftest.c -o conftest.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home/lib/server -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation


JAVA_HOME        : /Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.


R studio에서
> Sys.setenv(JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home/")

2019년 7월 7일 일요일

Jypyter notebook Kernel died

The kernel appears to have died. It will restart automatically.

pip install --upgrade numpy