나는 R을 배우고 있으며 현재 비선형 회귀에 사용하고 있습니다. 두 세트의 데이터 (다른 머신에서 작업 기간)가 있으며 이러한 각 세트에 대해 좋은 비선형 회귀를 찾을 수 있습니다. 이제 두 잔차 제곱합의 합을 최소화하는 최상의 회귀를 찾고 싶습니다.
내가 가진 것은 다음과 같습니다.
A <- c(1:5)
B <- c(100, 51, 32, 24, 19)
C <- c(150, 80, 58, 39, 29)
df <- data.frame (A,B,C)
f <- B ~ k1/A + k2
g <- C ~ k1/A + k2
n <- nls(f, data = df, start = list(k1=10, k2=10))
p <- nls(g, data = df, start = list(k1=10, k2=10))
n
#Nonlinear regression model
# model: B ~ k1/A + k2
# data: df
# k1 k2
#101.595 -1.195
# residual sum-of-squares: 2.619
#Number of iterations to convergence: 1
#Achieved convergence tolerance: 2.568e-07
p
#Nonlinear regression model
# model: C ~ k1/A + k2
# data: df
# k1 k2
#148.044 3.593
# residual sum-of-squares: 54.19
#Number of iterations to convergence: 1
#Achieved convergence tolerance: 1.803e-07
k1 및 k2 상수는 (물론) 두 세트 (B 및 C)에 대해 다릅니다. 두 데이터 세트에 대해 '최상의'솔루션을 생성하는 특정 k1과 특정 k2를 어떻게 찾을 수 있는지 궁금합니다.
내 설명이 이해할 수 있기를 바랍니다. 그렇지 않으면 내가 찾으려고하는 것은 때때로 (적어도 여기에서 ) 글로벌 비선형 회귀라고합니다.
편집 : 특정 매개 변수에 대해 음수 값을 피하기 위해 R에게 어떻게 말할 수 있는지 알고 싶습니다. 이 경우 k2를 양수로하고 싶습니다.
동일한 매개 변수를 원하면 데이터를 풀링해야합니다.
df2 <- data.frame(Y=c(df$B,df$C), X=rep(df$A, 2))
p <- nls(Y ~ k1/X + k2,
data = df2,
start = list(k1=10, k2=10),
lower = c(0, 0),
algorithm = "port")
summary(p)
# Formula: Y ~ k1/X + k2
#
# Parameters:
# Estimate Std. Error t value Pr(>|t|)
# k1 124.819 18.078 6.904 0.000124 ***
# k2 1.199 9.781 0.123 0.905439
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 16.59 on 8 degrees of freedom
#
# Algorithm "port", convergence message: both X-convergence and relative convergence (5)
편집하다:
하나의 매개 변수를 동일하게하고 다른 하나는 다양하게하려면 혼합 효과 모델을 사용할 수 있습니다. 그러나 제약 조건을 지정하는 방법을 모르겠습니다 (간단한 작업은 아니지만 다시 매개 변수화를 통해 달성 할 수 있다고 생각합니다).
library(nlme)
library(reshape2)
df3 <- melt(df, id.vars="A")
r <- nlme(value ~ k1/A + k2,
data = df3,
start = c(k1=10, k2=10),
fixed = k1 + k2 ~1,
random = k2 ~ 1|variable)
summary(r)
# Nonlinear mixed-effects model fit by maximum likelihood
# Model: value ~ k1/A + k2
# Data: df3
# AIC BIC logLik
# 83.11052 84.32086 -37.55526
#
# Random effects:
# Formula: k2 ~ 1 | variable
# k2 Residual
# StdDev: 12.49915 7.991013
#
# Fixed effects: k1 + k2 ~ 1
# Value Std.Error DF t-value p-value
# k1 124.81916 9.737738 7 12.818086 0.0000
# k2 1.19925 11.198211 7 0.107093 0.9177
# Correlation:
# k1
# k2 -0.397
#
# Standardized Within-Group Residuals:
# Min Q1 Med Q3 Max
# -1.7520706 -0.5273469 0.2746039 0.5235343 1.4971808
#
# Number of Observations: 10
# Number of Groups: 2
coef(r)
# k1 k2
# B 124.8192 -10.81835
# C 124.8192 13.21684
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다