How to do research

以下文章转载自http://www.bioguider.com/Article/resource/writing/experience/200603/8849.shtml,感谢作者的劳动:)自己做了某些删减和标记。

                                                                How to do research I –来自MIT AI lab的葵花宝典
 
  有兴趣细读原文的朋友可以google之——”how to do research at the MIT AI lab
”。)
  
  我们的口号:ANYTHING WORTH DOING IS WORTH DOING WELL!!!
  
  ***关于阅读***

  1. 很多研究者花费一半以上的时间用来阅读。在研究生开始两年,除了应付功课,其
余的时间阅读有关于你topic的课本和journal articles。
  2. 了解自己相关topic最为核心的杂志。每年去图书馆翻阅过去一年相关大学的研究
者做出的引起你兴趣的technical reports.
  3. 不要详细阅读每一篇paper。第一步,看看哪里是引起兴趣的地方。顺序为abstra
ct(这个往往应该是给出作者idea的地方,但是也往往令人失望),table of contents, c
onclusion section and introduction。如果还是毫无发现,那么放过它。第二步,一旦
发现你感兴趣的地方,看看这个paper有什么good stuff。这个往往因人而异,也许对你来
讲很好的point并不是作者的重点。第三步,重读整个文章,评判它的价值。
  4. 带着问题阅读。“我可以怎么用?”“作者的claim是否经得起推敲?”“如果……
会怎样?”搞清作者的motivations, 做出某种选择的原因,假设和建议的方向。
  5. 随时编程。看到paper中陈述的idea, 做simulation.
  6. 如果有人递给你一篇paper,询问他们推荐的原因。也许在他们脑海里,某些他们
认为对你有用的idea已经春光乍现,而你始终不知所云。
  
  ***关于networking***
  1. 加入一些你认为活跃的论坛和email list.
  2. 如果和其他领域的人讨论问题时,听到他说:“你有没有读过XXX?”那么“书非
借而不能读也”。
  3. 发现自己感兴趣的paper, 发给你觉得可能会感兴趣同仁,告诉他们你感兴趣的地
方,你可能同样因此受益。
  4. 看看你的同事办公桌上正在阅读的paper,询问他们原因,这样比自己查图书馆要
效率高的多。
  5. 写出自己idea的draft,或者你写好的paper,分发给你觉得可能会感兴趣的同事包
括老板,并且要求他们的评论。
  6. 尽可能和不同领域的人讨论。
  7. 做reference log。这样也许通过树图,你会通过引用率勾勒出目前占据这块山头
的几组大佬。
  8. 参加会议时,记得带上名片,给别人介绍一种牢记你名字的办法。也许你会看到大
多数会议的paper实在是boring and silly,所以你参加会议的目的是认识不同的人。他们
会给你传播信息,邀请你去talk,给你一个summer job。认识他们很简单,走近他们说“
我对你的paper很有兴趣。”然后问一个问题。
  9. 夏天的时候不要呆在自己的实验室,走出去认识新的朋友。他们也许会给你展示另
一种不同的看待事情的眼光。寻找summer job的方法,询问那些正在找工作的毕业生吧。

  
  ***关于相关的领域***
  1. 选一门这个领域的研究生课程。
  2. 阅读一本这个领域的bible
  3. 你知道这个领域最好的杂志么?
  4. 知道这个领域的翘楚和他们的必杀绝技么?阅读兵器谱。
  5. 查看这个领域的公告牌,看最新的announcement。可以的话,找一个美女或者帅
哥拍拖。
  6. 从查看自己学校的department开始,近水楼台先得月。
  7. 在”尚能饭否”前,永远不要忘记数学。不要只做听众,不惜找一个死党用枪逼
着你做题。
  8. 问自己一个问题:“如果我知道x,是不是问题会变得简单一点?”如果回答“是
”,go to 1.
  
  ***关于笔记***
  没有航海日志的船长是失职的。
  1. 无论你觉得你现在的idea多么垃圾,给它一个墓志铭。
  2. 给出问题可能的解,考验直觉的时候到了!
  3. 总结引起你兴趣的reference,向图书馆套磁。
  4. 时而不时的回头读你的笔记,莫做无情郎。
  5. 按照title, abstract, section headings, fragments of text的格式组织你的笔
记,即使你不大算发表,或者很快就变了心思。
  Reference: Versa Johnson-Steiner,“Notebooks of the Mind”
  
  ***关于写作***
  (画外音:『卖油翁』无他,唯手熟尔)
  1. 写下idea的过程是debugging的过程
  2. 不要指望你的读者做你看来显而易见的推论,写作的目的是让别人容易看懂。要
求你的同事对你的paper的反馈。
  3. 寻找这个领域的范文,吸收作者的写作风格。
  4. 罗马不是一日建成的。从outline开始,对着屏幕随意涂鸦崩到脑海里的词语,然
后细化。开始写作时不要过于拘泥于文章的顺序,空中楼阁建筑初期也是允许的。
  5. 没有必要做一个完美主义者。过分对词句雕饰的巴洛克风格并不是很popular,而
且是一种变相的浪费时间。你的文章是和同仁的对话,不要指望每个词都成为圣经。
  6. 以写信的风格把你的idea娓娓道来。前提是明白自己在说什么。
  7. Put the sexy stuff up front, 仔细你的abstract, 它可是“第一眼美人儿”至
关重要的部分。
  8. 写文章如同外交,请不卑不亢。
  9. 写出你觉得不好的地方和自己无从改进的地方。这意味着你可能转进一个牛角尖
,或者local minimum. 那么请重整山河。
  10. 请确定你的文章里有一个idea。如果你在10ms中解决了一个问题,除了给出你的
解决方法外,请解释为什么。
  11. 写完初稿以后,删去第一段。可能从第一段最后开始,一切才make sense.
  12. 开始做项目时请养成一个写informal paper的习惯,解释清楚你打算干什么,已
经做了什么。最多花两天时间,超过两天,请设闹钟。和你的同事包括老板分享。
  13. 学会写有价值的comments:
  a) 在做comment以前请至少阅读文章两次,一次用来获得main idea,一次用来标记评
论对象。
  b) 如果一个人一而再,再而三的犯同一个错误(尽管赫拉克利特曾经告诫我们“人不
能两次踏进同一条河流”……),劳神分析一下他的错误类型、揣测一下原因,再善良一
点点——想想你怎么替他打扫残局。并且请诚恳的告诉他。
  c) 避免一些恶劣的词语”garbage”,想想你作为作者看到这样评论的感受。建设性
的意见是永远受到欢迎的。如果你不准备好铁锹帮别人挖土,就可能有铁锹朝你的脑袋拍
过来。
  d) 有价值的评论意味着不断给出具体的原因。
  e) 给初稿的评论主要在于结构和内容,对于终稿的评论越具体越好。
  14. 不必采纳所有的建议,但是要认真的对待。不采纳某个建议,给自己一个完备的
解释。学会忍痛割爱,因为这往往意味着在旁观者看来,某些“卖点”的确毫无吸引力。

  15. 关于发表文章
  a) 保证自己要发表的paper有新的idea,而且值得推敲。
  b) 投稿以前保留draft一段时间并评论,避免急功近利。
  c) 请在投稿以前,弄清journal或者conference的文章风格。不要穿运动衫去鸡尾酒
会。
  d) 阅读information for authors。
  e) 阅读这个会议的prize paper。
  f) 给会议发一个短的、初期的结果,给journal发最终的长篇大论,这样作总是适合
时宜的。
  g) 遭到rejected,不必灰心。
  h) 和会议不同,如果被journal据了,要学会argue。反水的余地还是有的。
  i) 重视journal的referee,你往往可能得到非常好的意见。如果不采用他们的意见,
请礼貌的解释为什么。无论你在review中扮演如何的角色,永远不要忘记游戏的规则:在
你未来学术生涯里,角色交换在不断上演。
  j) 一篇要发表的文章往往会改的让你吐血三升。一个原则:除非你有足够的passion
,否则不要尝试去研究并发表一个其实你兴趣不大的东西,这其中的痛往往比你能想象到
的糟糕的多。
  Reference: Strunk and White, “Elements of Style”
  Claire Cook, “the MLA’s Line by Line”
  Jacques Barzun, “Simple and Direct: a Rhetoric for Writers”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
To do IPTW by R, you can follow these steps: 1. Import your data into R and create a new variable to indicate treatment status (0 for control, 1 for treatment). 2. Create a new variable to hold the inverse probability weights (IPW). 3. Use R to estimate the propensity score for treatment using logistic regression. This will give you a predicted probability of receiving treatment for each observation. 4. Calculate the IPW for each observation by taking the reciprocal of the propensity score for treated observations, and the reciprocal of (1 - propensity score) for control observations. 5. Apply the IPW to your outcome variable using the survey package in R. Specifically, use the svyglm function to fit a generalized linear model with the IPW as weights. This will give you the weighted estimate of the treatment effect. Here's an example code: ``` # Load the survey package library(survey) # Import your data data <- read.csv("your_data_file.csv") # Create a new variable for treatment status data$treatment <- as.factor(data$treatment) # Estimate the propensity score using logistic regression ps_model <- glm(treatment ~ covariate1 + covariate2 + covariate3, data = data, family = "binomial") propensity_score <- predict(ps_model, data, type = "response") # Calculate the IPW ipw <- ifelse(data$treatment == 1, 1 / propensity_score, 1 / (1 - propensity_score)) # Apply the IPW to your outcome variable outcome_model <- svyglm(outcome ~ treatment, design = svydesign(ids = ~1, weights = ipw, data = data)) summary(outcome_model) ``` Note that this is just a general overview, and the exact steps may vary depending on your specific research question and data. It's important to consult with a statistician or other expert to ensure that you are using the appropriate methods and interpreting the results correctly.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值