glm을 사용하여 모델 적합성을 생성 중입니다. 내 데이터에는 정수 변수와 범주 형 변수가 혼합되어 있습니다. 범주 형 변수는 코드 형식이므로 데이터의 정수 유형입니다. 처음에 모델을 만들려고 할 때 정수형 형식의 범주 형 변수를 그대로 전달하고 모델을 얻었습니다. 나는 p 값을 한번 확인해 보았습니다. 그 값은 중요합니다. 그리고 주목할만한 변수가 거의 없었습니다.다른 유형의 동일한 범주 형 변수에 대해 다른 p 값을 생성하는 glm
이 경우 정수 양식의 범주 형 변수가 약간의 문제를 일으킬 수 있습니다. 코드 3과 마찬가지로 코드 1보다 중요도가 높아질 수 있습니다 ().이 사람이 이것을 확인할 수 있으면 좋을 것입니다 (). 어떤 연구를하면서 나는 범주 형 정수 변수를 factor으로 변환 할 수 있음을 발견했습니다. 나는 똑같이하고 모델을 다시 만들었다.
나는 또한 바이너리으로 변환한다고 언급 된 일부 게시물을 보았습니다. 그래서 나는 그렇게 잘했습니다.
- (R1) >> 내가 느끼는 진
로 변환 범주 형 변수와 범주 요인 변수
- P-값이 다를으로 고려되는 하나의 혼란 스러워요
- 하나는
- 내가 출력 출력 3의 P-값을 관련 수 있습니다 더 정확할 것이다 2?
- 는 for 루프는
- 내 데이터베이스가 큰 문제가되지 않습니다 내부 GLM 핸들 등의 변수
- 희망 GLM, 우리는 data.table 사용 GLM 할 수 않습니다 어떻게? 나는 몇 가지 샘플 데이터로 내 코드 아래에 붙여 넣기하고
은
library("plyr")
library("foreign")
library("data.table")
#####Generating sample data
set.seed(1200)
id <- 1:100
bill <- sample(1:3,100,replace = T)
nos <- sample(1:40,100,replace = T)
stru <- sample(1:4,100,replace = T)
type <- sample(1:7,100,replace = T)
value <- sample(100:1000,100,replace = T)
df1 <- data.frame(id,bill,nos,stru,type,value)
var1 <- c("bill","nos","stru")
options(scipen = 999)
r1 <- data.frame()
for(type1 in unique(df1$type)){
for(var in var1){
# dynamically generate formula
fmla <- as.formula(paste0("value ~ ", var))
# fit glm model
fit <- glm(fmla, data=df1[df1$type == type1,],family='quasipoisson')
p.value <- coef(summary(fit))[8]
cfit <- coef(summary(fit))
# create data frame
df2 <- data.frame(var = var, type = type1, basket="value",p.value = cfit[8],stringsAsFactors = F)
r1 <- rbind(r1, df2)
}
}
##### converting the categorical numeric variables to factor variables
df1$bill_f <- as.factor(bill)
df1$stru_f <- as.factor(stru)
var1 <- c("bill_f","nos","stru_f")
r2 <- data.frame()
for(type1 in unique(df1$type)){
for(var in var1){
# dynamically generate formula
fmla <- as.formula(paste0("value ~ ", var))
# fit glm model
fit <- glm(fmla, data=df1[df1$type == type1,],family='quasipoisson')
p.value <- coef(summary(fit))[8]
cfit <- coef(summary(fit))
# create data frame
df2 <- data.frame(var = var, type = type1, basket="value",p.value = cfit[8],stringsAsFactors = F)
r2 <- rbind(r2, df2)
}
}
#####converting the categorical numeric variables to binary format (1/0)
df1$bill_1 <- ifelse(df1$bill == 1,1,0)
df1$bill_2 <- ifelse(df1$bill == 2,1,0)
df1$bill_3 <- ifelse(df1$bill == 3,1,0)
df1$stru_1 <- ifelse(df1$stru == 1,1,0)
df1$stru_2 <- ifelse(df1$stru == 2,1,0)
df1$stru_3 <- ifelse(df1$stru == 3,1,0)
df1$stru_4 <- ifelse(df1$stru == 4,1,0)
var1 <- c("bill_1","bill_2","bill_3","nos","stru_1","stru_2","stru_3")
r3 <- data.frame()
for(type1 in unique(df1$type)){
for(var in var1){
# dynamically generate formula
fmla <- as.formula(paste0("value ~ ", var))
# fit glm model
fit <- glm(fmla, data=df1[df1$type == type1,],family='quasipoisson')
p.value <- coef(summary(fit))[8]
cfit <- coef(summary(fit))
# create data frame
df2 <- data.frame(var = var, type = type1, basket="value",p.value = cfit[8],stringsAsFactors = F)
r3 <- rbind(r3, df2)
}
}
왜 공식을 동적으로 생성합니까? – Koot6133
@ Koot6133, 다른 변수와 수식의 사용으로 변경하고 싶습니다. – user1412