• Aucun résultat trouvé

//Users/polome/Pictures/Logos/LogoGATE2015.jpg//Users/polome/Pictures/Logos/Logo-universite-de-lyon-2016.jpg M2CEEPr.PhilippePolomé,UniversitéLumièreLyon22017–2018 ProgrammationdansCh.4.MaximumdeVraisemblance

N/A
N/A
Protected

Academic year: 2022

Partager "//Users/polome/Pictures/Logos/LogoGATE2015.jpg//Users/polome/Pictures/Logos/Logo-universite-de-lyon-2016.jpg M2CEEPr.PhilippePolomé,UniversitéLumièreLyon22017–2018 ProgrammationdansCh.4.MaximumdeVraisemblance"

Copied!
54
0
0

Texte intégral

(1)

Programmation dans

Ch. 4. Maximum de Vraisemblance

M2 CEE

Pr. Philippe Polomé, Université Lumière Lyon 2

2017 – 2018

//Users/polome/Pictures/Logos/LogoGATE2015.jpg

//Users/polome/Pictures/Logos/Logo-universite-de-lyon-2016.jpg

(2)

Plan

I Maximizing a Likelihood I Maximum Simulated Likelihood I NLogit

(3)

Sommaire

Maximum Likelihood

Maximum Likelihood Reminder Programming your Own Likelihood

Maximum Simulated Likelihood Definitions

Unobserved heterogeneity example Illustration

(4)

Reminder on Maximum Likelihood

I think it’s important to offer a reminder of ML before writing a non-standard ML. It will take some time.

(5)

ML 1

The probability density function, or pdf, of a random variabley, conditioned on a set of parameters,θ, is denoted f (y|θ).

I This function identifies the data generating process that underlies an observed sample of data and

I Provides a mathematical description of the data that the process will produce.

The joint density of nindependent and identically distributed (iid) observations from this process is the product of the individual densities ;

f (y1, ...,yn|θ) =Qn

i=1f (yi|θ) =L(θ|y)

This joint density is thelikelihood function, defined as a function of the unknown parameter vector,θ, wherey is used to indicate the collection of sample data.

(6)

ML 2

It is usually simpler to work with the log of the likelihood function :

lnL(θ|y) =Pn

i=1lnf (yi|θ)

It will usually be necessary to generalize the concept of the likelihood function to allow the density to depend on conditioning variables

I Suppose the disturbancein the classical linear regression model yi =xiβ+i is normally distributed with mean 0 and varianceσ2

I Then, conditioned on its specificxi ,yi is normally distributed with meanµi =xiβ and varianceσ2

I Thus the observed random variables are not iid: they have different means

(7)

ML 3

But, the observations are independent, and can be standardized to have same mean agian such as in the likelihood function

lnL(θ|y,X) =

Plnf (yi|xi, θ) =−12Pn i=1

h

lnσ2+ ln (2π) + (yi−xiβ)22 i

where X is then × Kmatrix of data with ith row equal to xi. The rest of this reminder is concerned with obtaining estimates of the parametersθand in testing hypotheses about them

(8)

ML 4

First consider the question of identification : whether estimation of the parameters is possible at all

I Identification is an issue related to the formulation of the model

I The question is : Suppose we had an infinitely large sample, could we uniquely determine the values of θfrom such a sample ? The answer is sometimes no

Identification. The parameter vector θis identified (estimable) if for any other parameter vector,θ 6=θ, for some data y,

L(θ|y)6=L(θ|y).

(9)

ML 5 : Example 1 Multicollinearity

For the linear regression modelyi =xiβ+i, suppose that there is a nonzero vectora such that xi0a=0∀xi

I That is the case when there is perfect multicollinearity

I Then there is another “parameter” vector, γ =β+a6=β such that xi0γ =xi0β ∀xi

I When this is the case, then the log-likelihood is the same whether it is evaluated atβ or at γ

I As such, it is not possible to consider estimation of β in this model since β cannot be distinguished fromγ

I Here identification (or the lack thereof) is associated with the data

(10)

ML 6 : Example 2 Identification via normalization

Consider the LRMyi12xi +i, where i|xi ∼n 0, σ2 . I Consider the context of a consumer’s purchases of a large

commodity such as a car where I xi is the consumer’s income

I yi is the difference between what the consumer is willing to pay for the car,pi, and the price of the car,pi

I Suppose rather than observing pi orpi, we observe only whether the consumer actually purchases the car, which, assume, occurs when yi =pi −pi >0.

I Thus, the model states that the consumer will purchase the car if yi >0 and not purchase otherwise

I The random variable in this model is “purchase” or “not purchase”—there are only two outcomes

(11)

ML 7 : Example 2 Identification via normalization

The probability of a purchase is

Pr{purchase|β1, β2, σ,xi} = Pr{yi >0|β1, β2, σ,xi}

= Pr{β12xi +i >0|β1, β2, σ,xi}

= Pr{i >−β1−β2xi1, β2, σ,xi}

= Pr{i/σ >(−β1−β2xi)/σ|β1, β2, σ,xi}

= Pr{zi >(−β1−β2xi)/σ|β1, β2, σ,xi} wherezi has a standard normal distribution

The probability of not purchase is one minus this probability.

(12)

ML 8 : Example 2 Identification via normalization

Thus the likelihood function is

Y

i=purchase

[Pr{purch|β1, β2, σ,xi}]× Y

i=not purch

[1−Pr{purch|β1, β2, σ,xi}]

This is often rewritten as Y

i

[Pr{purchase|β1, β2, σ,xi}yi] [1−Pr{purchase|β1, β2, σ,xi}](1−yi)

The parameters of this model arenot identified:

I If β12 andσ are all multiplied by the same nonzero

constant, regardless of what it is, thenPr{purchase} and the likelihood function do not change.

I This model requires anormalization. The one usually used is σ =1.

(13)

ML 9 Interpretation

I With discrete rv, f (yi|θ)is the probability of observing yi

conditionnally on θ.

I The likelihood function is then the probability of observing the sampleY (conditionnaly onθ).

I We assume that the sample that we have observed is the most likely.

I What value of θmakes the observed sample most likely ? Answer : The value of θthat maximizes the likelihood function since then the observed sample will have maximum probability.

I When y is a continuous rv, instead of a discrete one, we cannot say anymore that f (yi|θ)is the probability of observing yi conditionnally on θ, but we retain the same principle.

(14)

ML 10 Interpretation

I The value of the parameter vector that maximizesL(θ|data) (or its log) is the maximum likelihood estimates, denotedθ.ˆ I Since the logarithm is a monotonic function, the value vector

that maximizes L(θ|data) is the same as the one that maximizes lnL(θ|data).

I The necessary condition for maximizing lnL(θ|data) is

∂lnL(θ|data)/∂θ=0. This is called the likelihood equation.

(15)

Example : Likelihood Function and Equations for the Normal

Assume a sampleY from ann µ, σ2 . I The lnL function is

lnL µ, σ2

=−n2ln (2π)−n2lnσ212Pn i=1

h(yi−µ)2 σ2

i

I The likelihood equations are I ∂µlnL = σ12Pn

i=1(yiµ) =0 and I ∂σln2L =n2+14Pn

i=1(yiµ)2=0 I These equations accept an explicit solution at

I µˆML=1nPn

i=1yi = ¯y and I σˆ2ML= 1nPn

i=1(yiy¯)2

I Thus the sample mean is the ML estimator while the ML estimator of the variance is not the usual sample variance (that has an n-1 denominator).

(16)

ML Properties

Conditionnally on correct distributionnal assumptions and under regularity conditions, ML has the following very good properties (proofs : see Greene). Notation:θˆis the ML estimator ;θ0 is the true value of the parameter vector ;θ is any other value.

I Consistency :plimθˆ=θ0

I Asymptotic normality :θˆ∼Nh

θ0,{I(θ0)}−1i I whereI0) =−Eh

2lnL/∂θ0∂θ00i

is theinformation matrix.

I ∂f/∂θ0indicates∂f/∂θ evaluated atθ0.

(17)

ML Properties 2

I Asymptotic efficiency:θˆis asymptotically efficient if I it is consistent, asymptotically normally distributed, I and has an asymptotic covariance matrix that is not larger

than the asymptotic covariance matrix of any other consistent, asymptotically normally distributed estimator.

I θˆachieves the Cramer–Rao lower bound for consistent estimators.

I Invariance : The ML estimator ofγ0 =c(θ0) isc θˆ

ifc(θ) is a continuous and continuously differentiable function.

I ML has only asymptotic properties : in small samples, it may be biased or inefficient.

(18)

Conditional Likelihoods *

The properties of ML have been studied for the density of an observed random variable and a vector of parameters,f (yi|θ).

I But, econometric models will involve exogenous or

predetermined variables, x, how does that change the results ? I Let the joint density ofyi andxi bef (yi,xi|α)

I By Bayes’ law, f (yi,xi|α) =f (yi|xi, α)g(xi|α)

I g is the density ofxi; we assume that it is not of interest to the analysis, that is that the parameter vector α can be partitionned into[θ, δ].

(19)

Conditional likelihoods 2 *

I The log likelihood function may then be written lnL(θ, δ|data) =

Pn

i=1lnf (yi,xi|α) =Pn

i=1lnf (yi|xi, θ) +Pn

i=1lng(xi|δ) I As long as θ andδ have no element in common and no

restriction connects them (such as θ+δ=1), the two parts of the likelihood may be analysed separately.

Now that we have added covariates and parameters to the analysis, certain conditions must be met to maintain the properties of the ML estimator

(20)

Conditional likelihoods 3 *

Below is a “minimal set” of conditions that suffice for a large majority of empirical studies.

I Parameter space. There must be no gaps or non-convexities in the parameter space, e.g. discrete parameters are not feasible.

I Identifiability

I Well behaved data. Primarily (Grenander conditions), as the sample grows :

I Data do not converge to a sequence of zeros,

I No single observation ever dominates a sequence of one variable (each observation becomes less important), I The data matrix always has full rank.

I Endogeneity is still an issue and must be dealt with approprietly (when feasible).

(21)

Standard Application : Linear Regression Model

The Linear Regression Model isyi =xi0β+i.

I The likelihood function for a sample of n independent, identically and normally distributed disturbances is L= 2πσ2−n/2

e

0/(2)

I The sample consists not of but ofy. The transformation fromto y is i =yi−xi0β.

I What is the distribution of y? A reminder on the distribution of a transformation of a rv.

(22)

The distribution of a transformation of a rv

I If x is a continuous rv with pdffx(x) and ify =g(x) is a continuous monotonic function of x, then the density of y is obtained by using the change of variable technique to find the cdf of y

I We start from x, then we change the variable to y via g(x) I Let Pr (x ≤a) =Ra

−∞fx(x)dx let us change the variable to y=g(x), assume we haveg(−∞) =−∞, writeg(a) =b, then

Pr (y ≤b) =

b

Z

−∞

fx g−1(y)

|∂g−1(y)

∂y |dy

(23)

The distribution of a transformation of a rv

I But by definition Pr (y ≤b) =Rb

−∞fy(y)dy, so fy(y) =fx g−1(y)

|∂g−1∂y(y)|.

I The term in absolute value is called theJacobian of the transformation.

(24)

Standard Application : Linear Regression Model

The pdf ofy is then f

yi −xi0β

|∂yi

i|=n 0, σ2

. The Jacobian is one.

Therefore, the likelihood for then observations of the sample is

L= 2πσ2−n/2

e−(y−xβ)

0(y−xβ)/2σ2

Taking logs obtains the familiar sum of squares

lnL=−n

2ln2π−n

2lnσ2−(Y −Xβ)0(Y −Xβ) 2σ2

Computing the FOC obtains

βˆML= X0X−1

X0Y and σˆML2 = ˆ0/nˆ

That is, the familiar OLS forβ, while the ML estimator of σ2 is biased (but consistent).

(25)

Programming your Own Likelihood

The Generalized Cobb-Douglas production function (Zellner and Revankar, 1969) allows for returns to scale that vary with the level of output

YieθYi =eβ1Kiβ2Lβi3 whereY is output, K is capital andLis labor.

From a statistical point of view, this is a transformation of the dependent variable.

(26)

Programming your Own Likelihood

Introducing a multiplicative error leads to a kind of logarithmic form

logYi+θYi12logKi3logLi +i

I This model is non-linear in the parametersand only for known values of θcan it be estimated by OLS

I Instead, we can write the likelihood function and estimate simultaneously all the parameters of the equation (Zellner &

Ryu, 1998)

I Assume thati n 0, σ2 , iid

I We can writei=logYi+θYiβ1β2logKiβ3logLi and φ(i/σ)n(0,1)

I However, the jacobian of the transformation is ∂Yi

i =1+θYY i

i

(27)

Programming your Own Likelihood

Likelihood of the model isL=

n

Y

i=1

φ(i/σ)1+θYi Yi

I where i =logYi+θYi−β1−β2logKi −β3logLi

I The loglikelihood is then

`=

n

X

i=1

{log (1+θYi)−log(Yi)} −

n

X

i=1

logφ(i/σ)

(28)

Programming your Own Likelihood

Write a function maximizing this log-likelihood wrt the parameter vector(β1, β2, β3, θ, σ2). Three steps

1. code the objective function

2. obtain starting values for an iterative optimization 3. optimize the objective function using the starting values

(29)

Step 1 : Code the Objective Function

To optimize, we will use the functionoptim(); by default it performs minimization, so : minimize the negative of the log-likelihood

I data("Equipment", package = "AER")

I nlogL <- function(par) {defines the function to be minimized I beta <- par[1 :3]

I theta <- par[4]

I sigma2 <- par[5]5 parameters : (β1, β2, β3, θ, σ2)

I Y <- with(Equipment, valueadded/firms)“with” is used to evaluate expressions within a function, i.e. using whatever data called by the function ; here we just divide some variables by another and name them with short names (Y, K, L)

I K <- with(Equipment, capital/firms) I L <- with(Equipment, labor/firms)

(30)

Step 1 : Code the Objective Function (continued)

I rhs <- beta[1] + beta[2] * log(K) + beta[3] * log(L) defines a Right-Hand Side expression

I lhs <- log(Y) + theta * Y

I rval <- sum(log(1 + theta * Y) - log(Y) + dnorm(lhs, mean

= rhs, sd = sqrt(sigma2), log = TRUE)) defines the log lklh, dnorm(..., log = TRUE) is the log of the std normal density, so the expression in dnorm means

(logYi+θYi−β1−β2logKi −β3logLi)/√

σ2, i.e. (rv -mean)/sd, but in matrix notation

I return(-rval)returns the negative of the log lklh I }

(31)

Step 2 : Starting Values

I optim()proceeds iteratively, and thus (good) starting values are needed.

I Obtained from fitting the classical Cobb-Douglas form by OLS I fm0 <- lm(log(valueadded/firms) ~ log(capital/firms) +

log(labor/firms), data = Equipment)

I The resulting vector of coefficients, coef(fm0), is I Amended by 0 : starting value forθ, and

I The mean of the squared residuals from the Cobb- Douglas fit : starting value forσ2

I par0 <- as.vector(c(coef(fm0), 0, mean(residuals(fm0)^2)))

(32)

Step 3 : Optimize

I The new vector par0 containing all the starting values is used in the call tooptim( ) :

I opt <- optim(par0, nlogL, hessian = TRUE)hessian=TRUE requests the hessian mtx (2nd derivatives, cov mtx of param) I optto see the output, use ?optimfor detailed explanations I By default,optim( ) uses the Nelder-Mead method (no

gradient), but there are further algorithms available.

I We set hessian = TRUE in order to obtain standard errors.

(33)

Step 3 : Optimize

Parameter estimates, standard errors, and the value of the objective function at the estimates can now be extracted via

I opt$par

I sqrt(diag(solve(opt$hessian))) I -opt$value

For practical purposes the solution above needs to be verified : several sets of starting values must be examined in order to confirm that the algorithm did not terminate in a local optimum.

(34)

Homework 4

The Poisson estimator. The Poisson distribution is appropriate for a dependent variabley that takes only nonnegative integer values 0,1,2, ... . It can be used to model the number of occurrences of an event, such as number of patent applications by a firm and number of doctor visits by an individual. The density of a Poisson random variable isf (y|λ) =e−λλy/y! withy =0,1,2...The usual Poisson specification hasλ=eX0β with X is a vector of regressors andβ is a parameter vector, that guarantees that λ >0. It can also be shown thatE(y) =var(y) =λ. Program the likelihood of the Poisson estimator. Find data in R to apply your estimator.

(35)

Sommaire

Maximum Likelihood

Maximum Likelihood Reminder Programming your Own Likelihood

Maximum Simulated Likelihood Definitions

Unobserved heterogeneity example Illustration

(36)

Maximum Simulated Likelihood

We now consider application of the ideas on simulation to ML estimation when no analytical expression is available for the density

I Key result : simulation can lead to an estimator with the same distribution as the MLE, provided that the number of simulation draws made to compute the density for each observation goes to ∞

(37)

Maximum Simulated Likelihood 2

Assumeindependenceover observations and that y has conditional densityf (y|x, θ)

but supposef (y|x, θ) involves an intractableintegral, that is : there is no closed-form expression forf (y|x, θ)

I Instead, we replace the integral by anumerical approximation f˜(y|x, θ), and

I we maximizeln ˜LN(θ) =PN

i=1ln ˜f(yi|xi, θ)with respect toθ I The estimator will be

I consistent and

I have the same asymptotic distribution as ML I iff˜(y|x, θ)is a good approximation tof (y|x, θ)

I The resulting first-order conditions are usually nonlinear and are solved by iterative methods

(38)

Maximum Simulated Likelihood 3

There are several ways to compute the numerical approximation f˜(y|x, θ) – see Cameron & Trivedi ch 12 ; we examine only a simulation approach

I Suppose that we need to estimate the following expression while there is no closed-form solution

f (yi|xi, θ) = Z

h(yi|xi, θ,ui)g(ui)dui

I ui is unobservable, so we cannot keep it to estimate the parameter vector θ; we sayui must be integrated out

(39)

Maximum Simulated Likelihood 4

Thedirect simulatorfor f (yi|xi, θ)is the Monte Carlo integral estimate

f˜(yi|xi,uiS, θ) = 1 S

S

X

s=1

h(yi|xi, θ,uis) (1)

I where uiS is a vector of S drawsuis ,s =1, ...,S

I that are independent (observed !) draws from the unobserved g(ui)

I We therefore must assume a distribution for the unobserved g(ui)

We simply averageh(yi|xi, θ,uis) over the S draws

i is unbiased and consistent for fi as the number of drawsS → ∞

(40)

Maximum Simulated Likelihood 5

I The direct simulator is one case of simulator

I Other simulators exist, in some cases doing a better job at approximating fi , depending on the distribution of g(ui) I Generally we want that the simulator f˜i be differentiableso

that gradient methods may be used to optimize the likelihood function

I To eliminate “chatter” caused by simulation and help

numerical convergence, the underlying Monte Carlo draws used to construct f˜i should not be redrawn asθ changes across iterations

(41)

Maximum Simulated Likelihood 6

The Maximum Simulated Likelihood estimator is then simplyθˆMSL

that maximises

ln ˜LN(θ) =

N

X

i=1

ln ˜f (yi|xi, θ) =

N

X

i=1

ln 1 S

S

X

s=1

h(yi|xi, θ,uis)

(42)

What is unobserved heterogeneity and why is it a critical issue ?

Given a regression model, e.g.yi =G(xi, i, θ)

I Unobserved heterogeneity is a missingregressor issue, zi

I The missing regressor is therefore captured by the error term i(zi)

I When the missing regressor is correlated with one or more of the xi regressor, an endogeneityissue arises

I Without properly addressing the issue, most estimators of θ will be inconsistent

I Methods of moments estimators are specifically designed to address this issue

(43)

Unobserved heterogeneity example 2

One cannot know in general whether some regressors are missing I Hausman test is a good precaution, but not a panacea I Consider a site choice model (i.e. multinomial logit where

individuals choose holidays locations)

I If the regressors are only site characteristics, they usually are orthogonal to any individual characteristics

I although one could think of people choosing their residence to be close to their preferred holidays site

(44)

Unobserved heterogeneity example 2

When the regressors include a “part” of the endogenous variable, an endogeneity issue necessarilly arises as the error term will be

correlated with the regressor via the same unobserved factors that affect the endogenous variable

I Example : Assume you have data on stated donations to Greenpeace and you want to regress that on a dichotomous variable stating whether the respondent is a member of an association for environmental protection

(45)

Unobserved heterogeneity example 3

When the missing regressor is orthogonal to the included ones, endogeneity doesnot arise but there is still an issue that may be addressed by MSL

I Suppose that yi ∼N(θi,1), where the scalar parameterθi varies across individuals with θi =θ+ui, with ui representing unobserved heterogeneity that is assumed to have a known distribution.

I The density ofy conditional onu is simply f (y|u, θ) = 1

expn

−(y−θ−u)2/2o

I Inference on θ needs to be based on themarginal density ofy (i.e. marginal with respect to u), which requiresintegrating outu

(46)

Unobserved heterogeneity example 4

I Assume that u has the extreme value density

g(u) =e−uexp (−e−u), a skewed distribution that has nonzero mean and for simplicity does not depend on unknown parameters

I Maximum likelihood estimation is not possible as the marginal density f (y|θ), which equalsR

h(y|x, θ,u)g(u)du, has no closed-form solution in u

I We instead use the MSL estimator using the direct simulator 1, so thatθˆMSL maximizes

ln ˆLN θˆMSL

= 1 N

N

X

i=1

ln 1 S

S

X

s=1

√1 2πexp

n

−(yi−θ−uis)2/2o

!

I where uis,s =1, ...,S, are draws from the extreme value density g(ui) above

(47)

Unobserved heterogeneity example 5

I There is no closed-form solution forθ, but standard iterative methods can be used to compute θˆMSL

I Consistency of the MSL estimator requires the number of drawsS → ∞ in addition to the usual sample sizeN → ∞

I So the method is computationally intensive

I The MSL estimator is then asymptotically normally distributed

(48)

Illustration

We carry on with a complete illustration of the unobserved heterogeneity example

(49)

Illustration : Generating Values

I Generating random values, take a sample of size n n=200

I Genr n extreme value (0,1) ; create fcts that can be reused later on

dext=function(x) exp(x)*exp(-exp(x))#Density extreme value rext= function(n) dext(runif(n))# vec of ext values

z=rext(n)#Actually generates the values I Genr n y~n(z,1)

y=rnorm(n, mean=1+z, sd=1)# that generates 200 values of yi with mean 1 + the true unobserved heterog zi. This makes a normal with mean >1 because z has non-zero mean

(50)

Illustration : Generating Values

I Simulate n x S values for purpose of estimation S=10000

nS=n*S zss=rext(nS)

zsmtx <- matrix(zss, nrow=n, ncol=S)

(51)

Illustration : Write the SML function

I Maximum Likelihood MSlogL <- function(par) {

theta <- par[1]

sigma2 <- par[2]

rval <- sum(log(rowSums(

dnorm(y, mean = theta+zsmtx, sd = sqrt(sigma2), log = FALSE))/S))/n

return(-rval) }

# This avoids a loop

# rowSums sums all the elements of one row

(52)

Illustration : Optimization

I Starting values : simply the mean & variance of Y par0 <- as.vector(c(mean(y), var(y)))

I Optimization

opt <- optim(par0, MSlogL, hessian = TRUE) opt$par

sqrt(diag(solve(opt$hessian))) -opt$value

(53)

Illustration : Important results

I The estimation proc "solves" for the real param theta =1, not the average y=1.3 approx

I However, it estimates the total variance of the process at 1.14 approx which is simply the variance of Y

I Compare the results against several values of S and n to show that the param estimate converges to 1 as its sd goes to zero when S goes large

(54)

Homework 5

Consider the standard binary logit regression model from any textbook

1. Write down and program the log-likelihood function 2. Introduce a random intercept assumption in which the

intercept is drawn from a normal distribution with finite mean and variance. What justification can you offer for introducing an unobserved heterogeneity term in this way ?

3. Rewrite the likelihood function conditional on unobserved heterogeneity. Next write down the likelihood function with unobserved heterogeneity integrated out.

4. Program a maximum simulated likelihood estimation procedure to estimate this model.

Références

Documents relatifs

Catholic voters who were more fearful of a loss of denominational rights through education reform were more likely to vote &#34;No&#34; in both referendums.. Catholic voters who

Si vous avez un syst`eme dynamique dans un espace et si vous suivez la trajectoire d’un point, cette trajectoire finit en g´en´eral par s’enrouler autour de quelque chose, elle

« Et si donc, en examinant quelqu’une des choses que tu aurais dites, j’en viens à la tenir pour une apparence inconsistante et non pas pour véritable, et qu’alors je la mets

1) Go to Tools &gt; Gallery on the main menu bar or click the Gallery icon on the Drawing toolbar to open the Gallery dialog (Figure 4). The Gallery displays the available

For instance, a picture's identity – as opposed to a printed character's identity – finely depends on the identity of the marks on it (change a line a little bit, and you'll have

When Logo beginners learn how to type in a sequence of instructions, or define simple drawing procedures (like house, tree, boy… ), let us show them a way to create new shapes

For example, the IT Department of the Faculty of Mathematics and Informatics at Sofia University teaches courses based on Elica – Computer Graphics,

Le sens premier, le sens qu’on a dans l’esprit lorsqu’on parle de la forme est en directe liaison avec la matière, avec ce qui peut être vu, ce qui occupe une