.csv 데이터에서 근사 곡선을 유도합니다.
9914 단어 R
일의 발단
리모트 수업은 편합니다만, 과제가 많다. 그러니까 별로 하나의 과제에 시간을 들이고 싶지 않아요.
대학의 과제 「인구동태의 수리 모델을 만들 수 있다(수식으로 나타내라)」
나 「귀찮아.....유케, R!」
...라는 느낌으로 R을 사용하여 인구 동태의 근사 곡선을 도출해 보았습니다. 매우 간단합니다.
환경
macOS Catalina 10.15.4
R Studio (Version 1.2.5042)
아, 그리고, tidyverse를 사용하므로 넣어 주세요.
준비한 데이터
나고야시의 월별 인구 동태를 취급합니다. 고맙게도 나고야시의 인구동태는 .csv에서 다운로드할 수 있습니다. 했어!
뭐, 다운로드해 보면 여러가지 데이터가 포함되어 있으므로, 시의 인구의 데이터만을 추출해, 아래와 같이 새로운 .csv를 만듭니다. n은 2012년 1월 이후의 월 수입니다.
이 .csv를 사용합니다.
시도에 그래프로 사용
make_graph.rlibrary(tidyverse)
filename <- file.choose()
data <- read.csv(filename,header=T)
graph = ggplot(data, aes(x=n, y=Population)) + geom_line(col="black") + labs(title="Population of Nagoya City")
plot(graph)
움직일 때는 R Studio의 Source를 클릭하고 거기에서 .csv를 선택하십시오.
이런 식으로 그래프를 할 수 있습니다.
근사 곡선을 내려 봅니다.
자, 본제입니다. 아까의 그래프로부터, 「뭐, 3차 함수로 해 두면 좋은 느낌이 될까」라고 생각했으므로, 3차 곡선으로 근사해 갑니다.
approximateline.rlibrary(tidyverse)
filename <- file.choose()
data <- read.csv(filename,header=T)
graph = ggplot(data, aes(x=n, y=Population)) + geom_line(col="black") + labs(title="Population of Nagoya City")
x = data[,1]
y = data[,2]
approximated = nls(y ~ a * x^3 + b * x^2 + c * x + d, start=c(a=0, b=0, c=0, d=0))
summary(approximated)
predict.c = predict(approximated)
approximate = data.frame(predict.c)
approximate$num = data[,1]
coef = coefficients(approximated)
approximateline = geom_line(aes(approximate$num, approximate$predict.c), col="red")
plot(graph + approximateline)
print(coef[1])
print(coef[2])
print(coef[3])
print(coef[4])
콘솔에는 아래와 같이 계수(a, b, c, d의 값)가 출력됩니다.
쉬웠어요.
Reference
이 문제에 관하여(.csv 데이터에서 근사 곡선을 유도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/LilyMameoka/items/34c7182a4ad0493d40ba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
macOS Catalina 10.15.4
R Studio (Version 1.2.5042)
아, 그리고, tidyverse를 사용하므로 넣어 주세요.
준비한 데이터
나고야시의 월별 인구 동태를 취급합니다. 고맙게도 나고야시의 인구동태는 .csv에서 다운로드할 수 있습니다. 했어!
뭐, 다운로드해 보면 여러가지 데이터가 포함되어 있으므로, 시의 인구의 데이터만을 추출해, 아래와 같이 새로운 .csv를 만듭니다. n은 2012년 1월 이후의 월 수입니다.
이 .csv를 사용합니다.
시도에 그래프로 사용
make_graph.rlibrary(tidyverse)
filename <- file.choose()
data <- read.csv(filename,header=T)
graph = ggplot(data, aes(x=n, y=Population)) + geom_line(col="black") + labs(title="Population of Nagoya City")
plot(graph)
움직일 때는 R Studio의 Source를 클릭하고 거기에서 .csv를 선택하십시오.
이런 식으로 그래프를 할 수 있습니다.
근사 곡선을 내려 봅니다.
자, 본제입니다. 아까의 그래프로부터, 「뭐, 3차 함수로 해 두면 좋은 느낌이 될까」라고 생각했으므로, 3차 곡선으로 근사해 갑니다.
approximateline.rlibrary(tidyverse)
filename <- file.choose()
data <- read.csv(filename,header=T)
graph = ggplot(data, aes(x=n, y=Population)) + geom_line(col="black") + labs(title="Population of Nagoya City")
x = data[,1]
y = data[,2]
approximated = nls(y ~ a * x^3 + b * x^2 + c * x + d, start=c(a=0, b=0, c=0, d=0))
summary(approximated)
predict.c = predict(approximated)
approximate = data.frame(predict.c)
approximate$num = data[,1]
coef = coefficients(approximated)
approximateline = geom_line(aes(approximate$num, approximate$predict.c), col="red")
plot(graph + approximateline)
print(coef[1])
print(coef[2])
print(coef[3])
print(coef[4])
콘솔에는 아래와 같이 계수(a, b, c, d의 값)가 출력됩니다.
쉬웠어요.
Reference
이 문제에 관하여(.csv 데이터에서 근사 곡선을 유도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/LilyMameoka/items/34c7182a4ad0493d40ba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
make_graph.r
library(tidyverse)
filename <- file.choose()
data <- read.csv(filename,header=T)
graph = ggplot(data, aes(x=n, y=Population)) + geom_line(col="black") + labs(title="Population of Nagoya City")
plot(graph)
움직일 때는 R Studio의 Source를 클릭하고 거기에서 .csv를 선택하십시오.
이런 식으로 그래프를 할 수 있습니다.
근사 곡선을 내려 봅니다.
자, 본제입니다. 아까의 그래프로부터, 「뭐, 3차 함수로 해 두면 좋은 느낌이 될까」라고 생각했으므로, 3차 곡선으로 근사해 갑니다.
approximateline.rlibrary(tidyverse)
filename <- file.choose()
data <- read.csv(filename,header=T)
graph = ggplot(data, aes(x=n, y=Population)) + geom_line(col="black") + labs(title="Population of Nagoya City")
x = data[,1]
y = data[,2]
approximated = nls(y ~ a * x^3 + b * x^2 + c * x + d, start=c(a=0, b=0, c=0, d=0))
summary(approximated)
predict.c = predict(approximated)
approximate = data.frame(predict.c)
approximate$num = data[,1]
coef = coefficients(approximated)
approximateline = geom_line(aes(approximate$num, approximate$predict.c), col="red")
plot(graph + approximateline)
print(coef[1])
print(coef[2])
print(coef[3])
print(coef[4])
콘솔에는 아래와 같이 계수(a, b, c, d의 값)가 출력됩니다.
쉬웠어요.
Reference
이 문제에 관하여(.csv 데이터에서 근사 곡선을 유도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/LilyMameoka/items/34c7182a4ad0493d40ba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
library(tidyverse)
filename <- file.choose()
data <- read.csv(filename,header=T)
graph = ggplot(data, aes(x=n, y=Population)) + geom_line(col="black") + labs(title="Population of Nagoya City")
x = data[,1]
y = data[,2]
approximated = nls(y ~ a * x^3 + b * x^2 + c * x + d, start=c(a=0, b=0, c=0, d=0))
summary(approximated)
predict.c = predict(approximated)
approximate = data.frame(predict.c)
approximate$num = data[,1]
coef = coefficients(approximated)
approximateline = geom_line(aes(approximate$num, approximate$predict.c), col="red")
plot(graph + approximateline)
print(coef[1])
print(coef[2])
print(coef[3])
print(coef[4])
Reference
이 문제에 관하여(.csv 데이터에서 근사 곡선을 유도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/LilyMameoka/items/34c7182a4ad0493d40ba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)