我正在做R中的逻辑回归.有人可以澄清运行这两行的区别是什么?
1. glm(Response ~ Temperature, data=temp,
family = binomial(link="logit"))
2. glm(cbind(Response, n - Response) ~ Temperature,
data=temp, family =binomial, Ntrials=n)
Run Code Online (Sandbox Code Playgroud)
数据如下所示:(注意:响应是二进制.0 =死1 =不死)
Response Temperature
0 24.61
1 39.61
1 39.50
0 22.71
0 21.61
1 39.70
1 36.73
1 33.32
0 21.73
1 49.61
Run Code Online (Sandbox Code Playgroud) 为了弄清楚我在问什么,我创造了一个简单的例子.第一步是创建一些数据:
gender <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2),labels = c("male", "female"))
numberofdrugs <- rpois(84, 50) + 1
geneticvalue <- rpois(84,75)
death <- rpois(42,50) + 15
y <- data.frame(death, numberofdrugs, geneticvalue, gender)
Run Code Online (Sandbox Code Playgroud)
所以这些是一些随机日期合并为一个data.frame
.因此,从这些日期开始,我想绘制一个云,我可以在男性和女性之间进行区分,并在其中添加两个简单的回归(一个用于女性,一个用于男性).所以我已经开始了,但我无法达到我想要的程度.请看下面到目前为止我做了什么:
require(lattice)
cloud(y$death~y$numberofdrugs*geneticvalue)
Run Code Online (Sandbox Code Playgroud)
xmale <- subset(y, gender=="male")
xfemale <- subset(y, gender=="female")
death.lm.male <- lm(death~numberofdrugs+geneticvalue, data=xmale)
death.lm.female <- lm(death~numberofdrugs+geneticvalue, data=xfemale)
Run Code Online (Sandbox Code Playgroud)
如何在使用云命令时为男性或女性制作不同的点(例如蓝色和粉红色点而不仅仅是蓝色十字),如何将两个估计模型添加到云图中?
任何想法都表示赞赏!谢谢你的想法!
在R中,我指定一个没有拦截的模型如下:
data(iris)
lmFit <- lm(Sepal.Length ~ 0 + Petal.Length + Petal.Width, data=iris)
> round(coef(lmFit),2)
Petal.Length Petal.Width
2.86 -4.48
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用插入符号匹配相同的模型,则生成的模型包含截取:
library(caret)
caret_lmFit <- train(Sepal.Length~0+Petal.Length+Petal.Width, data=iris, "lm")
> round(coef(caret_lmFit$finalModel),2)
(Intercept) Petal.Length Petal.Width
4.19 0.54 -0.32
Run Code Online (Sandbox Code Playgroud)
如何caret::train
排除拦截术语?
所以我目前正在尝试绘制线性模型的置信区间.我发现我应该使用predict.lm(),但我有一些问题真正理解这个功能,我不喜欢在不知道发生了什么的情况下使用函数.我在这个主题上找到了几个方法,但只有相应的R代码,没有真正的解释.这是函数本身:
## S3 method for class 'lm'
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,
interval = c("none", "confidence", "prediction"),
level = 0.95, type = c("response", "terms"),
terms = NULL, na.action = na.pass,
pred.var = res.var/weights, weights = 1, ...)
Run Code Online (Sandbox Code Playgroud)
现在,我难以理解:
1) newdata
An optional data frame in which to look for variables
with which to predict. If omitted, the fitted values are used.
Run Code Online (Sandbox Code Playgroud)
每个人似乎都使用newdata,但我不太明白为什么.为了计算置信区间,我显然需要这个区间所用的数据(如观察的数量,x的平均值等),因此不能是它的意思.但那么:这是什么意思?
2) interval
Type of interval calculation.
好吧..但是什么是"无"?
3a) type
Type of prediction …
我创建了一个散点图(多组GRP)用IV=time
,DV=concentration
.我想在(0.025,0.05,0.5,0.95,0.975)
我的情节中添加分位数回归曲线.
顺便说一句,这就是我创建散点图的方法:
attach(E) ## E is the name I gave to my data
## Change Group to factor so that may work with levels in the legend
Group<-as.character(Group)
Group<-as.factor(Group)
## Make the colored scatter-plot
mycolors = c('red','orange','green','cornflowerblue')
plot(Time,Concentration,main="Template",xlab="Time",ylab="Concentration",pch=18,col=mycolors[Group])
## This also works identically
## with(E,plot(Time,Concentration,col=mycolors[Group],main="Template",xlab="Time",ylab="Concentration",pch=18))
## Use identify to identify each point by group number (to check)
## identify(Time,Concentration,col=mycolors[Group],labels=Group)
## Press Esc or press Stop to stop identify function
## Create legend
## Use …
Run Code Online (Sandbox Code Playgroud) 是否有现有函数来估算Pandas或Statsmodels的固定效应(单向或双向).
以前在Statsmodels中有一个函数,但似乎已经停止了.在Pandas中,有一些叫做的东西plm
,但是我无法导入或运行它pd.plm()
.
我有以下线性回归:
import statsmodels.formula.api as sm
model = sm.ols(formula = 'a ~ b + c', data = data).fit()
Run Code Online (Sandbox Code Playgroud)
我想在这个模型中为b添加二次项.
使用statsmodels.ols有一个简单的方法吗?我应该使用更好的包来实现这个目标吗?
对于下面的简单示例,您可以看到在随后的图中确定了某些点.如何提取这些图中识别的行号,尤其是正常QQ图?
set.seed(2016)
maya <- data.frame(rnorm(100))
names(maya)[1] <- "a"
maya$b <- rnorm(100)
mara <- lm(b~a, data=maya)
plot(mara)
Run Code Online (Sandbox Code Playgroud)
我尝试使用str(mara)来查看我是否能在那里找到一个列表,但是我看不到那里的Normal QQ图中的任何数字.思考?
我想用
flow_from_directory
Run Code Online (Sandbox Code Playgroud)
的方法
ImageDataGenerator
Run Code Online (Sandbox Code Playgroud)
生成回归模型的训练数据,其中目标值可以是介于1和-1之间的任何浮点值.
flow_from_directory
Run Code Online (Sandbox Code Playgroud)
有一个带有descripton的"class_mode"参数
class_mode:"分类","二进制","稀疏"或"无"之一.默认值:"分类".确定返回的标签数组的类型:"分类"将是2D单热编码标签,"二进制"将是1D二进制标签,"稀疏"将是1D整数标签.
我应该选择以下哪些值?他们似乎都不适合......
我想用lgb.Dataset对LightGBM模型进行交叉验证,并使用early_stopping_rounds.以下方法在XGBoost的xgboost.cv中没有问题.我不想将Scikit Learn的方法与GridSearchCV一起使用,因为它不支持提前停止或lgb.Dataset.
import lightgbm as lgb
from sklearn.metrics import mean_absolute_error
dftrainLGB = lgb.Dataset(data = dftrain, label = ytrain, feature_name = list(dftrain))
params = {'objective': 'regression'}
cv_results = lgb.cv(
params,
dftrainLGB,
num_boost_round=100,
nfold=3,
metrics='mae',
early_stopping_rounds=10
)
Run Code Online (Sandbox Code Playgroud)
任务是进行回归,但以下代码会引发错误:
Supported target types are: ('binary', 'multiclass'). Got 'continuous' instead.
LightGBM支持回归,还是我提供了错误的参数?